neovim

Personal neovim configuration files
git clone git://gtms.dev:neovim
Log | Files | Refs

commit ea8595888ba0d4806f54c8655911fac909b9c8d0
parent d5dfb3ac6a48cfcce7fb631b9660d725af05abe5
Author: Tomas Nemec <nemi@skaut.cz>
Date:   Wed,  3 Aug 2022 20:26:24 +0200

update

Diffstat:
Mafter/plugin/lsp.lua | 52++++++++++++++++++++++++++++++++--------------------
Mafter/plugin/zk.lua | 6+++---
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