mirror of
https://github.com/nix-community/nixvim.git
synced 2025-11-27 04:31:04 +01:00
104 lines
3 KiB
Nix
104 lines
3 KiB
Nix
{ lib, ... }:
|
|
let
|
|
inherit (lib.nixvim) defaultNullOpts;
|
|
in
|
|
lib.nixvim.plugins.mkNeovimPlugin {
|
|
name = "aerial";
|
|
package = "aerial-nvim";
|
|
description = "A code outline window for skimming and quick navigation.";
|
|
|
|
maintainers = [ lib.maintainers.GaetanLepage ];
|
|
|
|
settingsOptions = {
|
|
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.
|
|
'';
|
|
|
|
post_parse_symbol =
|
|
defaultNullOpts.mkRaw
|
|
''
|
|
function(bufnr, item, ctx)
|
|
return true
|
|
end
|
|
''
|
|
''
|
|
Invoked after each symbol is parsed, can be used to modify the parsed item, or to filter
|
|
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
|
|
'';
|
|
|
|
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 = {
|
|
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.
|
|
'';
|
|
};
|
|
};
|
|
|
|
settingsExample = {
|
|
backends = [
|
|
"treesitter"
|
|
"lsp"
|
|
"markdown"
|
|
"man"
|
|
];
|
|
attach_mode = "global";
|
|
disable_max_lines = 5000;
|
|
highlight_on_hover = true;
|
|
ignore.filetypes = [ "gomod" ];
|
|
};
|
|
}
|