diff --git a/README.md b/README.md index 40f0034..f143339 100644 --- a/README.md +++ b/README.md @@ -81,7 +81,7 @@ vim.g.symbols_outline = { | 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 | +| show_guides | Whether to show outline guides | boolean | true | | position | Where to open the split window | 'right' or 'left' | 'right' | | width | How big the window is (relative to the current split) | int | 25 | | auto_preview | Show a preview of the code on hover | boolean | true | diff --git a/doc/symbols-outline.txt b/doc/symbols-outline.txt new file mode 100644 index 0000000..b08ba1f --- /dev/null +++ b/doc/symbols-outline.txt @@ -0,0 +1,241 @@ +*symbols-outline.txt* Tree view of LSP symbols + +================================================================================ +CONTENTS *symbols-outline-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| + + +================================================================================ +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 + + +================================================================================ +3. INSTALLATION *symbols-outline-installation* + +Using `vim-plug` +> + Plug 'simrat39/symbols-outline.nvim' +< + + +================================================================================ +4. CONFIGURATION *symbols-outline-configuration* + +Define a global variable `symbols_outline` as follows: + +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, + show_numbers = false, + show_relative_numbers = false, + show_symbol_details = true, + -- These keymaps can be a string or a table for multiple keys + keymaps = { + close = {"", "q"}, + goto_location = "", + focus_location = "o", + hover_symbol = "", + preview_symbol = "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"} + } + } +< + +----------------------------------------------------------------------------- +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' + +----------------------------------------------------------------------------- +width + + How big the window is (relative to the current split) + + Default: 25 ~ + + Type: int + +----------------------------------------------------------------------------- +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 + +----------------------------------------------------------------------------- +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 | Show current symbol preview | +| r | Rename symbol | +| a | Code actions | + +================================================================================ +vim:tw=79:ts=8:ft=help:norl