summaryrefslogtreecommitdiffstats
path: root/lua/inbox/init.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/inbox/init.lua')
-rw-r--r--lua/inbox/init.lua52
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)