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, }