diff options
| author | Kyren223 <ulmliad223@gmail.com> | 2024-07-04 01:18:03 +0300 |
|---|---|---|
| committer | Kyren223 <ulmliad223@gmail.com> | 2024-07-04 01:18:03 +0300 |
| commit | 006eca971ca2c85fae439e5bb079080f0a843880 (patch) | |
| tree | 6704b86852f04bdcf4f88069f0646d4f702a8975 /.config/nvim/lua/plugins/lsp-saga.lua | |
| parent | 3f9b2fec67b9b7b27b8db3b1f6d3b525e47729aa (diff) | |
Neovim: configured lsp saga (this plugin is amazing, has a bunch of Intellij-like features)
Diffstat (limited to '.config/nvim/lua/plugins/lsp-saga.lua')
| -rw-r--r-- | .config/nvim/lua/plugins/lsp-saga.lua | 49 |
1 files changed, 49 insertions, 0 deletions
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<cr>', { desc = 'Display Docs' }) + vim.keymap.set('n', 'R', ':Lspsaga rename<cr>', { desc = '[R]ename' }) + + vim.keymap.set({ 'n', 'i' }, '<M-Enter>', '<cmd>Lspsaga code_action<cr><Esc>', { desc = 'Code Actions' }) + vim.keymap.set('n', '<leader>ca', ':Lspsaga code_action<cr><Esc>', { 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', + '<leader>dw', + '<cmd>Lspsaga show_workspace_diagnostics ++normal<cr>', + { desc = '[D]iagnostics for [W]orkspace' } + ) + + vim.keymap.set({ 'n', 't' }, '<A-t>', '<cmd>Lspsaga term_toggle<cr>', { 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, +} |
