mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-20 16:15:43 +02:00
458 lines
12 KiB
Nix
458 lines
12 KiB
Nix
{
|
|
empty = {
|
|
plugins.web-devicons.enable = true;
|
|
plugins.neo-tree.enable = true;
|
|
};
|
|
|
|
defaults = {
|
|
plugins.web-devicons.enable = true;
|
|
plugins.neo-tree = {
|
|
enable = true;
|
|
|
|
sources = [
|
|
"filesystem"
|
|
"buffers"
|
|
"git_status"
|
|
];
|
|
|
|
addBlankLineAtTop = false;
|
|
autoCleanAfterSessionRestore = false;
|
|
closeIfLastWindow = false;
|
|
defaultSource = "filesystem";
|
|
enableDiagnostics = true;
|
|
enableGitStatus = true;
|
|
enableModifiedMarkers = true;
|
|
enableRefreshOnWrite = true;
|
|
gitStatusAsync = true;
|
|
gitStatusAsyncOptions = {
|
|
batchSize = 1000;
|
|
batchDelay = 10;
|
|
maxLines = 10000;
|
|
};
|
|
hideRootNode = false;
|
|
retainHiddenRootIndent = false;
|
|
logLevel = "info";
|
|
logToFile = false;
|
|
openFilesInLastWindow = true;
|
|
popupBorderStyle = "NC";
|
|
resizeTimerInterval = 500;
|
|
sortCaseInsensitive = false;
|
|
sortFunction = "nil";
|
|
usePopupsForInput = true;
|
|
useDefaultMappings = true;
|
|
sourceSelector = {
|
|
winbar = false;
|
|
statusline = false;
|
|
showScrolledOffParentNode = false;
|
|
sources = [
|
|
{
|
|
source = "filesystem";
|
|
displayName = " Files ";
|
|
}
|
|
{
|
|
source = "buffers";
|
|
displayName = " Buffers ";
|
|
}
|
|
{
|
|
source = "gitStatus";
|
|
displayName = " Git ";
|
|
}
|
|
{
|
|
source = "diagnostics";
|
|
displayName = " 裂Diagnostics ";
|
|
}
|
|
];
|
|
contentLayout = "start";
|
|
tabsLayout = "equal";
|
|
truncationCharacter = "…";
|
|
tabsMinWidth = null;
|
|
tabsMaxWidth = null;
|
|
padding = 0;
|
|
separator = {
|
|
left = "▏";
|
|
right = "▕";
|
|
};
|
|
separatorActive = null;
|
|
showSeparatorOnEdge = false;
|
|
highlightTab = "NeoTreeTabInactive";
|
|
highlightTabActive = "NeoTreeTabActive";
|
|
highlightBackground = "NeoTreeTabInactive";
|
|
highlightSeparator = "NeoTreeTabSeparatorInactive";
|
|
highlightSeparatorActive = "NeoTreeTabSeparatorActive";
|
|
};
|
|
eventHandlers = {
|
|
before_render = ''
|
|
function (state)
|
|
-- add something to the state that can be used by custom components
|
|
end
|
|
'';
|
|
|
|
file_opened = ''
|
|
function(file_path)
|
|
--auto close
|
|
require("neo-tree").close_all()
|
|
end
|
|
'';
|
|
};
|
|
defaultComponentConfigs = {
|
|
container = {
|
|
enableCharacterFade = true;
|
|
width = "100%";
|
|
rightPadding = 0;
|
|
};
|
|
diagnostics = {
|
|
symbols = {
|
|
hint = "H";
|
|
info = "I";
|
|
warn = "!";
|
|
error = "X";
|
|
};
|
|
highlights = {
|
|
hint = "DiagnosticSignHint";
|
|
info = "DiagnosticSignInfo";
|
|
warn = "DiagnosticSignWarn";
|
|
error = "DiagnosticSignError";
|
|
};
|
|
};
|
|
indent = {
|
|
indentSize = 2;
|
|
padding = 1;
|
|
withMarkers = true;
|
|
indentMarker = "│";
|
|
lastIndentMarker = "└";
|
|
highlight = "NeoTreeIndentMarker";
|
|
withExpanders = null;
|
|
expanderCollapsed = "";
|
|
expanderExpanded = "";
|
|
expanderHighlight = "NeoTreeExpander";
|
|
};
|
|
icon = {
|
|
folderClosed = "";
|
|
folderOpen = "";
|
|
folderEmpty = "ﰊ";
|
|
folderEmptyOpen = "ﰊ";
|
|
default = "*";
|
|
highlight = "NeoTreeFileIcon";
|
|
};
|
|
modified = {
|
|
symbol = "[+] ";
|
|
highlight = "NeoTreeModified";
|
|
};
|
|
name = {
|
|
trailingSlash = false;
|
|
useGitStatusColors = true;
|
|
highlight = "NeoTreeFileName";
|
|
};
|
|
gitStatus = {
|
|
symbols = {
|
|
added = "✚";
|
|
deleted = "✖";
|
|
modified = "";
|
|
renamed = "";
|
|
untracked = "";
|
|
ignored = "";
|
|
unstaged = "";
|
|
staged = "";
|
|
conflict = "";
|
|
};
|
|
|
|
align = "right";
|
|
};
|
|
};
|
|
renderers = {
|
|
directory = [
|
|
"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;
|
|
}
|
|
];
|
|
}
|
|
];
|
|
file = [
|
|
"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";
|
|
}
|
|
];
|
|
}
|
|
];
|
|
message = [
|
|
{
|
|
name = "indent";
|
|
with_markers = false;
|
|
}
|
|
{
|
|
name = "name";
|
|
highlight = "NeoTreeMessage";
|
|
}
|
|
];
|
|
terminal = [
|
|
"indent"
|
|
"icon"
|
|
"name"
|
|
"bufnr"
|
|
];
|
|
};
|
|
nestingRules = { };
|
|
window = {
|
|
position = "left";
|
|
width = 40;
|
|
height = 15;
|
|
autoExpandWidth = false;
|
|
popup = {
|
|
size = {
|
|
height = "80%";
|
|
width = "50%";
|
|
};
|
|
position = "80%";
|
|
};
|
|
sameLevel = false;
|
|
insertAs = "child";
|
|
mappingOptions = {
|
|
noremap = true;
|
|
nowait = true;
|
|
};
|
|
mappings = {
|
|
"<space>" = {
|
|
command = "toggle_node";
|
|
# disable `nowait` if you have existing combos starting with this char that you want to use
|
|
nowait = false;
|
|
};
|
|
"<2-LeftMouse>" = "open";
|
|
"<cr>" = "open";
|
|
"<esc>" = "revert_preview";
|
|
P = {
|
|
command = "toggle_preview";
|
|
config = {
|
|
use_float = true;
|
|
};
|
|
};
|
|
l = "focus_preview";
|
|
S = "open_split";
|
|
# S = "split_with_window_picker";
|
|
s = "open_vsplit";
|
|
# s = "vsplit_with_window_picker";
|
|
t = "open_tabnew";
|
|
# "<cr>" = "open_drop";
|
|
# t = "open_tab_drop";
|
|
w = "open_with_window_picker";
|
|
C = "close_node";
|
|
z = "close_all_nodes";
|
|
# Z = "expand_all_nodes";
|
|
R = "refresh";
|
|
a = {
|
|
command = "add";
|
|
# some commands may take optional config options, see `:h neo-tree-mappings` for details
|
|
config = {
|
|
show_path = "none"; # "none", "relative", "absolute"
|
|
};
|
|
};
|
|
A = "add_directory"; # also accepts the config.show_path and config.insert_as options.
|
|
d = "delete";
|
|
r = "rename";
|
|
y = "copy_to_clipboard";
|
|
x = "cut_to_clipboard";
|
|
p = "paste_from_clipboard";
|
|
c = "copy"; # takes text input for destination, also accepts the config.show_path and config.insert_as options
|
|
m = "move"; # takes text input for destination, also accepts the config.show_path and config.insert_as options
|
|
e = "toggle_auto_expand_width";
|
|
q = "close_window";
|
|
"?" = "show_help";
|
|
"<" = "prev_source";
|
|
">" = "next_source";
|
|
};
|
|
};
|
|
filesystem = {
|
|
window = {
|
|
mappings = {
|
|
H = "toggle_hidden";
|
|
"/" = "fuzzy_finder";
|
|
D = "fuzzy_finder_directory";
|
|
# "/" = "filter_as_you_type"; # this was the default until v1.28
|
|
"#" = "fuzzy_sorter"; # fuzzy sorting using the fzy algorithm
|
|
# D = "fuzzy_sorter_directory";
|
|
f = "filter_on_submit";
|
|
"<C-x>" = "clear_filter";
|
|
"<bs>" = "navigate_up";
|
|
"." = "set_root";
|
|
"[g" = "prev_git_modified";
|
|
"]g" = "next_git_modified";
|
|
};
|
|
};
|
|
asyncDirectoryScan = "auto";
|
|
scanMode = "shallow";
|
|
bindToCwd = true;
|
|
cwdTarget = {
|
|
sidebar = "tab";
|
|
current = "window";
|
|
};
|
|
filteredItems = {
|
|
visible = false;
|
|
forceVisibleInEmptyFolder = false;
|
|
showHiddenCount = true;
|
|
hideDotfiles = true;
|
|
hideGitignored = true;
|
|
hideHidden = true;
|
|
hideByName = [
|
|
".DS_Store"
|
|
"thumbs.db"
|
|
];
|
|
hideByPattern = [ ];
|
|
alwaysShow = [ ];
|
|
neverShow = [ ];
|
|
neverShowByPattern = [ ];
|
|
};
|
|
findByFullPathWords = false;
|
|
findCommand = "fd";
|
|
findArgs = {
|
|
fd = [
|
|
"--exclude"
|
|
".git"
|
|
"--exclude"
|
|
"node_modules"
|
|
];
|
|
};
|
|
groupEmptyDirs = false;
|
|
searchLimit = 50;
|
|
followCurrentFile = {
|
|
enabled = false;
|
|
leaveDirsOpen = false;
|
|
};
|
|
hijackNetrwBehavior = "open_default";
|
|
useLibuvFileWatcher = false;
|
|
};
|
|
buffers = {
|
|
bindToCwd = true;
|
|
followCurrentFile = {
|
|
enabled = true;
|
|
leaveDirsOpen = false;
|
|
};
|
|
groupEmptyDirs = true;
|
|
window = {
|
|
mappings = {
|
|
"<bs>" = "navigate_up";
|
|
"." = "set_root";
|
|
bd = "buffer_delete";
|
|
};
|
|
};
|
|
};
|
|
gitStatus = {
|
|
window = {
|
|
mappings = {
|
|
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 = [
|
|
"indent"
|
|
{
|
|
name = "icon";
|
|
default = "C";
|
|
}
|
|
"custom"
|
|
"name"
|
|
];
|
|
};
|
|
window = {
|
|
mappings = {
|
|
"<cr>" = "toggle_node";
|
|
"<C-e>" = "example_command";
|
|
d = "show_debug_info";
|
|
};
|
|
};
|
|
};
|
|
documentSymbols = {
|
|
followCursor = false;
|
|
kinds = {
|
|
File = {
|
|
icon = "";
|
|
hl = "Tag";
|
|
};
|
|
Namespace = {
|
|
icon = "";
|
|
hl = "Include";
|
|
};
|
|
};
|
|
customKinds = {
|
|
"12" = "foo";
|
|
"15" = "bar";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
no-packages = {
|
|
plugins = {
|
|
web-devicons.enable = true;
|
|
neo-tree.enable = true;
|
|
};
|
|
|
|
dependencies.git.enable = false;
|
|
};
|
|
|
|
no-icons = {
|
|
plugins = {
|
|
web-devicons.enable = false;
|
|
neo-tree.enable = true;
|
|
};
|
|
};
|
|
}
|