diff options
Diffstat (limited to 'lua/inbox/init.lua')
-rw-r--r-- | lua/inbox/init.lua | 52 |
1 files changed, 18 insertions, 34 deletions
diff --git a/lua/inbox/init.lua b/lua/inbox/init.lua index 582a3a0..bce9020 100644 --- a/lua/inbox/init.lua +++ b/lua/inbox/init.lua @@ -1,3 +1,8 @@ +local config = require("inbox.config") +local indexers = require("inbox.indexers") +local utils = require("inbox.utils") +local view = require("inbox.view") + local M = { buffers = {}, } @@ -30,13 +35,10 @@ function M.select() end function M.open(maildir) - local config = require("inbox.config") if maildir == nil then maildir = config.default_maildir end - local view = require("inbox.view") - if M.buffers[maildir] == nil or vim.api.nvim_buf_is_valid(M.buffers[maildir]) then M.buffers[maildir] = view.initialize_inbox(maildir) end @@ -53,9 +55,6 @@ function M.open_entry(id, content_type) end if M.buffers[id] == nil or vim.api.nvim_buf_is_valid(M.buffers[id]) then - local utils = require("inbox.utils") - local view = require("inbox.view") - local maildir = utils.parse_scheme(0) if maildir == nil then return @@ -86,25 +85,28 @@ function M.select_part() end function M.toggle_headers(bufnr) - local view = require("inbox.view") - if bufnr == nil or bufnr == 0 then bufnr = vim.api.nvim_get_current_buf() end - local id = vim.b[bufnr].inbox_id - - if id == nil then - return - end - if vim.b[bufnr].show_all_headers then vim.b[bufnr].show_all_headers = false else vim.b[bufnr].show_all_headers = true end - view.render_headers(bufnr, id) + view.render_headers(bufnr) +end + +---@return inbox.Entry? entry +function M.get_cursor_entry() + local id = M.get_cursor_id() + if id == nil then + vim.notify(("Failed to get entry with id: %s"):format(id), vim.log.levels.ERROR) + return nil + end + + return M.indexer.get_entry(id) end ---@return string? id @@ -120,28 +122,10 @@ function M.get_cursor_id() return id end ----@return inbox.Entry? entry -function M.get_cursor_entry() - local id = M.get_cursor_id() - if id == nil then - vim.notify(("Failed to get entry with id: %s"):format(id), vim.log.levels.ERROR) - return nil - end - - local indexers = require("inbox.indexers") - local indexer = indexers.get_indexer() - - return indexer.get_entry(id) -end - ---@param opts inbox.Config function M.setup(opts) - local config = require("inbox.config") - local indexers = require("inbox.indexers") - local utils = require("inbox.utils") - config.setup(opts) - indexers.setup(config.indexer_config) + indexers.setup(config) for sign, value in pairs(config.flags) do local name = utils.sign_name(sign) |