mirror of
https://github.com/neovim/nvim-lspconfig
synced 2024-09-16 14:24:07 +02:00
feat: implement ZkList command for zk (#3257)
Surfaces the `zk.list` LSP command in the same way as `zk.new` and `zk.index`.
This commit is contained in:
parent
e6528f4613
commit
9f10797d35
1 changed files with 31 additions and 0 deletions
|
@ -1,5 +1,13 @@
|
|||
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' },
|
||||
|
@ -16,6 +24,29 @@ return {
|
|||
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', {
|
||||
|
|
Loading…
Reference in a new issue