commit 97ccfaaa8d78c5ab7a05ceaae0c4d8aeaee80baf
parent ee8a7085cf42a949ef87a2ccd671ba72ad2b5479
Author: Tomas Nemec <nemi@skaut.cz>
Date: Thu, 27 Jan 2022 19:25:33 +0100
update
Diffstat:
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