From ea0f4bf8ffade657b1d45152dbc183d4679e75c4 Mon Sep 17 00:00:00 2001 From: Elvis Claros Castro Date: Fri, 12 Jul 2024 11:18:14 -0300 Subject: Feat: PI --- lua/pi/lsp/attach.lua | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 lua/pi/lsp/attach.lua (limited to 'lua/pi/lsp/attach.lua') diff --git a/lua/pi/lsp/attach.lua b/lua/pi/lsp/attach.lua new file mode 100644 index 0000000..7c28494 --- /dev/null +++ b/lua/pi/lsp/attach.lua @@ -0,0 +1,29 @@ +local telescope_mapper = require "pi.telescope.mappings" + +return function(client, bufnr) + -- keymaps for lsp + vim.keymap.set("n", "K", vim.lsp.buf.hover, { buffer = 0, desc = "LSP Help information of symbol under the cursor" }) + vim.keymap.set("n", "vrn", vim.lsp.buf.rename, { buffer = 0, desc = "LSP Rename symbol under cursor" }) + vim.keymap.set("i", "", vim.lsp.buf.signature_help, { buffer = 0, desc = "LSP Signature help" }) + vim.keymap.set("n", "vo", ":LspRestart", { noremap = true, desc = "LSP Restart Server" }) + vim.keymap.set({ "n", "v" }, "vca", vim.lsp.buf.code_action, { buffer = 0, desc = "LSP Code actions" }) + vim.keymap.set("n", "vf", function() + return vim.lsp.buf.format { + async = true, + filter = function(cli) + return cli.name ~= "lua_ls" + end, + } + end, { buffer = 0, desc = "LSP format file" }) + + telescope_mapper("gr", "lsp_references", { buffer = true, desc = "LSP References of symbol on cursor" }) + telescope_mapper("pv", "find_symbol", { buffer = true, desc = "LSP find symbol on the project" }) + telescope_mapper("pd", "lsp_document_symbols", { buffer = true, desc = "LSP document symbols" }) + telescope_mapper("gd", "lsp_definitions", { buffer = true, desc = "LSP go to definition" }) + + vim.bo.omnifunc = "v:lua.vim.lsp.omnifunc" + + if client.server_capabilities.inlayHintProvider then + vim.lsp.inlay_hint.enable(bufnr) + end +end -- cgit v1.2.3