mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-21 08:35:43 +02:00
215 lines
5.1 KiB
Nix
215 lines
5.1 KiB
Nix
{ helpers, ... }:
|
|
{
|
|
empty = {
|
|
plugins.flash.enable = true;
|
|
};
|
|
|
|
defaults = {
|
|
plugins.flash = {
|
|
enable = true;
|
|
|
|
labels = "asdfghjklqwertyuiopzxcvbnm";
|
|
search = {
|
|
multiWindow = true;
|
|
forward = true;
|
|
wrap = true;
|
|
mode = "exact";
|
|
incremental = false;
|
|
exclude = [
|
|
"notify"
|
|
"cmp_menu"
|
|
"noice"
|
|
"flash_prompt"
|
|
{
|
|
__raw = ''
|
|
function(win)
|
|
-- exclude non-focusable windows
|
|
return not vim.api.nvim_win_get_config(win).focusable
|
|
end
|
|
'';
|
|
}
|
|
];
|
|
trigger = "";
|
|
maxLength = false;
|
|
};
|
|
jump = {
|
|
jumplist = true;
|
|
pos = "start";
|
|
history = false;
|
|
register = false;
|
|
nohlsearch = false;
|
|
autojump = false;
|
|
inclusive = null;
|
|
offset = null;
|
|
};
|
|
label = {
|
|
uppercase = true;
|
|
exclude = "";
|
|
current = true;
|
|
after = true;
|
|
before = false;
|
|
style = "overlay";
|
|
reuse = "lowercase";
|
|
distance = true;
|
|
minPatternLength = 0;
|
|
rainbow = {
|
|
enabled = false;
|
|
shade = 5;
|
|
};
|
|
format = ''
|
|
function(opts)
|
|
return { { opts.match.label, opts.hl_group } }
|
|
end
|
|
'';
|
|
};
|
|
highlight = {
|
|
backdrop = true;
|
|
matches = true;
|
|
priority = 5000;
|
|
groups = {
|
|
match = "FlashMatch";
|
|
current = "FlashCurrent";
|
|
backdrop = "FlashBackdrop";
|
|
label = "FlashLabel";
|
|
};
|
|
};
|
|
action = null;
|
|
pattern = "";
|
|
continue = false;
|
|
config = null;
|
|
prompt = {
|
|
enabled = true;
|
|
prefix = [
|
|
[
|
|
"⚡"
|
|
"FlashPromptIcon"
|
|
]
|
|
];
|
|
winConfig = {
|
|
relative = "editor";
|
|
width = 1;
|
|
height = 1;
|
|
row = -1;
|
|
col = 0;
|
|
zindex = 1000;
|
|
};
|
|
};
|
|
remoteOp = {
|
|
restore = false;
|
|
motion = false;
|
|
};
|
|
modes = {
|
|
search = {
|
|
enabled = true;
|
|
highlight = {
|
|
backdrop = false;
|
|
};
|
|
jump = {
|
|
history = true;
|
|
register = true;
|
|
nohlsearch = true;
|
|
};
|
|
search.automatic = true;
|
|
};
|
|
char = {
|
|
enabled = true;
|
|
config = ''
|
|
function(opts)
|
|
-- autohide flash when in operator-pending mode
|
|
opts.autohide = vim.fn.mode(true):find("no") and vim.v.operator == "y"
|
|
|
|
-- disable jump labels when not enabled, when using a count,
|
|
-- or when recording/executing registers
|
|
opts.jump_labels = opts.jump_labels
|
|
and vim.v.count == 0
|
|
and vim.fn.reg_executing() == ""
|
|
and vim.fn.reg_recording() == ""
|
|
|
|
-- Show jump labels only in operator-pending mode
|
|
-- opts.jump_labels = vim.v.count == 0 and vim.fn.mode(true):find("o")
|
|
end
|
|
'';
|
|
autohide = false;
|
|
jumpLabels = false;
|
|
multiLine = true;
|
|
label = {
|
|
exclude = "hjkliardc";
|
|
};
|
|
keys = helpers.listToUnkeyedAttrs [
|
|
"f"
|
|
"F"
|
|
"t"
|
|
"T"
|
|
";"
|
|
","
|
|
];
|
|
charActions = ''
|
|
function(motion)
|
|
return {
|
|
[";"] = "next", -- set to `right` to always go right
|
|
[","] = "prev", -- set to `left` to always go left
|
|
-- clever-f style
|
|
[motion:lower()] = "next",
|
|
[motion:upper()] = "prev",
|
|
-- jump2d style: same case goes next, opposite case goes prev
|
|
-- [motion] = "next",
|
|
-- [motion:match("%l") and motion:upper() or motion:lower()] = "prev",
|
|
}
|
|
end
|
|
'';
|
|
search = {
|
|
wrap = false;
|
|
};
|
|
highlight = {
|
|
backdrop = true;
|
|
};
|
|
jump = {
|
|
register = false;
|
|
};
|
|
};
|
|
treesitter = {
|
|
labels = "abcdefghijklmnopqrstuvwxyz";
|
|
jump = {
|
|
pos = "range";
|
|
};
|
|
search = {
|
|
incremental = false;
|
|
};
|
|
label = {
|
|
before = true;
|
|
after = true;
|
|
style = "inline";
|
|
};
|
|
highlight = {
|
|
backdrop = false;
|
|
matches = false;
|
|
};
|
|
};
|
|
treesitterSearch = {
|
|
jump = {
|
|
pos = "range";
|
|
};
|
|
search = {
|
|
multiWindow = true;
|
|
wrap = true;
|
|
incremental = false;
|
|
};
|
|
remoteOp = {
|
|
restore = true;
|
|
};
|
|
label = {
|
|
before = true;
|
|
after = true;
|
|
style = "inline";
|
|
};
|
|
};
|
|
remote = {
|
|
remoteOp = {
|
|
restore = true;
|
|
motion = true;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|