e7a2cfbee8b5f998547ef4a4e6929e5add2d0584
symbols-outline.nvim
A tree like view for symbols in Neovim using the Language Server Protocol. Supports all your favourite languages.
Prerequisites
neovim 0.5+(nightly)- Properly configured Neovim LSP client
Installation
Using vim-plug
Plug 'simrat39/symbols-outline.nvim'
Configuration
Define a global variable symbols_outline as follows:
-- init.lua
vim.g.symbols_outline = {
highlight_hovered_item = true,
show_guides = true,
auto_preview = true,
position = 'right',
keymaps = {
close = "<Esc>",
goto_location = "<Cr>",
focus_location = "o",
hover_symbol = "<C-space>",
rename_symbol = "r",
code_actions = "a",
},
lsp_blacklist = {},
}
or
" init.vim
let g:symbols_outline = {
\ "highlight_hovered_item": v:true,
\ "show_guides": v:true,
\ "position": 'right',
\ "auto_preview": v:true,
\ "keymaps": {
\ "close": "<Esc>",
\ "goto_location": "<Cr>",
\ "focus_location": "o",
\ "hover_symbol": "<C-space>",
\ "rename_symbol": "r",
\ "code_actions": "a",
\ },
\ "lsp_blacklist": [],
\ }
| Property | Description | Type | Default |
|---|---|---|---|
| highlight_hovered_item | Whether to highlight the currently hovered symbol (high cpu usage) | boolean | true |
| show_guides | Wether to show outline guides | boolean | true |
| position | Where to open the split window | 'right' or 'left' | 'right' |
| auto_preview | Show a preview of the code on hover | boolean | true |
| keymaps | Which keys do what | table (dictionary) | here |
| lsp_blacklist | Which lsp clients to ignore | table (array) | {} |
Commands
| Command | Description |
|---|---|
:SymbolsOutline |
Toggle symbols outline |
:SymbolsOutlineOpen |
Open symbols outline |
:SymbolsOutlineClose |
Close symbols outline |
Default keymaps
| Key | Action |
|---|---|
| Escape | Close outline |
| Enter | Go to symbol location in code |
| o | Go to symbol location in code without losing focus |
| Ctrl+Space | Hover current symbol |
| r | Rename symbol |
| a | Code actions |
Languages
Lua
100%
