From f72f18f5c759ecc1427e42fd6c9d0559e78fca21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Pankowski?= Date: Wed, 17 Apr 2024 22:46:39 +0200 Subject: [PATCH] nvim: add lspsaga --- nvim/.config/nvim/lazy-lock.json | 1 + nvim/.config/nvim/lua/lupan/remap.lua | 4 --- nvim/.config/nvim/lua/plugins/lsp.lua | 40 +++++++++++++++++++++++++-- 3 files changed, 39 insertions(+), 6 deletions(-) diff --git a/nvim/.config/nvim/lazy-lock.json b/nvim/.config/nvim/lazy-lock.json index 07768c2..3988bd7 100644 --- a/nvim/.config/nvim/lazy-lock.json +++ b/nvim/.config/nvim/lazy-lock.json @@ -16,6 +16,7 @@ "indent-blankline.nvim": { "branch": "master", "commit": "3d08501caef2329aba5121b753e903904088f7e6" }, "lazy.nvim": { "branch": "main", "commit": "31ddbea7c10b6920c9077b66c97951ca8682d5c8" }, "leap.nvim": { "branch": "main", "commit": "626be4c4ec040aeaf6466c9aae17ee0ab09f1a5b" }, + "lspsaga.nvim": { "branch": "main", "commit": "a4d442896a9ff1f83ee3db965d81b659ebc977d5" }, "lualine.nvim": { "branch": "master", "commit": "0a5a66803c7407767b799067986b4dc3036e1983" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "44509689b9bf3984d729cc264aacb31cb7f41668" }, "mason-tool-installer.nvim": { "branch": "main", "commit": "b129892f783740e6cf741f2ea09fa5dd512aa584" }, diff --git a/nvim/.config/nvim/lua/lupan/remap.lua b/nvim/.config/nvim/lua/lupan/remap.lua index 96af921..b99f59a 100644 --- a/nvim/.config/nvim/lua/lupan/remap.lua +++ b/nvim/.config/nvim/lua/lupan/remap.lua @@ -110,10 +110,6 @@ end, { silent = true }) vim.keymap.set("n", "ss", "source ~/.config/nvim/after/plugin/luasnip.lua", { desc = "[S]nippets [s]ource" }) --- terminal - -key('t', '', '') - -- colors key('n', '', function() diff --git a/nvim/.config/nvim/lua/plugins/lsp.lua b/nvim/.config/nvim/lua/plugins/lsp.lua index 751e774..87d858d 100644 --- a/nvim/.config/nvim/lua/plugins/lsp.lua +++ b/nvim/.config/nvim/lua/plugins/lsp.lua @@ -25,11 +25,14 @@ return { map('D', require('telescope.builtin').lsp_type_definitions, 'Type [D]efinition') map('ds', require('telescope.builtin').lsp_document_symbols, '[D]ocument [S]ymbols') map('ws', require('telescope.builtin').lsp_dynamic_workspace_symbols, '[W]orkspace [S]ymbols') - map('rn', vim.lsp.buf.rename, '[R]e[n]ame') + map('rn', 'Lspsaga rename', '[R]e[n]ame') map('ca', vim.lsp.buf.code_action, '[C]ode [A]ction') - map('K', vim.lsp.buf.hover, 'Hover Documentation') + map('K', 'Lspsaga hover_doc', 'Hover Documentation') map('K', vim.lsp.buf.signature_help, 'Signature Documentation') map('gD', vim.lsp.buf.declaration, '[G]oto [D]eclaration') + vim.keymap.set('n', '[d', 'Lspsaga diagnostic_jump_prev', + { desc = 'Go to previous [D]iagnostic message' }) + vim.keymap.set('n', ']d', 'Lspsaga diagnostic_jump_next', { desc = 'Go to next [D]iagnostic message' }) -- Highlight references under cursor (clear highlight when cursor moves). local client = vim.lsp.get_client_by_id(event.data.client_id) @@ -120,4 +123,37 @@ return { } end, }, + { + 'nvimdev/lspsaga.nvim', + dependencies = { + 'nvim-treesitter/nvim-treesitter', + 'nvim-tree/nvim-web-devicons', + }, + config = function() + require('lspsaga').setup({ + lightbulb = { enable = false } + }) + vim.keymap.set('n', 'la', 'Lspsaga code_action', { desc = "[L]spsaga code [A]ction" }) + vim.keymap.set('n', 'lb', 'Lspsaga show_buf_diagnostics', + { desc = "[L]spsaga [B]uffer diagnostics" }) + vim.keymap.set('n', 'lc', 'Lspsaga show_cursor_diagnostics', + { desc = "[L]spsaga [C]ursor diagnostics" }) + vim.keymap.set('n', 'ld', 'Lspsaga goto_definition', { desc = "[L]spsaga goto [D]efinition" }) + vim.keymap.set('n', 'lD', 'Lspsaga goto_type_definition', + { desc = "[L]spsaga goto type [D]efinition" }) + vim.keymap.set('n', 'lf', 'Lspsaga finder', { desc = "[L]spsaga [F]inder" }) + vim.keymap.set('n', 'lI', 'Lspsaga finder imp', { desc = "[L]spsaga finder [I]mplementations" }) + vim.keymap.set('n', 'li', 'Lspsaga incoming_calls', { desc = "[L]spsaga [I]ncomping calls" }) + vim.keymap.set('n', 'll', 'Lspsaga show_line_diagnostics', + { desc = "[L]spsaga [L]ine diagnostics" }) + vim.keymap.set('n', 'lo', 'Lspsaga outgoing_calls', { desc = "[L]spsaga [O]utgoing calls" }) + vim.keymap.set('n', 'lO', 'Lspsaga outline', { desc = "[L]spsaga [O]utline" }) + vim.keymap.set('n', 'lp', 'Lspsaga peek_definition', { desc = "[L]spsaga [P]eek definition" }) + vim.keymap.set('n', 'lP', 'Lspsaga peek_type_definition', + { desc = "[L]spsaga [P]eek type definition" }) + vim.keymap.set('n', 'lw', 'Lspsaga show_workspace_diagnostics', + { desc = "[L]spsaga [W]orkspace diagnostics" }) + vim.keymap.set({ 'n', 't' }, '', 'Lspsaga term_toggle', { desc = "[L]spsaga [T]erm toggle" }) + end, + }, }