diff options
| author | Justin M. Keyes <justinkz@gmail.com> | 2024-10-01 05:39:12 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-10-01 05:39:12 -0700 |
| commit | bedb2a0df105f68a624a49b867f269b6d55a2c89 (patch) | |
| tree | 877aa3ef8277575a7ffea1ff8f280eeb69b47489 /lua/lspconfig/configs/zk.lua | |
| parent | docs: CONTRIBUTING.md cleanup (diff) | |
| download | nvim-lspconfig-bedb2a0df105f68a624a49b867f269b6d55a2c89.tar nvim-lspconfig-bedb2a0df105f68a624a49b867f269b6d55a2c89.tar.gz nvim-lspconfig-bedb2a0df105f68a624a49b867f269b6d55a2c89.tar.bz2 nvim-lspconfig-bedb2a0df105f68a624a49b867f269b6d55a2c89.tar.lz nvim-lspconfig-bedb2a0df105f68a624a49b867f269b6d55a2c89.tar.xz nvim-lspconfig-bedb2a0df105f68a624a49b867f269b6d55a2c89.tar.zst nvim-lspconfig-bedb2a0df105f68a624a49b867f269b6d55a2c89.zip | |
refactor: rename "server_configurations" => "configs" #3330
Problem:
The name `server_configurations` is extremely verbose and irritatingly
formal and dogmatic. This overlong name is a constant nuisance when
reading, writing, and coding.
It's also not even correct: these configurations are just as much
"client" configurations as they are "server" configurations.
Solution:
- Rename to a shorter name.
- Leave placeholder files for any old URLs that link to the old
location.
Diffstat (limited to 'lua/lspconfig/configs/zk.lua')
| -rw-r--r-- | lua/lspconfig/configs/zk.lua | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/lua/lspconfig/configs/zk.lua b/lua/lspconfig/configs/zk.lua new file mode 100644 index 00000000..57a1ea1a --- /dev/null +++ b/lua/lspconfig/configs/zk.lua @@ -0,0 +1,79 @@ +local util = require 'lspconfig.util' + +local function find_zk_root(startpath) + for dir in vim.fs.parents(startpath) do + if vim.fn.isdirectory(vim.fs.joinpath(dir, '.zk')) == 1 then + return dir + end + end +end + +return { + default_config = { + cmd = { 'zk', 'lsp' }, + filetypes = { 'markdown' }, + root_dir = util.root_pattern '.zk', + }, + commands = { + ZkIndex = { + function() + vim.lsp.buf.execute_command { + command = 'zk.index', + arguments = { vim.api.nvim_buf_get_name(0) }, + } + end, + description = 'ZkIndex', + }, + ZkList = { + function() + local bufpath = vim.api.nvim_buf_get_name(0) + local root = find_zk_root(bufpath) + + vim.lsp.buf_request(0, 'workspace/executeCommand', { + command = 'zk.list', + arguments = { root, { select = { 'path' } } }, + }, function(_, result, _, _) + if not result then + return + end + local paths = vim.tbl_map(function(item) + return item.path + end, result) + vim.ui.select(paths, {}, function(choice) + vim.cmd('edit ' .. choice) + end) + end) + end, + + description = 'ZkList', + }, + ZkNew = { + function(...) + vim.lsp.buf_request(0, 'workspace/executeCommand', { + command = 'zk.new', + arguments = { + vim.api.nvim_buf_get_name(0), + ..., + }, + }, function(_, result, _, _) + if not (result and result.path) then + return + end + vim.cmd('edit ' .. result.path) + end) + end, + + description = 'ZkNew', + }, + }, + docs = { + description = [[ +https://github.com/mickael-menu/zk + +A plain text note-taking assistant +]], + default_config = { + root_dir = [[root_pattern(".zk")]], + }, + }, +} |
