neovim

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

commit 97ccfaaa8d78c5ab7a05ceaae0c4d8aeaee80baf
parent ee8a7085cf42a949ef87a2ccd671ba72ad2b5479
Author: Tomas Nemec <nemi@skaut.cz>
Date:   Thu, 27 Jan 2022 19:25:33 +0100

update

Diffstat:
Mlua/tms/lsp/init.lua | 17++++++++++-------
Mlua/tms/p/telescope.lua | 3++-
2 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/lua/tms/lsp/init.lua b/lua/tms/lsp/init.lua @@ -2,9 +2,9 @@ local servers = require('tms.lsp.servers') local M = {} -local keybind = function(bufnr) +local keybind = function(client, bufnr) local t = require('tms.p.telescope') - vim.keymap.nnoremap {'gd', vim.lsp.buf.definition, buffer = bufnr, silent = true} + vim.keymap.nnoremap {'gd', t.lsp_definitions, buffer = bufnr, silent = true} vim.keymap.nnoremap {'gD', '<cmd>vsplit | lua vim.lsp.buf.definition()<cr>', silent = true, buffer = bufnr} vim.keymap.nnoremap {'gi', vim.lsp.buf.implementation, silent = true, buffer = bufnr} vim.keymap.nnoremap {'K', vim.lsp.buf.hover, silent = true, buffer = bufnr} @@ -14,8 +14,11 @@ local keybind = function(bufnr) vim.keymap.nnoremap {'ga', vim.lsp.buf.code_action, silent = true, buffer = bufnr} vim.keymap.nnoremap {'gn', vim.lsp.buf.rename, silent = true, buffer = bufnr} -- Formatting - vim.keymap.nnoremap {'Q', vim.lsp.buf.formatting, silent = true, buffer = bufnr} - vim.keymap.vnoremap {'Q', vim.lsp.buf.range_formatting, silent = true, buffer = bufnr} + if client.resolved_capabilities.document_formatting == true then + vim.api.nvim_buf_set_option(bufnr, 'formatexpr', 'v:lua.vim.lsp.formatexpr()') + vim.keymap.nnoremap {'Q', vim.lsp.buf.formatting, silent = true, buffer = bufnr} + vim.keymap.vnoremap {'Q', vim.lsp.buf.range_formatting, silent = true, buffer = bufnr} + end -- symbols vim.keymap.nnoremap {'gm', t.lsp_document_symbols, silent = true, buffer = bufnr} vim.keymap.nnoremap {'gww', t.b.lsp_dynamic_workspace_symbols, silent = true, buffer = bufnr} @@ -29,10 +32,10 @@ local on_attach = function(client, bufnr) local lsp = vim.lsp lsp.handlers['textDocument/hover'] = lsp.with(lsp.handlers.hover, {border = 'single'}) lsp.handlers['textDocument/signatureHelp'] = lsp.with(lsp.handlers.signature_help, {border = 'single'}) - if client.resolved_capabilities.goto_definition == true then + if client.resolved_capabilities.goto_definition then vim.api.nvim_buf_set_option(bufnr, 'tagfunc', 'v:lua.vim.lsp.tagfunc') end - if client.resolved_capabilities.document_formatting == true then + if client.resolved_capabilities.document_formatting then vim.api.nvim_buf_set_option(bufnr, 'formatexpr', 'v:lua.vim.lsp.formatexpr()') end for _, cb in ipairs(attach_callbacks) do @@ -40,7 +43,7 @@ local on_attach = function(client, bufnr) cb.fn(client, bufnr) end end - keybind(bufnr) + keybind(client, bufnr) end local capabilities = function() diff --git a/lua/tms/p/telescope.lua b/lua/tms/p/telescope.lua @@ -17,7 +17,7 @@ M.e = extensions local layouts = { dd = themes.get_dropdown(), - dd_noprev = themes.get_dropdown {previewer = false}, + dd_noprev = themes.get_dropdown ({previewer = false}), dd_large = themes.get_dropdown({layout_config = {width = 120}}), dd_large_noprev = themes.get_dropdown {layout_config = {width = 120}, previewer = false}, } @@ -78,5 +78,6 @@ M.keymaps = function() builtin.keymaps(layouts.dd_large) end M.quickfix = function() builtin.quickfix(layouts.dd_large_noprev) end M.lsp_code_actions = function() builtin.lsp_code_actions(layouts.dd) end M.lsp_document_symbols = function() builtin.lsp_document_symbols(layouts.dd_large) end +M.lsp_definitions = function() builtin.lsp_definitions(layouts.dd) end return M