mirror of
https://github.com/nix-community/nixvim.git
synced 2025-11-18 16:29:40 +01:00
plugins/aerial: remove most settings declarations
Signed-off-by: saygo-png <saygo.mail@proton.me>
This commit is contained in:
parent
3832b56fb6
commit
fd66a5c5be
1 changed files with 63 additions and 619 deletions
|
|
@ -1,7 +1,6 @@
|
||||||
{ lib, ... }:
|
{ lib, ... }:
|
||||||
let
|
let
|
||||||
inherit (lib.nixvim) defaultNullOpts;
|
inherit (lib.nixvim) defaultNullOpts;
|
||||||
inherit (lib) types;
|
|
||||||
in
|
in
|
||||||
lib.nixvim.plugins.mkNeovimPlugin {
|
lib.nixvim.plugins.mkNeovimPlugin {
|
||||||
name = "aerial";
|
name = "aerial";
|
||||||
|
|
@ -10,640 +9,85 @@ lib.nixvim.plugins.mkNeovimPlugin {
|
||||||
|
|
||||||
maintainers = [ lib.maintainers.GaetanLepage ];
|
maintainers = [ lib.maintainers.GaetanLepage ];
|
||||||
|
|
||||||
settingsOptions =
|
settingsOptions = {
|
||||||
let
|
on_attach = defaultNullOpts.mkRaw "function(bufnr) end" ''
|
||||||
size =
|
Call this function when aerial attaches to a buffer.
|
||||||
with types;
|
'';
|
||||||
oneOf [
|
|
||||||
rawLua
|
|
||||||
ints.unsigned
|
|
||||||
(numbers.between 0.0 1.0)
|
|
||||||
];
|
|
||||||
listOfSize = with types; either size (listOf size);
|
|
||||||
|
|
||||||
# Several options can have a single value, or a filetype-value mapping.
|
on_first_symbols = defaultNullOpts.mkRaw "function(bufnr) end" ''
|
||||||
mkTypeOrAttrsOfType =
|
Call this function when aerial first sets symbols on a buffer.
|
||||||
type: default: description:
|
'';
|
||||||
defaultNullOpts.mkNullable (
|
|
||||||
with types;
|
|
||||||
oneOf [
|
|
||||||
rawLua
|
|
||||||
type
|
|
||||||
(attrsOf type)
|
|
||||||
]
|
|
||||||
) default description;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
backends =
|
|
||||||
mkTypeOrAttrsOfType (with types; listOf str)
|
|
||||||
[
|
|
||||||
"treesitter"
|
|
||||||
"lsp"
|
|
||||||
"markdown"
|
|
||||||
"asciidoc"
|
|
||||||
"man"
|
|
||||||
]
|
|
||||||
''
|
|
||||||
Priority list of preferred backends for aerial.
|
|
||||||
This can be a filetype map (see :help aerial-filetype-map)
|
|
||||||
'';
|
|
||||||
|
|
||||||
layout = {
|
post_parse_symbol =
|
||||||
max_width =
|
defaultNullOpts.mkRaw
|
||||||
defaultNullOpts.mkNullable listOfSize
|
''
|
||||||
[
|
function(bufnr, item, ctx)
|
||||||
40
|
return true
|
||||||
0.2
|
end
|
||||||
]
|
''
|
||||||
''
|
''
|
||||||
Maximum width of the aerial window.
|
Invoked after each symbol is parsed, can be used to modify the parsed item, or to filter
|
||||||
It can be integers or a float between 0 and 1 (e.g. 0.4 for 40%) or a list of those.
|
it by returning `false`.
|
||||||
For example, `[ 40 0.2 ]` means "the lesser of 40 columns or 20% of total".
|
|
||||||
'';
|
|
||||||
|
|
||||||
width = defaultNullOpts.mkNullable size null ''
|
Arguments:
|
||||||
Width of the aerial window.
|
- `bufnr`: a neovim buffer number
|
||||||
It can be integers or a float between 0 and 1 (e.g. 0.4 for 40%).
|
- `item`: of type `aerial.Symbol`
|
||||||
|
- `ctx`: a record containing the following fields:
|
||||||
|
- `backend_name`: treesitter, lsp, man...
|
||||||
|
- `lang`: info about the language
|
||||||
|
- `symbols?`: specific to the lsp backend
|
||||||
|
- `symbol?`: specific to the lsp backend
|
||||||
|
- `syntax_tree?`: specific to the treesitter backend
|
||||||
|
- `match?`: specific to the treesitter backend, TS query match
|
||||||
'';
|
'';
|
||||||
|
|
||||||
min_width = defaultNullOpts.mkNullable listOfSize 10 ''
|
post_add_all_symbols =
|
||||||
Minimum width of the aerial window.
|
defaultNullOpts.mkRaw
|
||||||
It can be integers or a float between 0 and 1 (e.g. 0.4 for 40%) or a list of those.
|
''
|
||||||
|
function(bufnr, items, ctx)
|
||||||
|
return items
|
||||||
|
end
|
||||||
|
''
|
||||||
|
''
|
||||||
|
Invoked after all symbols have been parsed and post-processed, allows to modify the
|
||||||
|
symbol structure before final display.
|
||||||
|
|
||||||
|
- `bufnr`: a neovim buffer number
|
||||||
|
- `items`: a collection of `aerial.Symbol` items, organized in a tree, with 'parent' and
|
||||||
|
'children' fields
|
||||||
|
- `ctx`: a record containing the following fields:
|
||||||
|
- `backend_name`: treesitter, lsp, man...
|
||||||
|
- `lang`: info about the language
|
||||||
|
- `symbols?`: specific to the lsp backend
|
||||||
|
- `syntax_tree?`: specific to the treesitter backend
|
||||||
'';
|
'';
|
||||||
|
|
||||||
win_opts = defaultNullOpts.mkAttrsOf types.anything { } ''
|
get_highlight =
|
||||||
Key-value pairs of window-local options for aerial window (e.g. `winhl`).
|
defaultNullOpts.mkRaw
|
||||||
|
''
|
||||||
|
function(symbol, is_icon, is_collapsed)
|
||||||
|
-- return "MyHighlight" .. symbol.kind
|
||||||
|
end
|
||||||
|
''
|
||||||
|
''
|
||||||
|
Set this function to override the highlight groups for certain symbols.
|
||||||
'';
|
'';
|
||||||
|
|
||||||
default_direction =
|
float = {
|
||||||
defaultNullOpts.mkEnumFirstDefault
|
override =
|
||||||
[
|
|
||||||
"prefer_right"
|
|
||||||
"prefer_left"
|
|
||||||
"right"
|
|
||||||
"left"
|
|
||||||
"float"
|
|
||||||
]
|
|
||||||
''
|
|
||||||
Determines the default direction to open the aerial window.
|
|
||||||
The `prefer_*` options will open the window in the other direction **if** there is a
|
|
||||||
different buffer in the way of the preferred direction.
|
|
||||||
'';
|
|
||||||
|
|
||||||
placement =
|
|
||||||
defaultNullOpts.mkEnum
|
|
||||||
[
|
|
||||||
"edge"
|
|
||||||
"window"
|
|
||||||
]
|
|
||||||
"window"
|
|
||||||
''
|
|
||||||
Determines where the aerial window will be opened
|
|
||||||
|
|
||||||
- `"edge"` - open aerial at the far right/left of the editor
|
|
||||||
- `"window"` - open aerial to the right/left of the current window
|
|
||||||
'';
|
|
||||||
|
|
||||||
resize_to_content = defaultNullOpts.mkBool true ''
|
|
||||||
When the symbols change, resize the aerial window (within min/max constraints) to fit.
|
|
||||||
'';
|
|
||||||
|
|
||||||
preserve_equality = defaultNullOpts.mkBool false ''
|
|
||||||
Preserve window size equality with (`:help CTRL-W_=`).
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
attach_mode =
|
|
||||||
defaultNullOpts.mkEnumFirstDefault
|
|
||||||
[
|
|
||||||
"window"
|
|
||||||
"global"
|
|
||||||
]
|
|
||||||
''
|
|
||||||
Determines how the aerial window decides which buffer to display symbols for
|
|
||||||
|
|
||||||
- `"window"`: aerial window will display symbols for the buffer in the window from which it was opened
|
|
||||||
- `"global"`: aerial window will display symbols for the current window
|
|
||||||
'';
|
|
||||||
|
|
||||||
close_automatic_events =
|
|
||||||
defaultNullOpts.mkListOf
|
|
||||||
(types.enum [
|
|
||||||
"unfocus"
|
|
||||||
"switch_buffer"
|
|
||||||
"unsupported"
|
|
||||||
])
|
|
||||||
[ ]
|
|
||||||
''
|
|
||||||
List of enum values that configure when to auto-close the aerial window
|
|
||||||
|
|
||||||
- `"unfocus"`: close aerial when you leave the original source window
|
|
||||||
- `"switch_buffer"`: close aerial when you change buffers in the source window
|
|
||||||
- `"unsupported"`: close aerial when attaching to a buffer that has no symbol source
|
|
||||||
'';
|
|
||||||
|
|
||||||
keymaps =
|
|
||||||
defaultNullOpts.mkAttrsOf
|
|
||||||
(
|
|
||||||
with types;
|
|
||||||
oneOf [
|
|
||||||
str
|
|
||||||
(attrsOf anything)
|
|
||||||
(enum [ false ])
|
|
||||||
]
|
|
||||||
)
|
|
||||||
{
|
|
||||||
"?" = "actions.show_help";
|
|
||||||
"g?" = "actions.show_help";
|
|
||||||
"<CR>" = "actions.jump";
|
|
||||||
"<2-LeftMouse>" = "actions.jump";
|
|
||||||
"<C-v>" = "actions.jump_vsplit";
|
|
||||||
"<C-s>" = "actions.jump_split";
|
|
||||||
p = "actions.scroll";
|
|
||||||
"<C-j>" = "actions.down_and_scroll";
|
|
||||||
"<C-k>" = "actions.up_and_scroll";
|
|
||||||
"{" = "actions.prev";
|
|
||||||
"}" = "actions.next";
|
|
||||||
"[[" = "actions.prev_up";
|
|
||||||
"]]" = "actions.next_up";
|
|
||||||
q = "actions.close";
|
|
||||||
o = "actions.tree_toggle";
|
|
||||||
za = "actions.tree_toggle";
|
|
||||||
O = "actions.tree_toggle_recursive";
|
|
||||||
zA = "actions.tree_toggle_recursive";
|
|
||||||
l = "actions.tree_open";
|
|
||||||
zo = "actions.tree_open";
|
|
||||||
L = "actions.tree_open_recursive";
|
|
||||||
zO = "actions.tree_open_recursive";
|
|
||||||
h = "actions.tree_close";
|
|
||||||
zc = "actions.tree_close";
|
|
||||||
H = "actions.tree_close_recursive";
|
|
||||||
zC = "actions.tree_close_recursive";
|
|
||||||
zr = "actions.tree_increase_fold_level";
|
|
||||||
zR = "actions.tree_open_all";
|
|
||||||
zm = "actions.tree_decrease_fold_level";
|
|
||||||
zM = "actions.tree_close_all";
|
|
||||||
zx = "actions.tree_sync_folds";
|
|
||||||
zX = "actions.tree_sync_folds";
|
|
||||||
}
|
|
||||||
''
|
|
||||||
Keymaps in aerial window.
|
|
||||||
|
|
||||||
Can be any value that `vim.keymap.set` accepts OR a table of keymap options with a
|
|
||||||
`callback` (e.g. `{ callback.__raw = "function() ... end"; desc = ""; nowait = true; }`).
|
|
||||||
|
|
||||||
Additionally, if it is a string that matches "actions.<name>", it will use the mapping at
|
|
||||||
`require("aerial.actions").<name>`.
|
|
||||||
|
|
||||||
Set to `false` to remove a keymap.
|
|
||||||
'';
|
|
||||||
|
|
||||||
lazy_load = defaultNullOpts.mkBool true ''
|
|
||||||
When `true`, don't load aerial until a command or function is called.
|
|
||||||
Defaults to `true`, unless `on_attach` is provided, then it defaults to `false`.
|
|
||||||
'';
|
|
||||||
|
|
||||||
disable_max_lines = defaultNullOpts.mkUnsignedInt 10000 ''
|
|
||||||
Disable aerial on files with this many lines.
|
|
||||||
'';
|
|
||||||
|
|
||||||
disable_max_size = defaultNullOpts.mkUnsignedInt 2000000 ''
|
|
||||||
Disable aerial on files this size or larger (in bytes).
|
|
||||||
Default 2MB.
|
|
||||||
'';
|
|
||||||
|
|
||||||
filter_kind =
|
|
||||||
mkTypeOrAttrsOfType (with types; either (listOf str) (enum [ false ]))
|
|
||||||
[
|
|
||||||
"Class"
|
|
||||||
"Constructor"
|
|
||||||
"Enum"
|
|
||||||
"Function"
|
|
||||||
"Interface"
|
|
||||||
"Module"
|
|
||||||
"Method"
|
|
||||||
"Struct"
|
|
||||||
]
|
|
||||||
''
|
|
||||||
A list of all symbols to display.
|
|
||||||
Set to false to display all symbols.
|
|
||||||
This can be a filetype map (see `:help aerial-filetype-map`).
|
|
||||||
To see all available values, see `:help SymbolKind`.
|
|
||||||
'';
|
|
||||||
|
|
||||||
highlight_mode =
|
|
||||||
defaultNullOpts.mkEnumFirstDefault
|
|
||||||
[
|
|
||||||
"split_width"
|
|
||||||
"full_width"
|
|
||||||
"last"
|
|
||||||
"none"
|
|
||||||
]
|
|
||||||
''
|
|
||||||
Determines line highlighting mode when multiple splits are visible.
|
|
||||||
|
|
||||||
- `"split_width"`: Each open window will have its cursor location marked in the aerial
|
|
||||||
buffer. Each line will only be partially highlighted to indicate which window is at that
|
|
||||||
location.
|
|
||||||
- `"full_width"`: Each open window will have its cursor location marked as a full-width
|
|
||||||
highlight in the aerial buffer.
|
|
||||||
- `"last"`: Only the most-recently focused window will have its location marked in the
|
|
||||||
aerial buffer.
|
|
||||||
- `"none"`: Do not show the cursor locations in the aerial window.
|
|
||||||
'';
|
|
||||||
|
|
||||||
highlight_closest = defaultNullOpts.mkBool true ''
|
|
||||||
Highlight the closest symbol if the cursor is not exactly on one.
|
|
||||||
'';
|
|
||||||
|
|
||||||
highlight_on_hover = defaultNullOpts.mkBool false ''
|
|
||||||
Highlight the symbol in the source buffer when cursor is in the aerial win.
|
|
||||||
'';
|
|
||||||
|
|
||||||
highlight_on_jump =
|
|
||||||
defaultNullOpts.mkNullable (with types; either ints.unsigned (enum [ false ])) 300
|
|
||||||
''
|
|
||||||
When jumping to a symbol, highlight the line for this many ms.
|
|
||||||
Set to false to disable.
|
|
||||||
'';
|
|
||||||
|
|
||||||
autojump = defaultNullOpts.mkBool false ''
|
|
||||||
Jump to symbol in source window when the cursor moves.
|
|
||||||
'';
|
|
||||||
|
|
||||||
icons = mkTypeOrAttrsOfType (with types; listOf str) [ ] ''
|
|
||||||
Define symbol icons.
|
|
||||||
|
|
||||||
You can also specify `"<Symbol>Collapsed"` to change the icon when the tree is collapsed at
|
|
||||||
that symbol, or `"Collapsed"` to specify a default collapsed icon.
|
|
||||||
|
|
||||||
The default icon set is determined by the `"nerd_font"` option below.
|
|
||||||
If you have lspkind-nvim installed, it will be the default icon set.
|
|
||||||
|
|
||||||
This can be a filetype map (see `:help aerial-filetype-map`).
|
|
||||||
'';
|
|
||||||
|
|
||||||
ignore = {
|
|
||||||
unlisted_buffers = defaultNullOpts.mkBool false ''
|
|
||||||
Ignore unlisted buffers. See `:help buflisted`.
|
|
||||||
'';
|
|
||||||
|
|
||||||
diff_windows = defaultNullOpts.mkBool true ''
|
|
||||||
Ignore diff windows (setting to false will allow aerial in diff windows).
|
|
||||||
'';
|
|
||||||
|
|
||||||
filetypes = defaultNullOpts.mkListOf types.str [ ] ''
|
|
||||||
List of filetypes to ignore.
|
|
||||||
'';
|
|
||||||
|
|
||||||
buftypes =
|
|
||||||
defaultNullOpts.mkNullable
|
|
||||||
(
|
|
||||||
with types;
|
|
||||||
either (listOf str) (enum [
|
|
||||||
false
|
|
||||||
"special"
|
|
||||||
])
|
|
||||||
|
|
||||||
)
|
|
||||||
"special"
|
|
||||||
''
|
|
||||||
Ignored buftypes.
|
|
||||||
Can be one of the following:
|
|
||||||
- `false` or `null`: No buftypes are ignored.
|
|
||||||
- `"special"`: All buffers other than normal, help and man page buffers are ignored.
|
|
||||||
- list of strings: A list of buftypes to ignore.
|
|
||||||
See `:help buftype` for the possible values.
|
|
||||||
- function: A function that returns true if the buffer should be ignored or false if
|
|
||||||
it should not be ignored.
|
|
||||||
Takes two arguments, `bufnr` and `buftype`.
|
|
||||||
'';
|
|
||||||
|
|
||||||
wintypes =
|
|
||||||
defaultNullOpts.mkNullable
|
|
||||||
(
|
|
||||||
with types;
|
|
||||||
either (listOf str) (enum [
|
|
||||||
false
|
|
||||||
"special"
|
|
||||||
])
|
|
||||||
)
|
|
||||||
"special"
|
|
||||||
''
|
|
||||||
Ignored buftypes.
|
|
||||||
Can be one of the following:
|
|
||||||
- `false` or `null`: No wintypes are ignored.
|
|
||||||
- `"special"`: All windows other than normal windows are ignored.
|
|
||||||
- list of strings: A list of wintypes to ignore.
|
|
||||||
See `:help win_gettype()` for the possible values.
|
|
||||||
- function: A function that returns true if the window should be ignored or false if
|
|
||||||
it should not be ignored.
|
|
||||||
Takes two arguments, `winid` and `wintype`.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
manage_folds = mkTypeOrAttrsOfType (with types; either str bool) false ''
|
|
||||||
Use symbol tree for folding.
|
|
||||||
Set to `true` or `false` to enable/disable.
|
|
||||||
Set to `"auto"` to manage folds if your previous foldmethod was 'manual'
|
|
||||||
This can be a filetype map (see :help aerial-filetype-map)
|
|
||||||
'';
|
|
||||||
|
|
||||||
link_folds_to_tree = defaultNullOpts.mkBool false ''
|
|
||||||
When you fold code with za, zo, or zc, update the aerial tree as well.
|
|
||||||
Only works when `manage_folds = true`.
|
|
||||||
'';
|
|
||||||
|
|
||||||
link_tree_to_folds = defaultNullOpts.mkBool true ''
|
|
||||||
Fold code when you open/collapse symbols in the tree.
|
|
||||||
Only works when `manage_folds = true`.
|
|
||||||
'';
|
|
||||||
|
|
||||||
nerd_font = defaultNullOpts.mkNullable (with types; either bool (enum [ "auto" ])) "auto" ''
|
|
||||||
Set default symbol icons to use patched font icons (see https://www.nerdfonts.com/).
|
|
||||||
`"auto"` will set it to `true` if nvim-web-devicons or lspkind-nvim is installed.
|
|
||||||
'';
|
|
||||||
|
|
||||||
on_attach = defaultNullOpts.mkRaw "function(bufnr) end" ''
|
|
||||||
Call this function when aerial attaches to a buffer.
|
|
||||||
'';
|
|
||||||
|
|
||||||
on_first_symbols = defaultNullOpts.mkRaw "function(bufnr) end" ''
|
|
||||||
Call this function when aerial first sets symbols on a buffer.
|
|
||||||
'';
|
|
||||||
|
|
||||||
open_automatic = defaultNullOpts.mkBool false ''
|
|
||||||
Automatically open aerial when entering supported buffers.
|
|
||||||
This can be a function (see :help aerial-open-automatic).
|
|
||||||
'';
|
|
||||||
|
|
||||||
post_jump_cmd = defaultNullOpts.mkNullable (with types; either (enum [ false ]) str) "normal! zz" ''
|
|
||||||
Run this command after jumping to a symbol (`false` will disable).
|
|
||||||
'';
|
|
||||||
|
|
||||||
post_parse_symbol =
|
|
||||||
defaultNullOpts.mkRaw
|
defaultNullOpts.mkRaw
|
||||||
''
|
''
|
||||||
function(bufnr, item, ctx)
|
function(conf, source_winid)
|
||||||
return true
|
-- This is the config that will be passed to nvim_open_win.
|
||||||
|
-- Change values here to customize the layout
|
||||||
|
return conf
|
||||||
end
|
end
|
||||||
''
|
''
|
||||||
''
|
''
|
||||||
Invoked after each symbol is parsed, can be used to modify the parsed item, or to filter
|
Override the config for a specific window.
|
||||||
it by returning `false`.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
- `bufnr`: a neovim buffer number
|
|
||||||
- `item`: of type `aerial.Symbol`
|
|
||||||
- `ctx`: a record containing the following fields:
|
|
||||||
- `backend_name`: treesitter, lsp, man...
|
|
||||||
- `lang`: info about the language
|
|
||||||
- `symbols?`: specific to the lsp backend
|
|
||||||
- `symbol?`: specific to the lsp backend
|
|
||||||
- `syntax_tree?`: specific to the treesitter backend
|
|
||||||
- `match?`: specific to the treesitter backend, TS query match
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
post_add_all_symbols =
|
|
||||||
defaultNullOpts.mkRaw
|
|
||||||
''
|
|
||||||
function(bufnr, items, ctx)
|
|
||||||
return items
|
|
||||||
end
|
|
||||||
''
|
|
||||||
''
|
|
||||||
Invoked after all symbols have been parsed and post-processed, allows to modify the
|
|
||||||
symbol structure before final display.
|
|
||||||
|
|
||||||
- `bufnr`: a neovim buffer number
|
|
||||||
- `items`: a collection of `aerial.Symbol` items, organized in a tree, with 'parent' and
|
|
||||||
'children' fields
|
|
||||||
- `ctx`: a record containing the following fields:
|
|
||||||
- `backend_name`: treesitter, lsp, man...
|
|
||||||
- `lang`: info about the language
|
|
||||||
- `symbols?`: specific to the lsp backend
|
|
||||||
- `syntax_tree?`: specific to the treesitter backend
|
|
||||||
'';
|
|
||||||
|
|
||||||
close_on_select = defaultNullOpts.mkBool false ''
|
|
||||||
When `true`, aerial will automatically close after jumping to a symbol
|
|
||||||
'';
|
|
||||||
|
|
||||||
update_events = defaultNullOpts.mkStr "TextChanged,InsertLeave" ''
|
|
||||||
The autocmds that trigger symbols update (not used for LSP backend).
|
|
||||||
'';
|
|
||||||
|
|
||||||
show_guides = defaultNullOpts.mkBool false ''
|
|
||||||
Whether show box drawing characters for the tree hierarchy.
|
|
||||||
'';
|
|
||||||
|
|
||||||
guides =
|
|
||||||
defaultNullOpts.mkAttrsOf types.str
|
|
||||||
{
|
|
||||||
mid_item = "├─";
|
|
||||||
last_item = "└─";
|
|
||||||
nested_top = "│ ";
|
|
||||||
whitespace = " ";
|
|
||||||
}
|
|
||||||
''
|
|
||||||
Customize the characters used when `show_guides = true`.
|
|
||||||
'';
|
|
||||||
|
|
||||||
get_highlight =
|
|
||||||
defaultNullOpts.mkRaw
|
|
||||||
''
|
|
||||||
function(symbol, is_icon, is_collapsed)
|
|
||||||
-- return "MyHighlight" .. symbol.kind
|
|
||||||
end
|
|
||||||
''
|
|
||||||
''
|
|
||||||
Set this function to override the highlight groups for certain symbols.
|
|
||||||
'';
|
|
||||||
|
|
||||||
float = {
|
|
||||||
border = defaultNullOpts.mkNullable (with types; either str (attrsOf anything)) "rounded" ''
|
|
||||||
Controls border appearance.
|
|
||||||
Passed to `nvim_open_win`.
|
|
||||||
'';
|
|
||||||
|
|
||||||
relative =
|
|
||||||
defaultNullOpts.mkEnumFirstDefault
|
|
||||||
[
|
|
||||||
"cursor"
|
|
||||||
"editor"
|
|
||||||
"win"
|
|
||||||
]
|
|
||||||
''
|
|
||||||
Determines location of floating window
|
|
||||||
|
|
||||||
- `"cursor"`: Opens float on top of the cursor
|
|
||||||
- `"editor"`: Opens float centered in the editor
|
|
||||||
- `"win"`: Opens float centered in the window
|
|
||||||
'';
|
|
||||||
|
|
||||||
max_height = defaultNullOpts.mkNullable listOfSize 0.9 ''
|
|
||||||
Maximum height of the floating window.
|
|
||||||
It can be integers or a float between 0 and 1 (e.g. 0.4 for 40%) or a list of those.
|
|
||||||
'';
|
|
||||||
|
|
||||||
height = defaultNullOpts.mkNullable size null ''
|
|
||||||
Height of the floating window.
|
|
||||||
It can be integers or a float between 0 and 1 (e.g. 0.4 for 40%).
|
|
||||||
'';
|
|
||||||
|
|
||||||
min_height =
|
|
||||||
defaultNullOpts.mkNullable listOfSize
|
|
||||||
[
|
|
||||||
8
|
|
||||||
0.1
|
|
||||||
]
|
|
||||||
''
|
|
||||||
Minimum height of the floating window.
|
|
||||||
It can be integers or a float between 0 and 1 (e.g. 0.4 for 40%) or a list of those.
|
|
||||||
For example, `[ 8 0.1 ]` means "the greater of 8 rows or 10% of total".
|
|
||||||
'';
|
|
||||||
|
|
||||||
override =
|
|
||||||
defaultNullOpts.mkRaw
|
|
||||||
''
|
|
||||||
function(conf, source_winid)
|
|
||||||
-- This is the config that will be passed to nvim_open_win.
|
|
||||||
-- Change values here to customize the layout
|
|
||||||
return conf
|
|
||||||
end
|
|
||||||
''
|
|
||||||
''
|
|
||||||
Override the config for a specific window.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
nav = {
|
|
||||||
border = defaultNullOpts.mkStr "rounded" ''
|
|
||||||
Border style for the floating nav windows.
|
|
||||||
'';
|
|
||||||
|
|
||||||
max_height = defaultNullOpts.mkNullable listOfSize 0.9 ''
|
|
||||||
Maximum height of the floating nav windows.
|
|
||||||
It can be integers or a float between 0 and 1 (e.g. 0.4 for 40%) or a list of those.
|
|
||||||
'';
|
|
||||||
|
|
||||||
min_height =
|
|
||||||
defaultNullOpts.mkNullable listOfSize
|
|
||||||
[
|
|
||||||
10
|
|
||||||
0.1
|
|
||||||
]
|
|
||||||
''
|
|
||||||
Minimum height of the floating nav windows.
|
|
||||||
It can be integers or a float between 0 and 1 (e.g. 0.4 for 40%) or a list of those.
|
|
||||||
'';
|
|
||||||
|
|
||||||
max_width = defaultNullOpts.mkNullable listOfSize 0.5 ''
|
|
||||||
Minimum width of the floating nav windows.
|
|
||||||
It can be integers or a float between 0 and 1 (e.g. 0.4 for 40%) or a list of those.
|
|
||||||
'';
|
|
||||||
|
|
||||||
min_width =
|
|
||||||
defaultNullOpts.mkNullable listOfSize
|
|
||||||
[
|
|
||||||
0.2
|
|
||||||
20
|
|
||||||
]
|
|
||||||
''
|
|
||||||
Minimum width of the floating nav windows.
|
|
||||||
It can be integers or a float between 0 and 1 (e.g. 0.4 for 40%) or a list of those.
|
|
||||||
'';
|
|
||||||
|
|
||||||
win_opts =
|
|
||||||
defaultNullOpts.mkAttrsOf types.anything
|
|
||||||
{
|
|
||||||
cursorline = true;
|
|
||||||
winblend = 10;
|
|
||||||
}
|
|
||||||
''
|
|
||||||
Key-value pairs of window-local options for aerial window (e.g. `winhl`).
|
|
||||||
'';
|
|
||||||
|
|
||||||
autojump = defaultNullOpts.mkBool false ''
|
|
||||||
Jump to symbol in source window when the cursor moves.
|
|
||||||
'';
|
|
||||||
|
|
||||||
preview = defaultNullOpts.mkBool false ''
|
|
||||||
Show a preview of the code in the right column, when there are no child symbols
|
|
||||||
'';
|
|
||||||
|
|
||||||
keymaps =
|
|
||||||
defaultNullOpts.mkAttrsOf
|
|
||||||
(
|
|
||||||
|
|
||||||
with types;
|
|
||||||
oneOf [
|
|
||||||
str
|
|
||||||
(attrsOf anything)
|
|
||||||
(enum [ false ])
|
|
||||||
]
|
|
||||||
)
|
|
||||||
{
|
|
||||||
"<CR>" = "actions.jump";
|
|
||||||
"<2-LeftMouse>" = "actions.jump";
|
|
||||||
"<C-v>" = "actions.jump_vsplit";
|
|
||||||
"<C-s>" = "actions.jump_split";
|
|
||||||
h = "actions.left";
|
|
||||||
l = "actions.right";
|
|
||||||
"<C-c>" = "actions.close";
|
|
||||||
}
|
|
||||||
''
|
|
||||||
Keymaps in the nav window.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
lsp = {
|
|
||||||
diagnostics_trigger_update = defaultNullOpts.mkBool false ''
|
|
||||||
If `true`, fetch document symbols when LSP diagnostics update.
|
|
||||||
'';
|
|
||||||
|
|
||||||
update_when_errors = defaultNullOpts.mkBool true ''
|
|
||||||
Set to false to not update the symbols when there are LSP errors.
|
|
||||||
'';
|
|
||||||
|
|
||||||
update_delay = defaultNullOpts.mkUnsignedInt 300 ''
|
|
||||||
How long to wait (in ms) after a buffer change before updating.
|
|
||||||
Only used when `diagnostics_trigger_update = false`.
|
|
||||||
'';
|
|
||||||
|
|
||||||
priority = defaultNullOpts.mkAttrsOf types.int { } ''
|
|
||||||
Map of LSP client name to priority.
|
|
||||||
Default value is `10`.
|
|
||||||
|
|
||||||
Clients with higher (larger) priority will be used before those with lower priority.
|
|
||||||
Set to `-1` to never use the client.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
treesitter = {
|
|
||||||
update_delay = defaultNullOpts.mkUnsignedInt 300 ''
|
|
||||||
How long to wait (in ms) after a buffer change before updating.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
markdown = {
|
|
||||||
update_delay = defaultNullOpts.mkUnsignedInt 300 ''
|
|
||||||
How long to wait (in ms) after a buffer change before updating.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
asciidoc = {
|
|
||||||
update_delay = defaultNullOpts.mkUnsignedInt 300 ''
|
|
||||||
How long to wait (in ms) after a buffer change before updating.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
man = {
|
|
||||||
update_delay = defaultNullOpts.mkUnsignedInt 300 ''
|
|
||||||
How long to wait (in ms) after a buffer change before updating.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
settingsExample = {
|
settingsExample = {
|
||||||
backends = [
|
backends = [
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue