commit ea8595888ba0d4806f54c8655911fac909b9c8d0
parent d5dfb3ac6a48cfcce7fb631b9660d725af05abe5
Author: Tomas Nemec <nemi@skaut.cz>
Date: Wed, 3 Aug 2022 20:26:24 +0200
update
Diffstat:
2 files changed, 35 insertions(+), 23 deletions(-)
diff --git a/after/plugin/lsp.lua b/after/plugin/lsp.lua
@@ -1,42 +1,48 @@
+if not pcall(require, 'lspconfig') then
+ return
+end
+
+local lspconfig = require 'lspconfig'
+local lsp = require 'tms.lsp';
+
vim.api.nvim_create_autocmd('LspAttach', {
group = vim.api.nvim_create_augroup('user-lsp', {}),
callback = function(args)
local buf = args.buf
local client = vim.lsp.get_client_by_id(args.data.client_id)
local cap = client.server_capabilities
+ local lb = vim.lsp.buf
local opt = function(desc)
return { buffer = buf, desc = desc }
end
if cap.hoverProvider then
- vim.keymap.set('n', 'K', vim.lsp.buf.hover, opt 'LSP Hover')
+ vim.keymap.set('n', 'K', lb.hover, opt 'LSP Hover')
end
-
if cap.definitionProvider then
- vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opt 'LSP Definition')
- vim.keymap.set('n', 'gD', '<cmd>vsplit | lua vim.lsp.buf.definition()<cr>', opt('LSP definition in vsplit'))
+ vim.keymap.set('n', 'gd', lb.definition, opt 'LSP Definition')
+ vim.keymap.set('n', 'gD', '<cmd>vsplit | lua lb.definition()<cr>', opt('LSP definition in vsplit'))
end
-
if cap.typeDefinitionProvider then
- vim.keymap.set('n', 'gT', vim.lsp.buf.type_definition, opt('LSP Type Definition'))
+ vim.keymap.set('n', 'gT', lb.type_definition, opt('LSP Type Definition'))
end
if cap.implementationProvider then
- vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, opt('LSP Implementation'))
+ vim.keymap.set('n', 'gi', lb.implementation, opt('LSP Implementation'))
end
if cap.signatureHelpProvider then
- vim.keymap.set('n', '<c-p>', vim.lsp.buf.signature_help, opt('LSP Signature Help'))
- vim.keymap.set('i', '<c-p>', vim.lsp.buf.signature_help, opt('LSP Signature Help'))
+ vim.keymap.set('n', '<c-p>', lb.signature_help, opt('LSP Signature Help'))
+ vim.keymap.set('i', '<c-p>', lb.signature_help, opt('LSP Signature Help'))
end
if cap.referencesProvider then
- vim.keymap.set('n', 'gr', vim.lsp.buf.references, opt('LSP References'))
+ vim.keymap.set('n', 'gr', lb.references, opt('LSP References'))
end
if cap.codeActionProvider then
- vim.keymap.set('n', 'ga', vim.lsp.buf.code_action, opt('LSP Code Actions'))
- vim.keymap.set('v', 'ga', vim.lsp.buf.range_code_action, opt('LSP Code Actions'))
+ vim.keymap.set('n', 'ga', lb.code_action, opt('LSP Code Actions'))
+ vim.keymap.set('v', 'ga', lb.range_code_action, opt('LSP Code Actions'))
end
if cap.renameProvider then
- vim.keymap.set('n', 'gn', vim.lsp.buf.rename, opt('LSP Rename'))
+ vim.keymap.set('n', 'gn', lb.rename, opt('LSP Rename'))
end
local has_aerial, aerial = pcall(require, 'aerial')
@@ -46,14 +52,23 @@ vim.api.nvim_create_autocmd('LspAttach', {
end,
})
-vim.lsp.handlers['textDocument/hover'] = vim.lsp.with(vim.lsp.handlers.hover, { border = 'single' })
-vim.lsp.handlers['textDocument/signatureHelp'] = vim.lsp.with(vim.lsp.handlers.signature_help, { border = 'single' })
+local handlers = vim.lsp.handlers
+local with = vim.lsp.with
+handlers['textDocument/hover'] = with(handlers.hover, { border = 'single' })
+handlers['textDocument/signatureHelp'] = with(handlers.signature_help, { border = 'single' })
-- lsp.handlers['$/progress'] = progress.handler
-- local severity = { 'error', 'warn', 'info' }
-- lsp.handlers['window/showMessage'] =
-- function(_, method, params, _) vim.notify(method.message, severity[params.type]) end
+-- manual
+do
+ local opts = lsp.make_opts('dartls')
+ lspconfig.dartls.setup(opts)
+end
+
+-- mason
if not pcall(require, 'mason') then
return
end
@@ -63,10 +78,7 @@ local mlsp = require('mason-lspconfig')
mlsp.setup()
mlsp.setup_handlers {
function(name)
- local has_lspc, lsp_config = pcall(require, 'lspconfig')
- if has_lspc then
- local opts = require('tms.lsp').make_opts(name)
- lsp_config[name].setup(opts)
- end
+ local opts = lsp.make_opts(name)
+ lspconfig[name].setup(opts)
end,
}
diff --git a/after/plugin/zk.lua b/after/plugin/zk.lua
@@ -23,9 +23,9 @@ vim.keymap.set('n', '<space>zo', '<cmd>ZkNotes {orphan = true}<cr>')
-- end)
-- end
--- Manual
-local l = require('tms.lsp')
+-- LSP
+local lsp = require('tms.lsp')
local has_zk, zk = pcall(require, 'zk')
if has_zk then
- zk.setup({ lsp = { config = l.make_opts('zk') } })
+ zk.setup({ lsp = { config = lsp.make_opts('zk') } })
end