blob: 5709e3a7b14920aeb7dc6874811efe6fb330e9ce (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
local M = {}
local config = require("simple-denote.config")
local api = require("simple-denote.api")
function M.load_cmd(options)
vim.api.nvim_create_user_command("Denote", function(opts)
if opts.fargs[1] == "note" then
api.note(options)
elseif opts.fargs[1] == "title" then
api.title(options)
elseif opts.fargs[1] == "keywords" then
api.keywords(options)
elseif opts.fargs[1] == "signature" then
api.signature()
elseif opts.fargs[1] == "extension" then
api.extension()
else
error("Unsupported operation " .. opts.fargs[1])
end
end, {
nargs = 1,
complete = function()
return { "note", "title", "keywords", "signature", "extension" }
end,
})
end
---Add / to directory if necessary and set the heading_char based on the ext
function M.fix_options()
if config.options.dir:sub(-1) ~= "/" then
config.options.dir = config.options.dir .. "/"
end
if config.options.ext == "md" then
config.options.heading_char = "#"
elseif config.options.ext == "org" or config.options.ext == "norg" then
config.options.heading_char = "*"
end
end
---@param options? table user configuration
function M.setup(options)
config.options = vim.tbl_deep_extend("force", config.defaults, options or {})
M.fix_options()
M.load_cmd(config.options)
end
return M
|