neovim

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

commit 6b3136053c28c2f844b888a19041b006520112ed
parent 91fee4797db86a6742ae041ce487798d0a6ad6b4
Author: Tomas Nemec <nemi@skaut.cz>
Date:   Thu, 11 Aug 2022 07:38:36 +0200

update

Diffstat:
Mafter/plugin/cmp.lua | 14++++++++++++--
Mafter/plugin/lsp.lua | 42++++++++++++++++++++++++++----------------
Dlua/tms/ft/dart/bin.lua | 17-----------------
Mlua/tms/lsp/servers.lua | 7+++++--
4 files changed, 43 insertions(+), 37 deletions(-)

diff --git a/after/plugin/cmp.lua b/after/plugin/cmp.lua @@ -1,4 +1,10 @@ -if not pcall(require, 'cmp') then return end +if not pcall(require, 'cmp') then + return +end + +-- do +-- return +-- end local cmp = require('cmp') require('cmp_dictionary').setup({ dic = {} }) @@ -17,7 +23,11 @@ end cmp.setup({ preselect = cmp.PreselectMode.Item, window = { completion = cmp.config.window.bordered(), documentation = cmp.config.window.bordered() }, - snippet = { expand = function(args) require('luasnip').lsp_expand(args.body) end }, + snippet = { + expand = function(args) + require('luasnip').lsp_expand(args.body) + end, + }, mapping = { ['<c-e>'] = cmp.mapping({ i = cmp.mapping.abort(), c = cmp.mapping.close() }), ['<c-y>'] = cmp.mapping.confirm({ select = true }), diff --git a/after/plugin/lsp.lua b/after/plugin/lsp.lua @@ -5,8 +5,9 @@ end local lspconfig = require 'lspconfig' local lsp = require 'tms.lsp'; +local lsp_group = vim.api.nvim_create_augroup('user-lsp', {}) vim.api.nvim_create_autocmd('LspAttach', { - group = vim.api.nvim_create_augroup('user-lsp', {}), + group = lsp_group, callback = function(args) local buf = args.buf local client = vim.lsp.get_client_by_id(args.data.client_id) @@ -22,7 +23,7 @@ vim.api.nvim_create_autocmd('LspAttach', { end if cap.definitionProvider then 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')) + vim.keymap.set('n', 'gD', '<cmd>vsplit | lua vim.lsp.buf.definition()<cr>', opt('LSP definition in vsplit')) end if cap.typeDefinitionProvider then vim.keymap.set('n', 'gT', lb.type_definition, opt('LSP Type Definition')) @@ -44,6 +45,11 @@ vim.api.nvim_create_autocmd('LspAttach', { if cap.renameProvider then vim.keymap.set('n', 'gn', lb.rename, opt('LSP Rename')) end + if cap.documentHighlightProvider then + vim.keymap.set('n', 'gk', lb.document_highlight, opt('LSP Highlight')) + vim.api.nvim_create_autocmd('CursorMoved', + { group = lsp_group, buffer = buf, callback = vim.lsp.buf.clear_references }) + end local has_aerial, aerial = pcall(require, 'aerial') if has_aerial then @@ -52,6 +58,12 @@ vim.api.nvim_create_autocmd('LspAttach', { end, }) +require('tms.colors').update(function(t) + t.Group.new('LspReferenceText', t.colors.green, t.colors.green, nil) + t.Group.new('LspReferenceRead', t.colors.orange, t.colors.orange, nil) + t.Group.new('LspReferenceWrite', t.colors.red, t.colors.red, nil) +end) + local handlers = vim.lsp.handlers local with = vim.lsp.with handlers['textDocument/hover'] = with(handlers.hover, { border = 'single' }) @@ -64,21 +76,19 @@ handlers['textDocument/signatureHelp'] = with(handlers.signature_help, { border -- manual do - local opts = lsp.make_opts('dartls') - lspconfig.dartls.setup(opts) + lspconfig.dartls.setup(lsp.make_opts('dartls')) + lspconfig.tsserver.setup(lsp.make_opts('tsserver')) end -- mason -if not pcall(require, 'mason') then - return +if pcall(require, 'mason') then + require('mason').setup() + local mlsp = require('mason-lspconfig') + mlsp.setup() + mlsp.setup_handlers { + function(name) + local opts = lsp.make_opts(name) + lspconfig[name].setup(opts) + end, + } end - -require('mason').setup() -local mlsp = require('mason-lspconfig') -mlsp.setup() -mlsp.setup_handlers { - function(name) - local opts = lsp.make_opts(name) - lspconfig[name].setup(opts) - end, -} diff --git a/lua/tms/ft/dart/bin.lua b/lua/tms/ft/dart/bin.lua @@ -1,17 +0,0 @@ -local fn = vim.fn - -local M = {} - -function M.lsp_cmd() - -- local dart_bin = '/home/tms/.dswitch/old/dart' - -- local dart_bin_root = '/home/tms/.dswitch/old' - local dart_bin = fn.resolve(fn.exepath('dart')) - local dart_bin_root = fn.fnamemodify(dart_bin, ':h') - local snapshot = dart_bin_root .. '/snapshots/analysis_server.dart.snapshot' - return {dart_bin, snapshot, '--lsp'} - -- return {dart_bin, snapshot, '--lsp', '--port=10000'} - -- return {dart_bin, snapshot, '--lsp', '--port=10000', '--instrumentation-log-file=/tmp/analysis.txt'} - -- return {'/home/tms/.dswitch/active/dart', '/home/tms/dev/dart/sdk/pkg/analysis_server/bin/server.dart', '--lsp', '--port=10000', '--instrumentation-log-file=/tmp/analysis.txt'} -end - -return M diff --git a/lua/tms/lsp/servers.lua b/lua/tms/lsp/servers.lua @@ -29,7 +29,9 @@ M.no_format = { sumneko_lua = true } M.setup = function(name, opts) local fn = S[name] - if fn then opts = fn(opts) end + if fn then + opts = fn(opts) + end return opts end @@ -82,7 +84,8 @@ S.html = function(opts) end S.dartls = function(opts) - opts.cmd = require('tms.ft.dart.bin').lsp_cmd() + local dart_bin = vim.fn.resolve(vim.fn.exepath('dart')) + opts.cmd = { dart_bin, 'language-server', '--port=10000' } opts.init_options = { closingLabels = true, outline = true } -- filetypes = {'dart', 'html'} opts.settings = { dart = { lineLength = 120, showTodos = true, completeFunctionCalls = true } }