nvimdev

Lspsaga

lspsaga.nvim #

Improves the Neovim built-in LSP experience.

Installation #

lazy.nvim #

require('lazy').setup({
    'nvimdev/lspsaga.nvim',
    config = function()
        require('lspsaga').setup({})
    end,
    dependencies = {
        'nvim-treesitter/nvim-treesitter', -- optional
        'nvim-tree/nvim-web-devicons',     -- optional
    }
})

Three ways to lazy load lspsaga:

  1. Use event = 'LspAttach' (need latest lazy.nvim 2023-July-9)
  2. Use ft = {filetype} like ft = {'c','cpp', 'lua', 'rust', 'go'},
  3. As a depend on nvim-lspconfig

packer.nvim #

use ({
    'nvimdev/lspsaga.nvim',
    after = 'nvim-lspconfig',
    config = function()
        require('lspsaga').setup({})
    end,
})

Modules #

Finder: UI for advanced LSP symbol search

Diagnostic: Jump between diagnostic and show them in pretty floats

Peek Definition / Type Definition

Hover: Prettier hover actions

Rename: LSP rename and async project search & replace

Callhierarchy Incoming / Outgoing calls

Code Action: Pretty UI for code actions with live preview

LightBulb: VSCode like lightbulb indicating possible code actions

Breadcrumbs: IDE like symbol outline on your winbar

Outline: IDE like symbols outline

Implement: Easily see number of implementations and quickly jump to them

Float Term: A simple float terminal

Miscellaneous: Options that apply to all modules

Troubleshooting #

Create an issue

Feature request