From 006eca971ca2c85fae439e5bb079080f0a843880 Mon Sep 17 00:00:00 2001 From: Kyren223 Date: Thu, 4 Jul 2024 01:18:03 +0300 Subject: Neovim: configured lsp saga (this plugin is amazing, has a bunch of Intellij-like features) --- .config/nvim/lua/plugins/lsp-saga.lua | 49 +++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 .config/nvim/lua/plugins/lsp-saga.lua (limited to '.config/nvim/lua/plugins/lsp-saga.lua') diff --git a/.config/nvim/lua/plugins/lsp-saga.lua b/.config/nvim/lua/plugins/lsp-saga.lua new file mode 100644 index 0000000..28480b2 --- /dev/null +++ b/.config/nvim/lua/plugins/lsp-saga.lua @@ -0,0 +1,49 @@ +return { + 'nvimdev/lspsaga.nvim', + dependencies = { + 'nvim-treesitter/nvim-treesitter', + 'nvim-tree/nvim-web-devicons', + }, + config = function() + require('lspsaga').setup({ + lightbulb = { + sign = false, + virtual_text = true, + }, + implement = { + sign = false, + virtual_text = true, + }, + floaterm = { + height = 0.7, + width = 0.7, + }, + }) + local diagnostic = require('lspsaga.diagnostic') + local unused = 5 + + vim.keymap.set('n', 'K', ':Lspsaga hover_doc', { desc = 'Display Docs' }) + vim.keymap.set('n', 'R', ':Lspsaga rename', { desc = '[R]ename' }) + + vim.keymap.set({ 'n', 'i' }, '', 'Lspsaga code_action', { desc = 'Code Actions' }) + vim.keymap.set('n', 'ca', ':Lspsaga code_action', { desc = '[C]ode [A]ctions' }) + + vim.keymap.set('n', 'ge', function() + diagnostic:goto_next({ severity = vim.diagnostic.severity.WARN }) + end, { desc = '[G]oto [E]rror' }) + vim.keymap.set('n', 'gE', function() + diagnostic:goto_prev({ severity = vim.diagnostic.severity.WARN }) + end, { desc = '[G]oto [E]rror (prev)' }) + vim.keymap.set( + 'n', + 'dw', + 'Lspsaga show_workspace_diagnostics ++normal', + { desc = '[D]iagnostics for [W]orkspace' } + ) + + vim.keymap.set({ 'n', 't' }, '', 'Lspsaga term_toggle', { desc = '[T]erminal' }) + + -- TODO: use require(lspsaga.symbol.winbar).get_bar() + -- and add it to lualine rather than have it at the top of the screen which is a bit annoying + end, +} -- cgit v1.3.1