mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-21 00:25:42 +02:00
259 lines
5.9 KiB
Nix
259 lines
5.9 KiB
Nix
{ lib, ... }:
|
|
let
|
|
inherit (lib) types;
|
|
inherit (lib.nixvim) defaultNullOpts;
|
|
in
|
|
lib.nixvim.plugins.mkNeovimPlugin {
|
|
name = "snacks";
|
|
packPathName = "snacks.nvim";
|
|
package = "snacks-nvim";
|
|
|
|
maintainers = [ lib.maintainers.HeitorAugustoLN ];
|
|
|
|
settingsOptions = {
|
|
bigfile = {
|
|
enabled = defaultNullOpts.mkBool true ''
|
|
Whether to enable `bigfile` plugin.
|
|
'';
|
|
|
|
notify = defaultNullOpts.mkBool true ''
|
|
Whether to show notification when big file detected.
|
|
'';
|
|
|
|
size = defaultNullOpts.mkNum { __raw = "1.5 * 1024 * 1024"; } ''
|
|
The size at which a file is considered big.
|
|
'';
|
|
|
|
setup =
|
|
defaultNullOpts.mkRaw
|
|
''
|
|
function(ctx)
|
|
vim.b.minianimate_disable = true
|
|
vim.schedule(function()
|
|
vim.bo[ctx.buf].syntax = ctx.ft
|
|
end)
|
|
end
|
|
''
|
|
''
|
|
Enable or disable features when a big file is detected.
|
|
'';
|
|
};
|
|
|
|
notifier = {
|
|
enabled = defaultNullOpts.mkBool true ''
|
|
Whether to enable `notifier` plugin.
|
|
'';
|
|
|
|
timeout = defaultNullOpts.mkUnsignedInt 3000 ''
|
|
Timeout of notifier in milliseconds.
|
|
'';
|
|
|
|
width = {
|
|
min = defaultNullOpts.mkNum 40 ''
|
|
Minimum width of notification.
|
|
'';
|
|
|
|
max = defaultNullOpts.mkNum 0.4 ''
|
|
Maximum width of notification.
|
|
'';
|
|
};
|
|
|
|
height = {
|
|
min = defaultNullOpts.mkNum 40 ''
|
|
Minimum height of notification.
|
|
'';
|
|
|
|
max = defaultNullOpts.mkNum 0.4 ''
|
|
Maximum height of notification.
|
|
'';
|
|
};
|
|
|
|
margin = {
|
|
top = defaultNullOpts.mkUnsignedInt 0 ''
|
|
Top margin of notification.
|
|
'';
|
|
|
|
right = defaultNullOpts.mkUnsignedInt 1 ''
|
|
Right margin of notification.
|
|
'';
|
|
|
|
bottom = defaultNullOpts.mkUnsignedInt 0 ''
|
|
Bottom margin of notification.
|
|
'';
|
|
};
|
|
padding = defaultNullOpts.mkBool true ''
|
|
Whether to add 1 cell of left/right padding to the notification window.
|
|
'';
|
|
|
|
sort =
|
|
defaultNullOpts.mkListOf types.str
|
|
[
|
|
"level"
|
|
"added"
|
|
]
|
|
''
|
|
How to sort notifications.
|
|
'';
|
|
|
|
icons = {
|
|
error = defaultNullOpts.mkStr " " ''
|
|
Icon for `error` notifications.
|
|
'';
|
|
|
|
warn = defaultNullOpts.mkStr " " ''
|
|
Icon for `warn` notifications.
|
|
'';
|
|
|
|
info = defaultNullOpts.mkStr " " ''
|
|
Icon for `info` notifications.
|
|
'';
|
|
|
|
debug = defaultNullOpts.mkStr " " ''
|
|
Icon for `debug` notifications.
|
|
'';
|
|
|
|
trace = defaultNullOpts.mkStr " " ''
|
|
Icon for `trace` notifications.
|
|
'';
|
|
};
|
|
|
|
style =
|
|
defaultNullOpts.mkEnum
|
|
[
|
|
"compact"
|
|
"fancy"
|
|
"minimal"
|
|
]
|
|
"compact"
|
|
''
|
|
Style of notifications.
|
|
'';
|
|
top_down = defaultNullOpts.mkBool true ''
|
|
Whether to place notifications from top to bottom.
|
|
'';
|
|
|
|
date_format = defaultNullOpts.mkStr "%R" ''
|
|
Time format for notifications.
|
|
'';
|
|
|
|
refresh = defaultNullOpts.mkUnsignedInt 50 ''
|
|
Time in milliseconds to refresh notifications.
|
|
'';
|
|
};
|
|
|
|
quickfile = {
|
|
enabled = defaultNullOpts.mkBool true ''
|
|
Whether to enable `quickfile` plugin.
|
|
'';
|
|
|
|
exclude = defaultNullOpts.mkListOf types.str [ "latex" ] ''
|
|
Filetypes to exclude from `quickfile` plugin.
|
|
'';
|
|
};
|
|
statuscolumn = {
|
|
enabled = defaultNullOpts.mkBool true ''
|
|
Whether to enable `statuscolumn` plugin.
|
|
'';
|
|
|
|
left =
|
|
defaultNullOpts.mkListOf types.str
|
|
[
|
|
"mark"
|
|
"sign"
|
|
]
|
|
''
|
|
Priority of signs on the left (high to low).
|
|
'';
|
|
|
|
right =
|
|
defaultNullOpts.mkListOf types.str
|
|
[
|
|
"fold"
|
|
"git"
|
|
]
|
|
''
|
|
Priority of signs on the right (high to low)
|
|
'';
|
|
folds = {
|
|
open = defaultNullOpts.mkBool false ''
|
|
Whether to show open fold icons.
|
|
'';
|
|
|
|
git_hl = defaultNullOpts.mkBool false ''
|
|
Whether to use Git Signs hl for fold icons.
|
|
'';
|
|
};
|
|
git = {
|
|
patterns =
|
|
defaultNullOpts.mkListOf types.str
|
|
[
|
|
"GitSign"
|
|
"MiniDiffSign"
|
|
]
|
|
''
|
|
Patterns to match Git signs.
|
|
'';
|
|
};
|
|
|
|
refresh = defaultNullOpts.mkUnsignedInt 50 ''
|
|
Time in milliseconds to refresh statuscolumn.
|
|
'';
|
|
};
|
|
words = {
|
|
enabled = defaultNullOpts.mkBool true ''
|
|
Whether to enable `words` plugin.
|
|
'';
|
|
|
|
debounce = defaultNullOpts.mkUnsignedInt 200 ''
|
|
Time in ms to wait before updating.
|
|
'';
|
|
|
|
notify_jump = defaultNullOpts.mkBool false ''
|
|
Whether to show a notification when jumping.
|
|
'';
|
|
|
|
notify_end = defaultNullOpts.mkBool true ''
|
|
Whether to show a notification when reaching the end.
|
|
'';
|
|
|
|
foldopen = defaultNullOpts.mkBool true ''
|
|
Whether to open folds after jumping.
|
|
'';
|
|
|
|
jumplist = defaultNullOpts.mkBool true ''
|
|
Whether to set jump point before jumping.
|
|
'';
|
|
|
|
modes =
|
|
defaultNullOpts.mkListOf types.str
|
|
[
|
|
"n"
|
|
"i"
|
|
"c"
|
|
]
|
|
''
|
|
Modes to show references.
|
|
'';
|
|
};
|
|
};
|
|
|
|
settingsExample = {
|
|
bigfile = {
|
|
enabled = true;
|
|
};
|
|
statuscolumn = {
|
|
enabled = false;
|
|
};
|
|
words = {
|
|
enabled = true;
|
|
debounce = 100;
|
|
};
|
|
quickfile = {
|
|
enabled = false;
|
|
};
|
|
notifier = {
|
|
enabled = true;
|
|
timeout = 3000;
|
|
};
|
|
};
|
|
}
|