diff options
Diffstat (limited to '.vim/lua/zk.lua')
| -rw-r--r-- | .vim/lua/zk.lua | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/.vim/lua/zk.lua b/.vim/lua/zk.lua new file mode 100644 index 0000000..4cd8389 --- /dev/null +++ b/.vim/lua/zk.lua @@ -0,0 +1,41 @@ + +local function zk_new(path, title_dir) + path = path or vim.loop.cwd() + if not (path and #path > 0) then return end + + title_dir = title_dir or vim.fn.input('New Zettel: ') + local o = {} + local parts = vim.split(title_dir, '/') + if not parts[2] then + o.title = vim.trim(parts[1]) + else + o.title = vim.trim(parts[2]) + o.dir = vim.trim(parts[1]) + end + + vim.lsp.buf_request(0, 'workspace/executeCommand', + { + command = 'zk.new', + arguments = { path, o }, + }, + function(_, _, result) + vim.lsp.util.jump_to_location{ + uri = vim.uri_from_fname(result.path), + range = {start={line=2, character=0}}, + } + vim.cmd('startinsert') + end, + ) +end + +local function zk_index(path) + path = path or vim.loop.cwd() + vim.lsp.buf.execute_command { + command = 'zk.index', arguments = {path, nil}, + } +end + +return { + new = zk_new, + index = zk_index, +} |