plugins/filetrees: normalize plugin defaults

This commit is contained in:
Matt Sturgeon 2024-06-11 16:52:12 +01:00
parent b86db98f53
commit 25eed3c2f5
No known key found for this signature in database
GPG key ID: 4F91844CED1A8299
3 changed files with 338 additions and 294 deletions

View file

@ -27,11 +27,19 @@ in
'';
mimetypes = {
warn = mkListStr ''["audio" "font" "image" "video"]'' ''
Show a warning before opening these datatypes.
'';
warn =
mkListStr
[
"audio"
"font"
"image"
"video"
]
''
Show a warning before opening these datatypes.
'';
allowExts = mkListStr ''[".ts"]'' ''
allowExts = mkListStr [ ".ts" ] ''
Skip warning for these extensions.
'';
};
@ -58,16 +66,24 @@ in
'';
ignore = {
nameExact = mkListStr ''[".DS_Store" ".directory" "thumbs.db" ".git"]'' ''
Files whose name match these exactly will be ignored.
'';
nameExact =
mkListStr
[
".DS_Store"
".directory"
"thumbs.db"
".git"
]
''
Files whose name match these exactly will be ignored.
'';
nameGlob = mkListStr "[]" ''
nameGlob = mkListStr [ ] ''
Files whose name match these glob patterns will be ignored.
ie. `*.py` will match all python files
'';
pathGlob = mkListStr "[]" ''
pathGlob = mkListStr [ ] ''
Files whose full path match these glob patterns will be ignored.
'';
};
@ -85,12 +101,19 @@ in
Which way does CHADTree open?
'';
sortBy = mkListStr ''["is_folder" "ext" "file_name"]'' ''
CHADTree can sort by the following criterion.
Reorder them if you want a different sorting order.
legal keys: some of
`["is_folder" "ext" "file_name"]`
'';
sortBy =
mkListStr
[
"is_folder"
"ext"
"file_name"
]
''
CHADTree can sort by the following criterion.
Reorder them if you want a different sorting order.
legal keys: some of
`["is_folder" "ext" "file_name"]`
'';
width = helpers.defaultNullOpts.mkInt 40 ''
How big is CHADTree when initially opened?
@ -184,123 +207,141 @@ in
keymap = {
windowManagement = {
quit = mkListStr ''["q"]'' ''
quit = mkListStr [ "q" ] ''
Close CHADTree window, quit if it is the last window.
'';
bigger = mkListStr ''["+" "="]'' ''
Resize CHADTree window bigger.
'';
bigger =
mkListStr
[
"+"
"="
]
''
Resize CHADTree window bigger.
'';
smaller = mkListStr ''["-" "_"]'' ''
Resize CHADTree window smaller.
'';
smaller =
mkListStr
[
"-"
"_"
]
''
Resize CHADTree window smaller.
'';
refresh = mkListStr ''["<c-r>"]'' ''
refresh = mkListStr [ "<c-r>" ] ''
Refresh CHADTree.
'';
};
rerooting = {
changeDir = mkListStr ''["b"]'' ''
changeDir = mkListStr [ "b" ] ''
Change vim's working directory.
'';
changeFocus = mkListStr ''["c"]'' ''
changeFocus = mkListStr [ "c" ] ''
Set CHADTree's root to folder at cursor. Does not change working directory.
'';
changeFocusUp = mkListStr ''["C"]'' ''
changeFocusUp = mkListStr [ "C" ] ''
Set CHADTree's root one level up.
'';
};
openFileFolder = {
primary = mkListStr ''["<enter>"]'' ''
primary = mkListStr [ "<enter>" ] ''
Open file at cursor.
'';
secondary = mkListStr ''["<tab> <2-leftmouse>"]'' ''
secondary = mkListStr [ "<tab> <2-leftmouse>" ] ''
Open file at cursor, keep cursor in CHADTree's window.
'';
tertiary = mkListStr ''["<m-enter>" <middlemouse>]'' ''
Open file at cursor in a new tab.
'';
tertiary =
mkListStr
[
"<m-enter>"
"<middlemouse>"
]
''
Open file at cursor in a new tab.
'';
vSplit = mkListStr ''["w"]'' ''
vSplit = mkListStr [ "w" ] ''
Open file at cursor in vertical split.
'';
hSplit = mkListStr ''["W"]'' ''
hSplit = mkListStr [ "W" ] ''
Open file at cursor in horizontal split.
'';
openSys = mkListStr ''["o"]'' ''
openSys = mkListStr [ "o" ] ''
Open file with GUI tools using `open` or `xdg open`.
This will open third party tools such as Finder or KDE Dolphin or GNOME nautilus, etc.
Depends on platform and user setup.
'';
collapse = mkListStr ''["o"]'' ''
collapse = mkListStr [ "o" ] ''
Collapse all subdirectories for directory at cursor.
'';
};
cursor = {
refocus = mkListStr ''["~"]'' ''
refocus = mkListStr [ "~" ] ''
Put cursor at the root of CHADTree.
'';
jumpToCurrent = mkListStr ''["J"]'' ''
jumpToCurrent = mkListStr [ "J" ] ''
Position cursor in CHADTree at currently open buffer, if the buffer points to a location visible under CHADTree.
'';
stat = mkListStr ''["K"]'' ''
stat = mkListStr [ "K" ] ''
Print `ls --long` stat for file under cursor.
'';
copyName = mkListStr ''["y"]'' ''
copyName = mkListStr [ "y" ] ''
Copy paths of files under cursor or visual block.
'';
copyBasename = mkListStr ''["Y"]'' ''
copyBasename = mkListStr [ "Y" ] ''
Copy names of files under cursor or visual block.
'';
copyRelname = mkListStr ''["<c-y>"]'' ''
copyRelname = mkListStr [ "<c-y>" ] ''
Copy relative paths of files under cursor or visual block.
'';
};
filtering = {
filter = mkListStr ''["f"]'' ''
filter = mkListStr [ "f" ] ''
Set a glob pattern to narrow down visible files.
'';
clearFilter = mkListStr ''["F"]'' ''
clearFilter = mkListStr [ "F" ] ''
Clear filter.
'';
};
bookmarks = {
bookmarkGoto = mkListStr ''["m"]'' ''
bookmarkGoto = mkListStr [ "m" ] ''
Goto bookmark `A-Z`.
'';
};
selecting = {
select = mkListStr ''["s"]'' ''
select = mkListStr [ "s" ] ''
Select files under cursor or visual block.
'';
clearSelection = mkListStr ''["S"]'' ''
clearSelection = mkListStr [ "S" ] ''
Clear selection.
'';
};
fileOperations = {
new = mkListStr ''["a"]'' ''
new = mkListStr [ "a" ] ''
Create new file at location under cursor. Files ending with platform specific path separator will be folders.
Intermediary folders are created automatically.
@ -308,7 +349,7 @@ in
ie. `uwu/owo/` under unix will create `uwu/` then `owo/` under it. Both are folders.
'';
link = mkListStr ''["A"]'' ''
link = mkListStr [ "A" ] ''
Create links at location under cursor from selection.
Links are always relative.
@ -316,44 +357,44 @@ in
Intermediary folders are created automatically.
'';
rename = mkListStr ''["r"]'' ''
rename = mkListStr [ "r" ] ''
Rename file under cursor.
'';
toggleExec = mkListStr ''["X"]'' ''
toggleExec = mkListStr [ "X" ] ''
Toggle all the `+x` bits of the selected / highlighted files.
Except for directories, where `-x` will prevent reading.
'';
copy = mkListStr ''["p"]'' ''
copy = mkListStr [ "p" ] ''
Copy the selected files to location under cursor.
'';
cut = mkListStr ''["x"]'' ''
cut = mkListStr [ "x" ] ''
Move the selected files to location under cursor.
'';
delete = mkListStr ''["d"]'' ''
delete = mkListStr [ "d" ] ''
Delete the selected files. Items deleted cannot be recovered.
'';
trash = mkListStr ''[t]'' ''
trash = mkListStr [ "t" ] ''
Trash the selected files using platform specific `trash` command, if they are available.
Items trashed may be recovered.
'';
};
toggles = {
toggleHidden = mkListStr ''["."]'' ''
toggleHidden = mkListStr [ "." ] ''
Toggle show_hidden on and off. See `chadtree.showHidden` for details.
'';
toggleFollow = mkListStr ''["u"]'' ''
toggleFollow = mkListStr [ "u" ] ''
Toggle `follow` on and off. See `chadtree.follow` for details.
'';
toggleVersionControl = mkListStr ''["i"]'' ''
toggleVersionControl = mkListStr [ "i" ] ''
Toggle version control integration on and off.
'';
};

View file

@ -58,8 +58,12 @@ in
package = helpers.mkPluginPackageOption "neo-tree" pkgs.vimPlugins.neo-tree-nvim;
sources =
helpers.defaultNullOpts.mkNullable (types.listOf types.str)
''["filesystem" "buffers" "git_status"]''
helpers.defaultNullOpts.mkListOf types.str
[
"filesystem"
"buffers"
"git_status"
]
''
If a user has a sources list it will replace this one.
Only sources listed here will be loaded.
@ -122,12 +126,12 @@ in
] "info" "";
logToFile =
helpers.defaultNullOpts.mkNullable (types.either types.bool types.str) "false"
helpers.defaultNullOpts.mkNullable (types.either types.bool types.str) false
"use :NeoTreeLogs to show the file";
openFilesInLastWindow = helpers.defaultNullOpts.mkBool true "If `false`, open files in top left window";
popupBorderStyle = helpers.defaultNullOpts.mkEnum [
popupBorderStyle = helpers.defaultNullOpts.mkEnumFirstDefault [
"NC"
"double"
"none"
@ -135,7 +139,7 @@ in
"shadow"
"single"
"solid"
] "NC" "";
] "";
resizeTimerInterval = helpers.defaultNullOpts.mkInt 500 ''
In ms, needed for containers to redraw right aligned and faded content.
@ -228,7 +232,7 @@ in
helpers.defaultNullOpts.mkNullable types.int null
"This will truncate text even if `textTruncToFit = false`";
padding = helpers.defaultNullOpts.mkNullable (with types; either int (attrsOf int)) "0" ''
padding = helpers.defaultNullOpts.mkNullable (with types; either int (attrsOf int)) 0 ''
Defines the global padding of the source selector.
It can be an integer or an attrs with keys `left` and `right`.
Setting `padding = 2` is exactly the same as `{ left = 2; right = 2; }`.
@ -236,16 +240,23 @@ in
Example: `{ left = 2; right = 0; }`
'';
separator = helpers.defaultNullOpts.mkNullable (
with types;
either str (submodule {
options = {
left = helpers.defaultNullOpts.mkStr "" "";
right = helpers.defaultNullOpts.mkStr "\\" "";
override = helpers.defaultNullOpts.mkStr null "";
};
})
) "Can be a string or a table" ''{ left = ""; right= ""; }'';
separator =
helpers.defaultNullOpts.mkNullable
(
with types;
either str (submodule {
options = {
left = helpers.defaultNullOpts.mkStr "" "";
right = helpers.defaultNullOpts.mkStr "\\" "";
override = helpers.defaultNullOpts.mkStr null "";
};
})
)
{
left = "";
right = "";
}
"Can be a string or a table";
separatorActive =
helpers.defaultNullOpts.mkNullable
@ -416,113 +427,105 @@ in
};
renderers = {
directory = mkRendererComponentListOption ''
[
"indent"
"icon"
"current_filter"
{
name = "container";
content = [
{
name = "name";
zindex = 10;
}
{
name = "clipboard";
zindex = 10;
}
{
name = "diagnostics";
errors_only = true;
zindex = 20;
align = "right";
hide_when_expanded = true;
}
{
name = "git_status";
zindex = 20;
align = "right";
hide_when_expanded = true;
}
];
}
]
'' "directory renderers";
directory = mkRendererComponentListOption [
"indent"
"icon"
"current_filter"
{
name = "container";
content = [
{
name = "name";
zindex = 10;
}
{
name = "clipboard";
zindex = 10;
}
{
name = "diagnostics";
errors_only = true;
zindex = 20;
align = "right";
hide_when_expanded = true;
}
{
name = "git_status";
zindex = 20;
align = "right";
hide_when_expanded = true;
}
];
}
] "directory renderers";
file = mkRendererComponentListOption ''
[
"indent"
"icon"
{
name = "container";
content = [
{
name = "name";
zindex = 10;
}
{
name = "clipboard";
zindex = 10;
}
{
name = "bufnr";
zindex = 10;
}
{
name = "modified";
zindex = 20;
align = "right";
}
{
name = "diagnostics";
zindex = 20;
align = "right";
}
{
name = "git_status";
zindex = 20;
align = "right";
}
];
}
]
'' "file renderers";
file = mkRendererComponentListOption [
"indent"
"icon"
{
name = "container";
content = [
{
name = "name";
zindex = 10;
}
{
name = "clipboard";
zindex = 10;
}
{
name = "bufnr";
zindex = 10;
}
{
name = "modified";
zindex = 20;
align = "right";
}
{
name = "diagnostics";
zindex = 20;
align = "right";
}
{
name = "git_status";
zindex = 20;
align = "right";
}
];
}
] "file renderers";
message = mkRendererComponentListOption ''
[
{
name = "indent";
with_markers = false;
}
{
name = "name";
highlight = "NeoTreeMessage";
}
]
'' "message renderers";
message = mkRendererComponentListOption [
{
name = "indent";
with_markers = false;
}
{
name = "name";
highlight = "NeoTreeMessage";
}
] "message renderers";
terminal = mkRendererComponentListOption ''
[
"indent"
"icon"
"name"
"bufnr"
]
'' "message renderers";
terminal = mkRendererComponentListOption [
"indent"
"icon"
"name"
"bufnr"
] "message renderers";
};
nestingRules = helpers.defaultNullOpts.mkNullable (types.attrsOf types.str) "{}" "nesting rules";
nestingRules = helpers.defaultNullOpts.mkAttrsOf types.str { } "nesting rules";
window = {
position = helpers.defaultNullOpts.mkEnum [
position = helpers.defaultNullOpts.mkEnumFirstDefault [
"left"
"right"
"top"
"bottom"
"float"
"current"
] "left" "position";
] "position";
width = helpers.defaultNullOpts.mkInt 40 "Applies to left and right positions";
@ -572,7 +575,7 @@ in
nowait = helpers.defaultNullOpts.mkBool true "nowait";
};
mappings = mkMappingsOption ''
mappings = mkMappingsOption (literalMD ''
```nix
{
"<space>" = {
@ -622,10 +625,10 @@ in
">" = "next_source";
}
```
'';
'');
};
filesystem = {
window = mkWindowMappingsOption ''
window = mkWindowMappingsOption (literalMD ''
```nix
{
H = "toggle_hidden";
@ -642,7 +645,7 @@ in
"]g" = "next_git_modified";
}
```
'';
'');
asyncDirectoryScan =
helpers.defaultNullOpts.mkEnumFirstDefault
[
@ -688,39 +691,44 @@ in
hideHidden = helpers.defaultNullOpts.mkBool true "only works on Windows for hidden files/directories";
hideByName =
helpers.defaultNullOpts.mkNullable (types.listOf types.str) ''[".DS_Store" "thumbs.db"]''
"hide by name";
hideByName = helpers.defaultNullOpts.mkListOf types.str [
".DS_Store"
"thumbs.db"
] "hide by name";
hideByPattern = helpers.defaultNullOpts.mkNullable (types.listOf types.str) "[]" ''
Hide by pattern.
hideByPattern = helpers.defaultNullOpts.mkListOf' {
type = types.str;
pluginDefault = [ ];
description = "Hide by pattern.";
example = [
"*.meta"
"*/src/*/tsconfig.json"
];
};
Example:
```nix
[
"*.meta"
"*/src/*/tsconfig.json"
]
```
'';
alwaysShow = helpers.defaultNullOpts.mkListOf' {
type = types.str;
pluginDefault = [ ];
description = "Files/folders to always show.";
example = [ ".gitignore" ];
};
alwaysShow = helpers.defaultNullOpts.mkNullable (types.listOf types.str) "[]" ''
Files/folders to always show.
neverShow = helpers.defaultNullOpts.mkListOf' {
type = types.str;
pluginDefault = [ ];
description = "Files/folders to never show.";
example = [
".DS_Store"
"thumbs.db"
];
};
Example: `[".gitignore"]`
'';
neverShow = helpers.defaultNullOpts.mkNullable (types.listOf types.str) "[]" ''
Files/folders to never show.
Example: `[".DS_Store" "thumbs.db"]`
'';
neverShowByPattern = helpers.defaultNullOpts.mkNullable (types.listOf types.str) "[]" ''
Files/folders to never show (by pattern).
Example: `[".null-ls_*"]`
'';
neverShowByPattern = helpers.defaultNullOpts.mkListOf' {
type = types.str;
pluginDefault = [ ];
description = "Files/folders to never show (by pattern).";
example = [ ".null-ls_*" ];
};
};
findByFullPathWords = helpers.defaultNullOpts.mkBool false ''
@ -737,14 +745,12 @@ in
helpers.mkNullOrStrLuaFnOr
(types.submodule {
options = {
fd = helpers.defaultNullOpts.mkNullable (types.listOf types.str) ''
[
"--exclude"
".git"
"--exclude"
"node_modules"
]
'' "You can specify extra args to pass to the find command.";
fd = helpers.defaultNullOpts.mkListOf types.str [
"--exclude"
".git"
"--exclude"
"node_modules"
] "You can specify extra args to pass to the find command.";
};
})
''
@ -824,51 +830,43 @@ in
groupEmptyDirs = helpers.defaultNullOpts.mkBool true "When true, empty directories will be grouped together.";
window = mkWindowMappingsOption ''
{
"<bs>" = "navigate_up";
"." = "set_root";
bd = "buffer_delete";
}
'';
window = mkWindowMappingsOption {
"<bs>" = "navigate_up";
"." = "set_root";
bd = "buffer_delete";
};
};
gitStatus = {
window = mkWindowMappingsOption ''
{
A = "git_add_all";
gu = "git_unstage_file";
ga = "git_add_file";
gr = "git_revert_file";
gc = "git_commit";
gp = "git_push";
gg = "git_commit_and_push";
}
'';
window = mkWindowMappingsOption {
A = "git_add_all";
gu = "git_unstage_file";
ga = "git_add_file";
gr = "git_revert_file";
gc = "git_commit";
gp = "git_push";
gg = "git_commit_and_push";
};
};
example = {
renderers = {
custom = mkRendererComponentListOption ''
[
"indent"
{
name = "icon";
default = "C";
}
"custom"
"name"
]
'' "custom renderers";
custom = mkRendererComponentListOption [
"indent"
{
name = "icon";
default = "C";
}
"custom"
"name"
] "custom renderers";
};
window = mkWindowMappingsOption ''
{
"<cr>" = "toggle_node";
"<C-e>" = "example_command";
d = "show_debug_info";
}
'';
window = mkWindowMappingsOption {
"<cr>" = "toggle_node";
"<C-e>" = "example_command";
d = "show_debug_info";
};
};
documentSymbols = {
@ -913,7 +911,7 @@ in
https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_documentSymbol
'';
};
window = mkWindowMappingsOption "{}";
window = mkWindowMappingsOption { };
};
};

View file

@ -11,19 +11,15 @@ let
inherit (helpers) ifNonNull';
openWinConfigOption =
helpers.defaultNullOpts.mkNullable
# Type
types.attrs
helpers.defaultNullOpts.mkAttributeSet
# Default
''
{
col = 1;
row = 1;
relative = "cursor";
border = "shadow";
style = "minimal";
}
''
{
col = 1;
row = 1;
relative = "cursor";
border = "shadow";
style = "minimal";
}
# Description
''
Floating window config for file_popup. See |nvim_open_win| for more details.
@ -97,14 +93,13 @@ in
'';
sortBy =
helpers.defaultNullOpts.mkNullable
(types.either (types.enum [
helpers.defaultNullOpts.mkEnumFirstDefault
[
"name"
"case_sensitive"
"modification_time"
"extension"
]) helpers.nixvimTypes.rawLua)
"name"
]
''
Changes how files within the same directory are sorted.
Can be one of `name`, `case_sensitive`, `modification_time`, `extension` or a
@ -139,7 +134,7 @@ in
Keeps the cursor on the first letter of the filename when moving in the tree.
'';
rootDirs = helpers.defaultNullOpts.mkNullable (types.listOf types.str) "[]" ''
rootDirs = helpers.defaultNullOpts.mkListOf types.str [ ] ''
Preferred root directories.
Only relevant when `updateFocusedFile.updateRoot` is `true`.
'';
@ -187,7 +182,7 @@ in
Only relevant when `updateFocusedFile.enable` is `true`
'';
ignoreList = helpers.defaultNullOpts.mkNullable (types.listOf types.str) "[]" ''
ignoreList = helpers.defaultNullOpts.mkListOf types.str [ ] ''
List of buffer names and filetypes that will not update the root dir of the tree if the
file isn't found under the current root directory.
Only relevant when `updateFocusedFile.updateRoot` and `updateFocusedFile.enable` are
@ -205,7 +200,7 @@ in
Windows: "`cmd"`
'';
args = helpers.defaultNullOpts.mkNullable (types.listOf types.str) "[]" ''
args = helpers.defaultNullOpts.mkListOf types.str [ ] ''
Optional argument list.
Leave empty for OS specific default:
@ -310,7 +305,7 @@ in
Idle milliseconds between filesystem change and action.
'';
ignoreDirs = helpers.defaultNullOpts.mkNullable (types.listOf types.str) "[]" ''
ignoreDirs = helpers.defaultNullOpts.mkListOf types.str [ ] ''
List of vim regex for absolute directory paths that will not be watched.
Backslashes must be escaped e.g. `"my-project/\\.build$"`.
See |string-match|.
@ -389,7 +384,7 @@ in
})
]
)
"30"
30
''
Width of the window: can be a `%` string, a number representing columns or a table.
A table indicates that the view should be dynamically sized based on the longest line.
@ -421,13 +416,12 @@ in
'';
signcolumn =
helpers.defaultNullOpts.mkEnum
helpers.defaultNullOpts.mkEnumFirstDefault
[
"yes"
"auto"
"no"
]
"yes"
''
Show diagnostic sign column. Value can be `"yes"`, `"auto"`, `"no"`.
'';
@ -570,13 +564,12 @@ in
'';
modifiedPlacement =
helpers.defaultNullOpts.mkEnum
helpers.defaultNullOpts.mkEnumFirstDefault
[
"after"
"before"
"signcolumn"
]
"after"
''
Place where the modified icon will be rendered.
Can be `"after"` or `"before"` filename (after the file/folders icons) or `"signcolumn"`
@ -682,10 +675,12 @@ in
};
};
specialFiles =
helpers.defaultNullOpts.mkNullable (types.listOf types.str)
"[ \"Cargo.toml\" \"Makefile\" \"README.md\" \"readme.md\" ]"
"A list of filenames that gets highlighted with `NvimTreeSpecialFile`.";
specialFiles = helpers.defaultNullOpts.mkListOf types.str [
"Cargo.toml"
"Makefile"
"README.md"
"readme.md"
] "A list of filenames that gets highlighted with `NvimTreeSpecialFile`.";
symlinkDestination = helpers.defaultNullOpts.mkBool true ''
Whether to show the destination of the symlink.
@ -711,13 +706,13 @@ in
A reload or filesystem event will result in an update.
'';
custom = helpers.defaultNullOpts.mkNullable (types.listOf types.str) "[]" ''
custom = helpers.defaultNullOpts.mkListOf types.str [ ] ''
Custom list of vim regex for file/directory names that will not be shown.
Backslashes must be escaped e.g. "^\\.git". See |string-match|.
Toggle via the `toggle_custom` action, default mapping `U`.
'';
exclude = helpers.defaultNullOpts.mkNullable (types.listOf types.str) "[]" ''
exclude = helpers.defaultNullOpts.mkListOf types.str [ ] ''
List of directories or files to exclude from filtering: always show them.
Overrides `git.ignore`, `filters.dotfiles` and `filters.custom`.
'';
@ -753,7 +748,7 @@ in
Avoids hanging neovim when running this action on very large folders.
'';
exclude = helpers.defaultNullOpts.mkNullable (types.listOf types.str) "[]" ''
exclude = helpers.defaultNullOpts.mkListOf types.str [ ] ''
A list of directories that should not be expanded automatically.
E.g `[ ".git" "target" "build" ]` etc.
'';
@ -781,29 +776,39 @@ in
tree.
'';
picker =
helpers.defaultNullOpts.mkNullable (types.either types.str helpers.nixvimTypes.rawLua) "default"
''
Change the default window picker, can be a string `"default"` or a function.
The function should return the window id that will open the node, or `nil` if an
invalid window is picked or user cancelled the action.
picker = helpers.defaultNullOpts.mkStr' {
pluginDefault = "default";
description = ''
Change the default window picker. This can either be a string or a function (see example).
This can be both a string or a function (see example below).
picker = { __raw = "require('window-picker').pick_window"; };
'';
The function should return the window id that will open the node, or `nil` if an
invalid window is picked or user cancelled the action.
'';
example.__raw = "require('window-picker').pick_window";
};
chars = helpers.defaultNullOpts.mkStr "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890" ''
A string of chars used as identifiers by the window picker.
'';
exclude =
helpers.defaultNullOpts.mkNullable (with types; attrsOf (listOf str))
''
{
filetype = [ "notify" "lazy" "packer" "qf" "diff" "fugitive" "fugitiveblame" ];
buftype = [ "nofile" "terminal" "help" ];
};
''
helpers.defaultNullOpts.mkAttrsOf (with types; listOf str)
{
filetype = [
"notify"
"lazy"
"packer"
"qf"
"diff"
"fugitive"
"fugitiveblame"
];
buftype = [
"nofile"
"terminal"
"help"
];
}
''
Table of buffer option names mapped to a list of option values that indicates to
the picker that the buffer's window should not be selectable.
@ -845,7 +850,7 @@ in
Closes the tree across all tabpages when the tree is closed.
'';
ignore = helpers.defaultNullOpts.mkNullable (with types; listOf str) "[]" ''
ignore = helpers.defaultNullOpts.mkListOf types.str [ ] ''
List of filetypes or buffer names on new tab that will prevent
|nvim-tree.tab.sync.open| and |nvim-tree.tab.sync.close|
'';