configure outline plugin
This commit is contained in:
@@ -7,241 +7,52 @@ return {
|
||||
},
|
||||
opts = {
|
||||
outline_window = {
|
||||
-- Where to open the split window: right/left
|
||||
position = "right",
|
||||
-- The default split commands used are 'topleft vs' and 'botright vs'
|
||||
-- depending on `position`. You can change this by providing your own
|
||||
-- `split_command`.
|
||||
-- `position` will not be considered if `split_command` is non-nil.
|
||||
-- This should be a valid vim command used for opening the split for the
|
||||
-- outline window. Eg, 'rightbelow vsplit'.
|
||||
-- Width can be included (with will override the width setting below):
|
||||
-- Eg, `topleft 20vsp` to prevent a flash of windows when resizing.
|
||||
split_command = nil,
|
||||
|
||||
-- Percentage or integer of columns
|
||||
width = 30,
|
||||
-- Whether width is relative to the total width of nvim
|
||||
-- When relative_width = true, this means take 25% of the total
|
||||
-- screen width for outline window.
|
||||
width = 25,
|
||||
relative_width = true,
|
||||
|
||||
-- Auto close the outline window if goto_location is triggered and not for
|
||||
-- peek_location
|
||||
auto_close = false,
|
||||
-- Automatically scroll to the location in code when navigating outline window.
|
||||
auto_jump = false,
|
||||
-- boolean or integer for milliseconds duration to apply a temporary highlight
|
||||
-- when jumping. false to disable.
|
||||
jump_highlight_duration = 300,
|
||||
-- Whether to center the cursor line vertically in the screen when
|
||||
-- jumping/focusing. Executes zz.
|
||||
center_on_jump = true,
|
||||
|
||||
-- Vim options for the outline window
|
||||
show_numbers = false,
|
||||
show_relative_numbers = false,
|
||||
show_numbers = true,
|
||||
show_relative_numbers = true,
|
||||
wrap = false,
|
||||
|
||||
-- true/false/'focus_in_outline'/'focus_in_code'.
|
||||
-- The last two means only show cursorline when the focus is in outline/code.
|
||||
-- 'focus_in_outline' can be used if the outline_items.auto_set_cursor
|
||||
-- operations are too distracting due to visual contrast caused by cursorline.
|
||||
show_cursorline = true,
|
||||
-- Enable this only if you enabled cursorline so your cursor color can
|
||||
-- blend with the cursorline, in effect, as if your cursor is hidden
|
||||
-- in the outline window.
|
||||
-- This makes your line of cursor have the same color as if the cursor
|
||||
-- wasn't focused on the outline window.
|
||||
-- This feature is experimental.
|
||||
hide_cursor = false,
|
||||
|
||||
-- Whether to auto-focus on the outline window when it is opened.
|
||||
-- Set to false to *always* retain focus on your previous buffer when opening
|
||||
-- outline.
|
||||
-- If you enable this you can still use bangs in :Outline! or :OutlineOpen! to
|
||||
-- retain focus on your code. If this is false, retaining focus will be
|
||||
-- enforced for :Outline/:OutlineOpen and you will not be able to have the
|
||||
-- other behaviour.
|
||||
focus_on_open = true,
|
||||
-- Winhighlight option for outline window.
|
||||
-- See :help 'winhl'
|
||||
-- To change background color to "CustomHl" for example, use "Normal:CustomHl".
|
||||
winhl = "",
|
||||
hide_cursor = true,
|
||||
focus_on_open = false,
|
||||
},
|
||||
|
||||
outline_items = {
|
||||
-- Show extra details with the symbols (lsp dependent) as virtual next
|
||||
show_symbol_details = true,
|
||||
-- Show corresponding line numbers of each symbol on the left column as
|
||||
-- virtual text, for quick navigation when not focused on outline.
|
||||
-- Why? See this comment:
|
||||
-- https://github.com/simrat39/symbols-outline.nvim/issues/212#issuecomment-1793503563
|
||||
show_symbol_lineno = false,
|
||||
-- Whether to highlight the currently hovered symbol and all direct parents
|
||||
highlight_hovered_item = true,
|
||||
-- Whether to automatically set cursor location in outline to match
|
||||
-- location in code when focus is in code. If disabled you can use
|
||||
-- `:OutlineFollow[!]` from any window or `<C-g>` from outline window to
|
||||
-- trigger this manually.
|
||||
auto_set_cursor = true,
|
||||
-- Autocmd events to automatically trigger these operations.
|
||||
auto_update_events = {
|
||||
-- Includes both setting of cursor and highlighting of hovered item.
|
||||
-- The above two options are respected.
|
||||
-- This can be triggered manually through `follow_cursor` lua API,
|
||||
-- :OutlineFollow command, or <C-g>.
|
||||
follow = { "CursorMoved" },
|
||||
-- Re-request symbols from the provider.
|
||||
-- This can be triggered manually through `refresh_outline` lua API, or
|
||||
-- :OutlineRefresh command.
|
||||
items = { "InsertLeave", "WinEnter", "BufEnter", "BufWinEnter", "TabEnter", "BufWritePost" },
|
||||
},
|
||||
},
|
||||
|
||||
-- Options for outline guides which help show tree hierarchy of symbols
|
||||
guides = {
|
||||
enabled = true,
|
||||
markers = {
|
||||
-- It is recommended for bottom and middle markers to use the same number
|
||||
-- of characters to align all child nodes vertically.
|
||||
bottom = "└",
|
||||
middle = "├",
|
||||
vertical = "│",
|
||||
},
|
||||
},
|
||||
|
||||
symbol_folding = {
|
||||
-- Depth past which nodes will be folded by default. Set to false to unfold all on open.
|
||||
autofold_depth = 1,
|
||||
-- When to auto unfold nodes
|
||||
auto_unfold = {
|
||||
-- Auto unfold currently hovered symbol
|
||||
hovered = true,
|
||||
-- Auto fold when the root level only has this many nodes.
|
||||
-- Set true for 1 node, false for 0.
|
||||
only = true,
|
||||
},
|
||||
markers = { "", "" },
|
||||
},
|
||||
|
||||
preview_window = {
|
||||
-- Automatically open preview of code location when navigating outline window
|
||||
auto_preview = false,
|
||||
-- Automatically open hover_symbol when opening preview (see keymaps for
|
||||
-- hover_symbol).
|
||||
-- If you disable this you can still open hover_symbol using your keymap
|
||||
-- below.
|
||||
open_hover_on_preview = false,
|
||||
width = 50, -- Percentage or integer of columns
|
||||
min_width = 50, -- Minimum number of columns
|
||||
-- Whether width is relative to the total width of nvim.
|
||||
-- When relative_width = true, this means take 50% of the total
|
||||
-- screen width for preview window, ensure the result width is at least 50
|
||||
-- characters wide.
|
||||
relative_width = true,
|
||||
height = 50, -- Percentage or integer of lines
|
||||
min_height = 10, -- Minimum number of lines
|
||||
-- Similar to relative_width, except the height is relative to the outline
|
||||
-- window's height.
|
||||
relative_height = true,
|
||||
-- Border option for floating preview window.
|
||||
-- Options include: single/double/rounded/solid/shadow or an array of border
|
||||
-- characters.
|
||||
-- See :help nvim_open_win() and search for "border" option.
|
||||
border = "single",
|
||||
-- winhl options for the preview window, see ':h winhl'
|
||||
winhl = "NormalFloat:",
|
||||
-- Pseudo-transparency of the preview window, see ':h winblend'
|
||||
winblend = 0,
|
||||
-- Experimental feature that let's you edit the source content live
|
||||
-- in the preview window. Like VS Code's "peek editor".
|
||||
live = false,
|
||||
},
|
||||
|
||||
-- These keymaps can be a string or a table for multiple keys.
|
||||
-- Set to `{}` to disable. (Using 'nil' will fallback to default keys)
|
||||
keymaps = {
|
||||
show_help = "?",
|
||||
close = { "<Esc>", "q" },
|
||||
-- Jump to symbol under cursor.
|
||||
-- It can auto close the outline window when triggered, see
|
||||
-- 'auto_close' option above.
|
||||
goto_location = "<Cr>",
|
||||
-- Jump to symbol under cursor but keep focus on outline window.
|
||||
peek_location = "o",
|
||||
-- Visit location in code and close outline immediately
|
||||
goto_and_close = "<S-Cr>",
|
||||
-- Change cursor position of outline window to match current location in code.
|
||||
-- 'Opposite' of goto/peek_location.
|
||||
restore_location = "<C-g>",
|
||||
-- Open LSP/provider-dependent symbol hover information
|
||||
hover_symbol = "<C-space>",
|
||||
-- Preview location code of the symbol under cursor
|
||||
toggle_preview = "K",
|
||||
rename_symbol = "r",
|
||||
code_actions = "a",
|
||||
-- These fold actions are collapsing tree nodes, not code folding
|
||||
fold = "h",
|
||||
unfold = "l",
|
||||
fold_toggle = "<Tab>",
|
||||
-- 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>",
|
||||
fold_all = "W",
|
||||
unfold_all = "E",
|
||||
fold_reset = "R",
|
||||
-- Move down/up by one line and peek_location immediately.
|
||||
-- You can also use outline_window.auto_jump=true to do this for any
|
||||
-- j/k/<down>/<up>.
|
||||
down_and_jump = "<C-j>",
|
||||
up_and_jump = "<C-k>",
|
||||
},
|
||||
|
||||
providers = {
|
||||
priority = { "lsp", "coc", "markdown", "norg" },
|
||||
-- Configuration for each provider (3rd party providers are supported)
|
||||
lsp = {
|
||||
-- Lsp client names to ignore
|
||||
blacklist_clients = {},
|
||||
},
|
||||
markdown = {
|
||||
-- List of supported ft's to use the markdown provider
|
||||
filetypes = { "markdown" },
|
||||
},
|
||||
},
|
||||
|
||||
symbols = {
|
||||
-- Filter by kinds (string) for symbols in the outline.
|
||||
-- Possible kinds are the Keys in the icons table below.
|
||||
-- A filter list is a string[] with an optional exclude (boolean) field.
|
||||
-- The symbols.filter option takes either a filter list or ft:filterList
|
||||
-- key-value pairs.
|
||||
-- Put exclude=true in the string list to filter by excluding the list of
|
||||
-- kinds instead.
|
||||
-- Include all except String and Constant:
|
||||
-- filter = { 'String', 'Constant', exclude = true }
|
||||
-- Only include Package, Module, and Function:
|
||||
-- filter = { 'Package', 'Module', 'Function' }
|
||||
-- See more examples below.
|
||||
filter = nil,
|
||||
|
||||
-- You can use a custom function that returns the icon for each symbol kind.
|
||||
-- This function takes a kind (string) as parameter and should return an
|
||||
-- icon as string.
|
||||
---@param kind string Key of the icons table below
|
||||
---@param bufnr integer Code buffer
|
||||
---@returns string|boolean The icon string to display, such as "f", or `false`
|
||||
--- to fallback to `icon_source`.
|
||||
icon_fetcher = nil,
|
||||
-- 3rd party source for fetching icons. This is used as a fallback if
|
||||
-- icon_fetcher returned an empty string.
|
||||
-- Currently supported values: 'lspkind'
|
||||
icon_source = nil,
|
||||
-- The next fallback if both icon_fetcher and icon_source has failed, is
|
||||
-- the custom mapping of icons specified below. The icons table is also
|
||||
-- needed for specifying hl group.
|
||||
icons = {
|
||||
File = { icon = "", hl = "Identifier" },
|
||||
Module = { icon = "", hl = "Include" },
|
||||
@@ -254,7 +65,7 @@ return {
|
||||
Constructor = { icon = "", hl = "Special" },
|
||||
Enum = { icon = "ℰ", hl = "Type" },
|
||||
Interface = { icon = "", hl = "Type" },
|
||||
Function = { icon = "", hl = "Function" },
|
||||
Function = { icon = "ƒ", hl = "Function" },
|
||||
Variable = { icon = "", hl = "Constant" },
|
||||
Constant = { icon = "", hl = "Constant" },
|
||||
String = { icon = "𝓐", hl = "String" },
|
||||
|
||||
Reference in New Issue
Block a user