diff --git a/README.md b/README.md index 7fd04e0..920da1d 100644 --- a/README.md +++ b/README.md @@ -1,49 +1,65 @@ # symbols-outline.nvim - A tree like view for symbols in Neovim using the Language Server Protocol. Supports all your favourite languages. + +**A tree like view for symbols in Neovim using the Language Server Protocol. +Supports all your favourite languages.** ![demo](https://github.com/simrat39/rust-tools-demos/raw/master/symbols-demo.gif) -# Prerequisites +### Prerequisites - `neovim 0.5+` (nightly) -# Installation +### Installation -using `vim-plug` +Using `vim-plug` ```vim Plug 'simrat39/symbols-outline.nvim' ``` -# Setup +### Configuration + +Define a global variable `symbols_outline` as follows: + ```lua -local opts = { - -- whether to highlight the currently hovered symbol - -- disable if your cpu usage is higher than you want it - -- or you just hate the highlight - -- default: true +-- init.lua +vim.g.symbols_outline = { highlight_hovered_item = true, - - -- whether to show outline guides - -- default: true show_guides = true, + position = 'right', } - -require('symbols-outline').setup(opts) ``` -## Commands ```vim -SymbolsOutline -SymbolsOutlineOpen -SymbolsOutlineClose -``` -## Keymaps -```vim -Escape --> Close Outline -Enter --> GoTo Symbol location in code -o --> GoTo Symbol location in code but stay in outline window -Ctrl + Space --> Hover current symbol -r --> Rename symbol -a --> Code Actions +" init.vim +let g:symbols_outline = {} +let g:symbols_outline.highlight_hovered_item = v:true +let g:symbols_outline.show_guides = v:true +let g:symbols_outline.position = 'right' ``` + +| 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' | + +### Commands + +| Command | Description | +| ---------------------- | ---------------------- | +| `:SymbolsOutline` | Toggle symbols outline | +| `:SymbolsOutlineOpen` | Open symbols outline | +| `:SymbolsOutlineClose` | Close symbols outline | + +### 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 | + diff --git a/plugin/symbols-outline.vim b/plugin/symbols-outline.vim new file mode 100644 index 0000000..dc3ce65 --- /dev/null +++ b/plugin/symbols-outline.vim @@ -0,0 +1,11 @@ +if exists('g:loaded_symbols_outline') + finish +endif +let g:loaded_symbols_outline = 1 + +if exists('g:symbols_outline') + call luaeval('require"symbols-outline".setup(_A[1])', [g:symbols_outline]) +else + call luaeval('require"symbols-outline".setup()') +endif +