diff --git a/doc/symbols-outline.txt b/doc/symbols-outline.txt index 1387c60..38fc280 100644 --- a/doc/symbols-outline.txt +++ b/doc/symbols-outline.txt @@ -1,293 +1,178 @@ -*symbols-outline.txt* Tree view of LSP symbols +*symbols-outline.txt* For NVIM v0.5.0 Last change: 2022 August 18 -================================================================================ -CONTENTS *symbols-outline-contents* +============================================================================== +Table of Contents *symbols-outline-table-of-contents* - 1. Introduction...........................|symbols-outline-introduction| - 2. Prerequisites.........................|symbols-outline-prerequisites| - 3. Installation...........................|symbols-outline-installation| - 4. Configuration.........................|symbols-outline-configuration| - 5. Commands...................................|symbols-outline-commands| - 6. Default keymaps.....................|symbols-outline-default_keymaps| - 7. Highlights...............................|symbols-outline-highlights| +1. symbols-outline.nvim |symbols-outline-symbols-outline.nvim| + - Prerequisites |symbols-outline-prerequisites| + - Installation |symbols-outline-installation| + - Setup |symbols-outline-setup| + - Configuration |symbols-outline-configuration| + - Commands |symbols-outline-commands| + - Default keymaps |symbols-outline-default-keymaps| + - Highlights |symbols-outline-highlights| + +============================================================================== +1. symbols-outline.nvim *symbols-outline-symbols-outline.nvim* + +**A tree like view for symbols in Neovim using the Language Server Protocol. +Supports all your favourite languages.** + +
+ +

demo

+
+ +PREREQUISITES *symbols-outline-prerequisites* -================================================================================ -1. INTRODUCTION *symbols-outline-introduction* - -A tree like view for symbols in Neovim using the Language Server Protocol. -Supports all your favourite languages. - -================================================================================ -2. PREREQUISITES *symbols-outline-prerequisites* - -* `neovim 0.5+` -* Properly configured Neovim LSP client +- `neovim 0.7+` +- Properly configured Neovim LSP client -================================================================================ -3. INSTALLATION *symbols-outline-installation* +INSTALLATION *symbols-outline-installation* + +Using `packer.nvim` -Using `vim-plug` > - Plug 'simrat39/symbols-outline.nvim' + use 'simrat39/symbols-outline.nvim' < -================================================================================ -4. CONFIGURATION *symbols-outline-configuration* +SETUP *symbols-outline-setup* -Define a global variable `symbols_outline` as follows: +Put the setup call in your init.lua or any lua file that is sourced. -Only add stuff that you want to override (even in nested tables), -or skip this section entirely if you want to roll with the defaults. > - -- init.lua - vim.g.symbols_outline = { - highlight_hovered_item = true, - show_guides = true, - auto_preview = true, - position = 'right', - width = 25, - auto_close = false, - show_numbers = false, - show_relative_numbers = false, - show_symbol_details = true, - preview_bg_highlight = 'Pmenu', - -- These keymaps can be a string or a table for multiple keys - keymaps = { - close = {"", "q"}, - goto_location = "", - focus_location = "o", - hover_symbol = "", - toggle_preview = "K", - rename_symbol = "r", - code_actions = "a", - }, - lsp_blacklist = {}, - symbol_blacklist = {}, - symbols = { - File = {icon = "", hl = "TSURI"}, - Module = {icon = "", hl = "TSNamespace"}, - Namespace = {icon = "", hl = "TSNamespace"}, - Package = {icon = "", hl = "TSNamespace"}, - Class = {icon = "𝓒", hl = "TSType"}, - Method = {icon = "ƒ", hl = "TSMethod"}, - Property = {icon = "", hl = "TSMethod"}, - Field = {icon = "", hl = "TSField"}, - Constructor = {icon = "", hl = "TSConstructor"}, - Enum = {icon = "ℰ", hl = "TSType"}, - Interface = {icon = "ﰮ", hl = "TSType"}, - Function = {icon = "", hl = "TSFunction"}, - Variable = {icon = "", hl = "TSConstant"}, - Constant = {icon = "", hl = "TSConstant"}, - String = {icon = "𝓐", hl = "TSString"}, - Number = {icon = "#", hl = "TSNumber"}, - Boolean = {icon = "⊨", hl = "TSBoolean"}, - Array = {icon = "", hl = "TSConstant"}, - Object = {icon = "⦿", hl = "TSType"}, - Key = {icon = "🔐", hl = "TSType"}, - Null = {icon = "NULL", hl = "TSType"}, - EnumMember = {icon = "", hl = "TSField"}, - Struct = {icon = "𝓢", hl = "TSType"}, - Event = {icon = "🗲", hl = "TSType"}, - Operator = {icon = "+", hl = "TSOperator"}, - TypeParameter = {icon = "𝙏", hl = "TSParameter"} - } + require("symbols-outline").setup() +< + + +CONFIGURATION *symbols-outline-configuration* + +Pass a table to the setup call above with your configuration options. + +> + local opts = { + highlight_hovered_item = true, + show_guides = true, + auto_preview = false, + position = 'right', + relative_width = true, + width = 25, + auto_close = false, + show_numbers = false, + show_relative_numbers = false, + show_symbol_details = true, + preview_bg_highlight = 'Pmenu', + autofold_depth = nil, + auto_unfold_hover = true, + fold_markers = { '', '' }, + keymaps = { -- These keymaps can be a string or a table for multiple keys + close = {"", "q"}, + goto_location = "", + focus_location = "o", + hover_symbol = "", + toggle_preview = "K", + rename_symbol = "r", + code_actions = "a", + fold = "h", + unfold = "l", + fold_all = "W", + unfold_all = "E", + fold_reset = "R", + }, + lsp_blacklist = {}, + symbol_blacklist = {}, + symbols = { + File = {icon = "", hl = "TSURI"}, + Module = {icon = "", hl = "TSNamespace"}, + Namespace = {icon = "", hl = "TSNamespace"}, + Package = {icon = "", hl = "TSNamespace"}, + Class = {icon = "𝓒", hl = "TSType"}, + Method = {icon = "ƒ", hl = "TSMethod"}, + Property = {icon = "", hl = "TSMethod"}, + Field = {icon = "", hl = "TSField"}, + Constructor = {icon = "", hl = "TSConstructor"}, + Enum = {icon = "ℰ", hl = "TSType"}, + Interface = {icon = "ﰮ", hl = "TSType"}, + Function = {icon = "", hl = "TSFunction"}, + Variable = {icon = "", hl = "TSConstant"}, + Constant = {icon = "", hl = "TSConstant"}, + String = {icon = "𝓐", hl = "TSString"}, + Number = {icon = "#", hl = "TSNumber"}, + Boolean = {icon = "⊨", hl = "TSBoolean"}, + Array = {icon = "", hl = "TSConstant"}, + Object = {icon = "⦿", hl = "TSType"}, + Key = {icon = "🔐", hl = "TSType"}, + Null = {icon = "NULL", hl = "TSType"}, + EnumMember = {icon = "", hl = "TSField"}, + Struct = {icon = "𝓢", hl = "TSType"}, + Event = {icon = "🗲", hl = "TSType"}, + Operator = {icon = "+", hl = "TSOperator"}, + TypeParameter = {icon = "𝙏", hl = "TSParameter"} + } } < ------------------------------------------------------------------------------ -highlight_hovered_item - Whether to highlight the currently hovered symbol (high cpu usage) - - Default: true ~ - - Type: boolean - ------------------------------------------------------------------------------ -show_guides - - Whether to show outline guides - - Default: true ~ - - Type: boolean - ------------------------------------------------------------------------------ -position - - Where to open the split window - - Default: 'right' ~ - - Type: 'right' or 'left' - ------------------------------------------------------------------------------ -relative_width - - Whether the width of the window is relative to the current split or an - absolute width - - Default: true ~ - - Type: boolean - ------------------------------------------------------------------------------ -width - - Width of the window as a percentage of the current split - (`relative_width `= true) or as number of columns (`relative_width `= false) - - Default: 25 ~ - - Type: int - ------------------------------------------------------------------------------ -auto_close - - Whether to automatically close the window after selection - - Default: false ~ - - Type: boolean - ------------------------------------------------------------------------------ -auto_preview - - Show a preview of the code on hover - - Default: true ~ - - Type: boolean - ------------------------------------------------------------------------------ -show_numbers - - Shows numbers with the outline - - Default: false ~ - - Type: boolean - ------------------------------------------------------------------------------ -show_relative_numbers - - Shows relative numbers with the outline - - Default: false ~ - - Type: boolean - ------------------------------------------------------------------------------ -show_symbol_details - - Shows extra details with the symbols (lsp dependent) - - Default: true ~ - - Type: boolean - ------------------------------------------------------------------------------ -preview_bg_highlight - - Background color of the preview window - - Default: Pmenu - - Type: string - ------------------------------------------------------------------------------ -winblend - - Pseudo-transparency of the preview window (value between `0` and `100`) - See `:h winblend` - - Default: 0 - - Type: int - ------------------------------------------------------------------------------ -keymaps - - Which keys do what - - Default: See |symbols-outline-default_keymaps| ~ - - Type: table (dictionary) - - ------------------------------------------------------------------------------ -symbols - - Icon and highlight config for symbol icons - - Default: See default config ~ - - Type: table (dictionary) - - ------------------------------------------------------------------------------ -lsp_blacklist - - Which lsp clients to ignore - - Default: {} ~ - - Type: table (dictionary) - ------------------------------------------------------------------------------ -symbol_blacklist - - Which symbols to ignore - -> - -- symbols-outline.nvim/lua/symbols-outline/symbols.lua - { - "File", "Module", "Namespace", "Package", "Class", "Method", "Property", - "Field", "Constructor", "Enum", "Interface", "Function", "Variable", - "Constant", "String", "Number", "Boolean", "Array", "Object", "Key", - "Null", "EnumMember", "Struct", "Event", "Operator", "TypeParameter" - } -< - - Default: {} ~ - - Type: table (dictionary) - -================================================================================ -5. COMMANDS *symbols-outline-commands* - -| Command | Description | -| ---------------------- | ---------------------- | -| `:SymbolsOutline` | Toggle symbols outline | -| `:SymbolsOutlineOpen` | Open symbols outline | -| `:SymbolsOutlineClose` | Close symbols outline | - -================================================================================ -6. DEFAULT KEYMAPS *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 | -| K | Toggles the current symbol preview | -| r | Rename symbol | -| a | Code actions | -| ? | Show help message | - -================================================================================ -7. HIGHLIGHTS *symbols-outline-highlights* - -| Highlight | Purpose | -| ----------------------- | ------------------------------------------------------- | -| FocusedSymbol | Highlight of the focused symbol | -| Pmenu | Highlight of the preview popup windows | -| SymbolsOutlineConnector | Highlight of the table connectors | -| Comment | Highlight of the table connectors and info virtual text | - -================================================================================ -vim:tw=79:ts=8:ft=help:norl +│ 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 selection │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)│|symbols-outline-here|│ +│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) │{ '', '' } │ + + +COMMANDS *symbols-outline-commands* + +│ Command │ Description │ +│:SymbolsOutline │Toggle symbols outline│ +│:SymbolsOutlineOpen │Open symbols outline │ +│:SymbolsOutlineClose │Close symbols outline │ + + +DEFAULT KEYMAPS *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 │ +│K │Toggles the current symbol preview │ +│r │Rename symbol │ +│a │Code actions │ +│h │Unfold symbol │ +│l │Fold symbol │ +│W │Fold all symbols │ +│E │Unfold all symbols │ +│R │Reset all folding │ +│? │Show help message │ + + +HIGHLIGHTS *symbols-outline-highlights* + +│ Highlight │ Purpose │ +│FocusedSymbol │Highlight of the focused symbol │ +│Pmenu │Highlight of the preview popup windows│ +│SymbolsOutlineConnector│Highlight of the table connectors │ +│Comment │Highlight of the info virtual text │ + + +Generated by panvimdoc + +vim:tw=78:ts=8:noet:ft=help:norl: