chore(docs): Update readme

This commit is contained in:
hedy
2023-11-01 18:54:40 +08:00
parent 3008909d3c
commit 505e99e870
2 changed files with 53 additions and 59 deletions

108
README.md
View File

@@ -233,29 +233,37 @@ Pass a table to the setup call above with your configuration options.
```lua ```lua
local opts = { local opts = {
-- Whether to highlight the currently hovered symbol (high cpu usage)
highlight_hovered_item = true, highlight_hovered_item = true,
-- Whether to show outline guides
show_guides = true, show_guides = true,
-- Automatically open preview of code on hover
auto_preview = false, auto_preview = false,
-- Where to open the split window: right/left
position = 'right', position = 'right',
-- Whether width is relative to existing windows
relative_width = true, relative_width = true,
-- Percentage or integer of columns
width = 25, width = 25,
-- Behaviour changed in this fork: -- Behaviour changed in this fork:
-- Auto close the outline window if goto_location is triggered and not for -- Auto close the outline window if goto_location is triggered and not for
-- focus_location -- focus_location
auto_close = false, auto_close = false,
-- Vim options for the outline window -- Vim options for the outline window
show_numbers = false, show_numbers = false,
show_relative_numbers = false, show_relative_numbers = false,
show_cursorline = true, show_cursorline = true,
-- Show extra details with the symbols (lsp dependent)
show_symbol_details = true, show_symbol_details = true,
-- Highlight group for the preview background -- Highlight group for the preview background
preview_bg_highlight = 'Pmenu', preview_bg_highlight = 'Pmenu',
-- Depth past which nodes will be folded by default
autofold_depth = nil, autofold_depth = nil,
-- Automatically unfold hovered symbol
auto_unfold_hover = true, auto_unfold_hover = true,
fold_markers = { '', '' }, fold_markers = { '', '' },
-- Whether to wrap long lines, or let them flow off the window
wrap = false, wrap = false,
-- Only in this fork: -- Only in this fork:
@@ -263,8 +271,12 @@ local opts = {
-- Set to false to remain focus on your previous buffer when opening -- Set to false to remain focus on your previous buffer when opening
-- symbols-outline. -- symbols-outline.
focus_on_open = true, focus_on_open = true,
-- Pseudo-transparency of the preview window
winblend = 0
keymaps = { -- These keymaps can be a string or a table for multiple keys -- These keymaps can be a string or a table for multiple keys
keymaps = {
show_help = '?',
close = {"<Esc>", "q"}, close = {"<Esc>", "q"},
-- Jump to symbol under cursor -- Jump to symbol under cursor
goto_location = "<Cr>", goto_location = "<Cr>",
@@ -275,17 +287,23 @@ local opts = {
toggle_preview = "K", toggle_preview = "K",
rename_symbol = "r", rename_symbol = "r",
code_actions = "a", code_actions = "a",
-- These fold actions are collapsing tree items, not code folding -- These fold actions are collapsing tree nodes, not code folding
fold = "h", fold = "h",
fold_toggle = '<tab>', -- Only in this fork fold_toggle = '<Tab>', -- Only in this fork
fold_toggle_all = '<S-tab>', -- Only in this fork -- Toggle folds for all nodes.
-- If at least one node is folded, this action will fold all nodes.
-- If all nodes are folded, this action will unfold all nodes.
fold_toggle_all = '<S-Tab>', -- Only in this fork
unfold = "l", unfold = "l",
fold_all = "W", fold_all = "W",
unfold_all = "E", unfold_all = "E",
fold_reset = "R", fold_reset = "R",
}, },
-- Lsp clients to ignore
lsp_blacklist = {}, lsp_blacklist = {},
-- Symbols to ignore.
-- Possible values: lua/symbols-outline/symbols.lua
symbol_blacklist = {}, symbol_blacklist = {},
symbols = { symbols = {
@@ -327,59 +345,35 @@ local opts = {
} }
``` ```
| Property | Description | Type | Default |
| ---------------------- | ------------------------------------------------------------------------------ | ------------------ | ------------------------ |
| highlight_hovered_item | Whether to highlight the currently hovered symbol (high cpu usage) | boolean | true |
| show_guides | Whether to show outline guides | boolean | true |
| position | Where to open the split window | 'right' or 'left' | 'right' |
| relative_width | Whether width of window is set relative to existing windows | boolean | true |
| width | Width of window (as a % or columns based on `relative_width`) | int | 25 |
| auto_close | Whether to automatically close the window after `goto_location` | boolean | false |
| auto_preview | Show a preview of the code on hover | boolean | false |
| show_numbers | Shows numbers with the outline | boolean | false |
| show_relative_numbers | Shows relative numbers with the outline | boolean | false |
| show_symbol_details | Shows extra details with the symbols (lsp dependent) | boolean | true |
| preview_bg_highlight | Background color of the preview window | string | Pmenu |
| winblend | Pseudo-transparency of the preview window | int | 0 |
| keymaps | Which keys do what | table (dictionary) | [here](#default-keymaps) |
| symbols | Icon and highlight config for symbol icons | table (dictionary) | scroll up |
| lsp_blacklist | Which lsp clients to ignore | table (array) | {} |
| symbol_blacklist | Which symbols to ignore ([possible values](./lua/symbols-outline/symbols.lua)) | table (array) | {} |
| autofold_depth | Depth past which nodes will be folded by default | int | nil |
| auto_unfold_hover | Automatically unfold hovered symbol | boolean | true |
| fold_markers | Markers to denote foldable symbol's status | table (array) | { '', '' } |
| wrap | Whether to wrap long lines, or let them flow off the window | boolean | false |
| focus_on_open | Whether to focus cursor on the outline window when opening | boolean | true |
## Commands ## Commands
- **:SymbolsOutline[!]** - **:SymbolsOutline[!]**
Toggle symbols outline. With bang (`!`) the cursor focus stays in your original Toggle symbols outline. With bang (`!`) the cursor focus stays in your
window after opening the outline window. Set `focus_on_win = true` to always use original window after opening the outline window. Set `focus_on_win = true` to
this behaviour. always use this behaviour.
- **:SymbolsOutlineOpen[!]** - **:SymbolsOutlineOpen[!]**
Open symbols outline. With bang (`!`) the cursor focus stays in your original Open symbols outline. With bang (`!`) the cursor focus stays in your original
window after opening the outline window. Set `focus_on_win = true` to always use window after opening the outline window. Set `focus_on_win = true` to always
this behaviour. use this behaviour.
- **:SymbolsOutlineClose** - **:SymbolsOutlineClose**
Close symbols outline Close symbols outline
- **:SymbolsOutlineFocus** - **:SymbolsOutlineFocus**
Toggle focus on symbols outline Toggle focus on symbols outline
- **:SymbolsOutlineFocusOutline** - **:SymbolsOutlineFocusOutline**
Focus on symbols outline Focus on symbols outline
- **:SymbolsOutlineFocusCode** - **:SymbolsOutlineFocusCode**
Focus on source window Focus on source window
### Lua API ### Lua API
@@ -389,37 +383,37 @@ require'symbols-outline'
``` ```
- setup(opts) - setup(opts)
- toggle_outline(opts) - **toggle_outline(opts)**
Toggle opening/closing of outline window. Toggle opening/closing of outline window.
If `opts.bang` is true, keep focus on previous window. If `opts.bang` is true, keep focus on previous window.
- open_outline(opts) - **open_outline(opts)**
Open the outline window. Open the outline window.
If `opts.bang` is true, keep focus on previous window. If `opts.bang` is true, keep focus on previous window.
- close_outline() - **close_outline()**
Close the outline window Close the outline window
- focus_toggle() - **focus_toggle()**
Toggle cursor focus between code and outline window Toggle cursor focus between code and outline window
- focus_outline() - **focus_outline()**
Focus cursor on the outline window. Focus cursor on the outline window.
- focus_code() - **focus_code()**
Focus cursor on the window which the outline is derived from. Focus cursor on the window which the outline is derived from.
- is_open() - **is_open()**
Return whether the outline window is open Return whether the outline window is open
## Default keymaps ## Default keymaps
@@ -427,6 +421,7 @@ Return whether the outline window is open
| Key | Action | | Key | Action |
| ---------- | -------------------------------------------------- | | ---------- | -------------------------------------------------- |
| Escape | Close outline | | Escape | Close outline |
| ? | Show help message |
| Enter | Go to symbol location in code | | Enter | Go to symbol location in code |
| o | Go to symbol location in code without losing focus | | o | Go to symbol location in code without losing focus |
| Ctrl+Space | Hover current symbol | | Ctrl+Space | Hover current symbol |
@@ -440,7 +435,6 @@ Return whether the outline window is open
| W | Fold all symbols | | W | Fold all symbols |
| E | Unfold all symbols | | E | Unfold all symbols |
| R | Reset all folding | | R | Reset all folding |
| ? | Show help message |
## Highlights ## Highlights

View File

@@ -22,7 +22,8 @@ M.defaults = {
fold_markers = { '', '' }, fold_markers = { '', '' },
wrap = false, wrap = false,
focus_on_open = true, focus_on_open = true,
keymaps = { -- These keymaps can be a string or a table for multiple keys keymaps = {
show_help = '?',
close = { '<Esc>', 'q' }, close = { '<Esc>', 'q' },
goto_location = '<Cr>', goto_location = '<Cr>',
focus_location = 'o', focus_location = 'o',
@@ -30,7 +31,6 @@ M.defaults = {
toggle_preview = 'K', toggle_preview = 'K',
rename_symbol = 'r', rename_symbol = 'r',
code_actions = 'a', code_actions = 'a',
show_help = '?',
fold = 'h', fold = 'h',
fold_toggle = '<tab>', fold_toggle = '<tab>',
fold_toggle_all = '<S-tab>', fold_toggle_all = '<S-tab>',