noice: migrate to mkNeovimPlugin

This commit is contained in:
Austin Horstman 2024-10-27 20:02:15 -05:00
parent 89cad1aae7
commit 90d7deedc4
No known key found for this signature in database
2 changed files with 415 additions and 380 deletions

View file

@ -1,35 +1,100 @@
{ {
lib, lib,
config,
pkgs,
... ...
}: }:
# TODO: This uses a lot of types.anything because noice.nvim types are quite complex.
# It should be possible to map them to nix, but they would not map really well through
# toLuaObject, we would maybe need some ad-hoc pre-processing functions.
let let
inherit (lib) types; inherit (lib) types;
inherit (lib.nixvim) defaultNullOpts; inherit (lib.nixvim) defaultNullOpts;
in in
{ lib.nixvim.neovim-plugin.mkNeovimPlugin {
options.plugins.noice = lib.nixvim.neovim-plugin.extraOptionsOptions // { name = "noice";
enable = lib.mkEnableOption '' originalName = "noice.nvim";
noice.nvim, an experimental nvim UI. package = "noice-nvim";
Note that if treesitter is enabled you need the following parsers:
vim, regex, lua, bash, markdown, markdown_inline
'';
package = lib.mkPackageOption pkgs "noice" { maintainers = [ lib.maintainers.khaneliman ];
default = [
"vimPlugins"
"noice-nvim"
];
};
description = ''
`noice.nvim`, an experimental Neovim UI.
> [!NOTE]
> If treesitter is enabled you need the following parsers:
> vim, regex, lua, bash, markdown, markdown_inline
'';
# TODO: added 2024-10-27 remove after 24.11
deprecateExtraOptions = true;
optionsRenamedToSettings =
let
mkOptionPaths = map (lib.splitString ".");
in
mkOptionPaths [
"cmdline.enabled"
"cmdline.view"
"cmdline.opts"
"cmdline.format"
"messages.enabled"
"messages.view"
"messages.viewError"
"messages.viewWarn"
"messages.viewHistory"
"messages.viewSearch"
"popupmenu.enabled"
"popupmenu.backend"
"popupmenu.kindIcons"
"redirect"
"commands"
"notify.enabled"
"notify.view"
"lsp.progress.enabled"
"lsp.progress.format"
"lsp.progress.formatDone"
"lsp.progress.throttle"
"lsp.progress.view"
"lsp.override"
"lsp.hover.enabled"
"lsp.hover.view"
"lsp.hover.opts"
"lsp.signature.enabled"
"lsp.signature.autoOpen.enabled"
"lsp.signature.autoOpen.trigger"
"lsp.signature.autoOpen.luasnip"
"lsp.signature.autoOpen.throttle"
"lsp.signature.view"
"lsp.signature.opts"
"lsp.message.enabled"
"lsp.message.view"
"lsp.message.opts"
"lsp.documentation.view"
"lsp.documentation.opts"
"markdown.hover"
"markdown.highlights"
"health.checker"
"smartMove.enabled"
"smartMove.excludedFiletypes"
"presets"
"throttle"
"views"
"routes"
"status"
"format"
];
settingsOptions = {
cmdline = { cmdline = {
enabled = defaultNullOpts.mkBool true "enables Noice cmdline UI"; enabled = defaultNullOpts.mkBool true "Enables `Noice` cmdline UI.";
view = defaultNullOpts.mkStr "cmdline_popup" "";
opts = defaultNullOpts.mkAttrsOf types.anything { } ""; view = defaultNullOpts.mkStr "cmdline_popup" ''
View for rendering the cmdline.
Change to `cmdline` to get a classic cmdline at the bottom.
'';
opts = defaultNullOpts.mkAttrsOf types.anything { } ''
Global options for the cmdline. See section on [views].
[views] https://github.com/folke/noice.nvim?tab=readme-ov-file#-views
'';
format = format =
defaultNullOpts.mkAttrsOf types.anything defaultNullOpts.mkAttrsOf types.anything
{ {
@ -66,6 +131,7 @@ in
}; };
input = { }; input = { };
} }
# TODO: cleanup
'' ''
conceal: (default=true) This will hide the text in the cmdline that matches the pattern. conceal: (default=true) This will hide the text in the cmdline that matches the pattern.
view: (default is cmdline view) view: (default is cmdline view)
@ -79,24 +145,30 @@ in
messages = { messages = {
enabled = defaultNullOpts.mkBool true '' enabled = defaultNullOpts.mkBool true ''
Enables the messages UI. Enables the messages UI.
NOTE: If you enable messages, then the cmdline is enabled automatically.
> [!NOTE] If you enable messages, then the cmdline is enabled automatically.
''; '';
view = defaultNullOpts.mkStr "notify" "default view for messages";
viewError = defaultNullOpts.mkStr "notify" "default view for errors"; view = defaultNullOpts.mkStr "notify" "Default view for messages.";
viewWarn = defaultNullOpts.mkStr "notify" "default view for warnings";
viewHistory = defaultNullOpts.mkStr "messages" "view for :messages"; view_error = defaultNullOpts.mkStr "notify" "Default view for errors.";
viewSearch = defaultNullOpts.mkStr "virtualtext" "view for search count messages";
view_warn = defaultNullOpts.mkStr "notify" "Default view for warnings.";
view_history = defaultNullOpts.mkStr "messages" "View for `:messages`.";
view_search = defaultNullOpts.mkStr "virtualtext" "View for search count messages.";
}; };
popupmenu = { popupmenu = {
enabled = defaultNullOpts.mkBool true "enables the Noice popupmenu UI"; enabled = defaultNullOpts.mkBool true "Enable the Noice popupmenu UI.";
backend = defaultNullOpts.mkEnumFirstDefault [ backend = defaultNullOpts.mkEnumFirstDefault [
"nui" "nui"
"cmp" "cmp"
] ""; ] "Backend to use to show regular cmdline completions.";
kindIcons = defaultNullOpts.mkNullable ( kindIcons = defaultNullOpts.mkNullableWithRaw (
with types; either bool (attrsOf anything) with types; either bool (attrsOf anything)
) { } "Icons for completion item kinds. set to `false` to disable icons"; ) { } "Icons for completion item kinds. Set to `false` to disable icons.";
}; };
redirect = defaultNullOpts.mkAttrsOf types.anything { redirect = defaultNullOpts.mkAttrsOf types.anything {
@ -104,7 +176,7 @@ in
filter = { filter = {
event = "msg_show"; event = "msg_show";
}; };
} "default options for require('noice').redirect"; } "Default options for `require('noice').redirect`.";
commands = defaultNullOpts.mkAttrsOf types.anything { commands = defaultNullOpts.mkAttrsOf types.anything {
history = { history = {
@ -167,72 +239,91 @@ in
reverse = true; reverse = true;
}; };
}; };
} "You can add any custom commands that will be available with `:Noice command`"; } "You can add any custom commands that will be available with `:Noice` command.";
notify = { notify = {
enabled = defaultNullOpts.mkBool true '' enabled = defaultNullOpts.mkBool true ''
Enable notification handling. Enable notification handling.
Noice can be used as `vim.notify` so you can route any notification like other messages. Noice can be used as `vim.notify` so you can route any notification like other messages.
Notification messages have their level and other properties set. Notification messages have their level and other properties set.
event is always "notify" and kind can be any log level as a string. event is always "notify" and kind can be any log level as a string.
The default routes will forward notifications to nvim-notify. The default routes will forward notifications to nvim-notify.
Benefit of using Noice for this is the routing and consistent history view. Benefit of using Noice for this is the routing and consistent history view.
''; '';
view = defaultNullOpts.mkStr "notify" "";
view = defaultNullOpts.mkStr "notify" "Notify backend to use.";
}; };
lsp = { lsp = {
progress = { progress = {
enabled = defaultNullOpts.mkBool true "enable LSP progress"; enabled = defaultNullOpts.mkBool true "Enable LSP progress.";
format = defaultNullOpts.mkNullable (with types; either str anything) "lsp_progress" '' format = defaultNullOpts.mkNullableWithRaw (with types; either str anything) "lsp_progress" ''
Lsp Progress is formatted using the builtins for lsp_progress Lsp Progress is formatted using the builtins for lsp_progress.
''; '';
formatDone = defaultNullOpts.mkNullable (with types; either str anything) "lsp_progress" "";
throttle = defaultNullOpts.mkNum (lib.literalExpression "1000 / 30") "frequency to update lsp progress message"; format_done =
defaultNullOpts.mkNullableWithRaw (with types; either str anything) "lsp_progress_done"
''
Lsp Progress is formatted using the builtins for lsp_progress.
'';
view = defaultNullOpts.mkStr "mini" ""; throttle = defaultNullOpts.mkNum (lib.literalExpression "1000 / 30") "Frequency to update lsp progress message.";
view = defaultNullOpts.mkStr "mini" "Lsp progress view backend.";
}; };
override = defaultNullOpts.mkAttrsOf types.bool { override = defaultNullOpts.mkAttrsOf types.bool {
"vim.lsp.util.convert_input_to_markdown_lines" = false; "vim.lsp.util.convert_input_to_markdown_lines" = false;
"vim.lsp.util.stylize_markdown" = false; "vim.lsp.util.stylize_markdown" = false;
"cmp.entry.get_documentation" = false; "cmp.entry.get_documentation" = false;
} ""; } "Functions to override and use Noice.";
hover = { hover = {
enabled = defaultNullOpts.mkBool true "enable hover UI"; enabled = defaultNullOpts.mkBool true "Enable hover UI.";
view = defaultNullOpts.mkStr (lib.literalMD "use defaults from documentation") ""; # TODO: description
opts = defaultNullOpts.mkAttrsOf types.anything { } "merged with defaults from documentation"; view = defaultNullOpts.mkStr (lib.literalMD "Use defaults from documentation") "When null, use defaults from documentation.";
opts =
defaultNullOpts.mkAttrsOf types.anything { }
"Options merged with defaults from documentation.";
}; };
signature = { signature = {
enabled = defaultNullOpts.mkBool true "enable signature UI"; enabled = defaultNullOpts.mkBool true "Enable signature UI.";
auto_open = {
enabled = defaultNullOpts.mkBool true "Enable automatic opening of signature help.";
trigger = defaultNullOpts.mkBool true "Automatically show signature help when typing a trigger character from the LSP.";
luasnip = defaultNullOpts.mkBool true "Will open signature help when jumping to Luasnip insert nodes.";
autoOpen = {
enabled = defaultNullOpts.mkBool true "";
trigger = defaultNullOpts.mkBool true "Automatically show signature help when typing a trigger character from the LSP";
luasnip = defaultNullOpts.mkBool true "Will open signature help when jumping to Luasnip insert nodes";
throttle = defaultNullOpts.mkNum 50 '' throttle = defaultNullOpts.mkNum 50 ''
Debounce lsp signature help request by 50ms Debounce lsp signature help request by 50ms.
''; '';
}; };
view = defaultNullOpts.mkStr null "when null, use defaults from documentation"; view = defaultNullOpts.mkStr null "When null, use defaults from documentation.";
opts = defaultNullOpts.mkAttrsOf types.anything { } "merged with defaults from documentation";
opts =
defaultNullOpts.mkAttrsOf types.anything { }
"Options merged with defaults from documentation.";
}; };
message = { message = {
enabled = defaultNullOpts.mkBool true "enable display of messages"; enabled = defaultNullOpts.mkBool true "Enable display of messages.";
view = defaultNullOpts.mkStr "notify" ""; view = defaultNullOpts.mkStr "notify" "Message backend to use.";
opts = defaultNullOpts.mkAttrsOf types.anything { } "";
opts = defaultNullOpts.mkAttrsOf types.anything { } "Options for message backend.";
}; };
documentation = { documentation = {
view = defaultNullOpts.mkStr "hover" ""; view = defaultNullOpts.mkStr "hover" "Documentation backend to use.";
opts = defaultNullOpts.mkAttrsOf types.anything { opts = defaultNullOpts.mkAttrsOf types.anything {
lang = "markdown"; lang = "markdown";
@ -243,7 +334,7 @@ in
concealcursor = "n"; concealcursor = "n";
conceallevel = 3; conceallevel = 3;
}; };
} ""; } "Options for documentation backend.";
}; };
}; };
@ -251,7 +342,7 @@ in
hover = defaultNullOpts.mkAttrsOf types.str { hover = defaultNullOpts.mkAttrsOf types.str {
"|(%S-)|".__raw = "vim.cmd.help"; # vim help links "|(%S-)|".__raw = "vim.cmd.help"; # vim help links
"%[.-%]%((%S-)%)".__raw = "require('noice.util').open"; # markdown links "%[.-%]%((%S-)%)".__raw = "require('noice.util').open"; # markdown links
} "set handlers for hover (lua code)"; } "Set handlers for hover.";
highlights = defaultNullOpts.mkAttrsOf types.str { highlights = defaultNullOpts.mkAttrsOf types.str {
"|%S-|" = "@text.reference"; "|%S-|" = "@text.reference";
@ -260,19 +351,20 @@ in
"^%s*(Return:)" = "@text.title"; "^%s*(Return:)" = "@text.title";
"^%s*(See also:)" = "@text.title"; "^%s*(See also:)" = "@text.title";
"{%S-}" = "@parameter"; "{%S-}" = "@parameter";
} "set highlight groups"; } "Set highlight groups.";
}; };
health = { health = {
checker = defaultNullOpts.mkBool true "Disable if you don't want health checks to run"; checker = defaultNullOpts.mkBool true "Enables running health checks.";
}; };
smartMove = { smart_move = {
enabled = defaultNullOpts.mkBool true '' enabled = defaultNullOpts.mkBool true ''
Noice tries to move out of the way of existing floating windows. Noice tries to move out of the way of existing floating windows.
You can disable this behaviour here You can disable this behaviour here.
''; '';
excludedFiletypes =
excluded_filetypes =
defaultNullOpts.mkListOf types.str defaultNullOpts.mkListOf types.str
[ [
"cmp_menu" "cmp_menu"
@ -280,7 +372,7 @@ in
"notify" "notify"
] ]
'' ''
add any filetypes here, that shouldn't trigger smart move Filetypes that shouldn't trigger smart move.
''; '';
}; };
@ -293,129 +385,69 @@ in
inc_rename = false; inc_rename = false;
lsp_doc_border = false; lsp_doc_border = false;
} }
" ''
you can enable a preset by setting it to true, or a table that will override the preset You can enable a preset by setting it to `true`, or a table that will override
config. you can also add custom presets that you can enable/disable with enabled=true the preset config.
";
You can also add custom presets that you can enable/disable with `enabled=true`.
'';
throttle = defaultNullOpts.mkNum (lib.literalExpression "1000 / 30") '' throttle = defaultNullOpts.mkNum (lib.literalExpression "1000 / 30") ''
how frequently does Noice need to check for ui updates? This has no effect when in blocking How frequently does Noice need to check for ui updates?
mode
This has no effect when in blocking mode.
''; '';
views = defaultNullOpts.mkAttrsOf types.anything { } ""; views = defaultNullOpts.mkAttrsOf types.anything { } ''
routes = defaultNullOpts.mkListOf (types.attrsOf types.anything) [ ] ""; A view is a combination of a backend and options.
status = defaultNullOpts.mkAttrsOf types.anything { } "";
format = defaultNullOpts.mkAttrsOf types.anything { } "";
};
config = Noice comes with the following built-in backends:
let
cfg = config.plugins.noice; - `popup`: powered by nui.nvim
setupOptions = { - `split`: powered by nui.nvim
inherit (cfg) - `notify`: powered by nvim-notify
presets - `virtualtext`: shows the message as virtualtext (for example for search_count)
views - `mini`: similar to notifier.nvim & fidget.nvim
routes - `notify_send`: generate a desktop notification
status '';
format
; routes = defaultNullOpts.mkListOf (types.attrsOf types.anything) [ ] ''
cmdline = { Route options can be any of the view options or `skip` or `stop`.
inherit (cfg.cmdline)
enabled A route has a filter, view and optional opts attribute.
view
opts - `view`: one of the views (built-in or custom)
format - `filter` a filter for messages matching this route
; - `opts`: options for the view and the route
}; '';
messages =
let status = defaultNullOpts.mkAttrsOf types.anything { } ''
cfgM = cfg.messages; Noice comes with the following statusline components:
in
{ - `ruler`
inherit (cfgM) enabled view; - `message`: last line of the last message (event=show_msg)
view_error = cfgM.viewError; - `command`: showcmd
view_warn = cfgM.viewWarn; - `mode`: showmode (@recording messages)
view_history = cfgM.viewHistory; - `search`: search count messages
view_search = cfgM.viewSearch; '';
};
popupmenu = format = defaultNullOpts.mkAttrsOf types.anything { } ''
let Formatters are used in format definitions.
cfgP = cfg.popupmenu;
in Noice includes the following formatters:
{
inherit (cfgP) enabled backend; - `level`: message level with optional icon and hl_group per level
kind_icons = cfgP.kindIcons; - `text`: any text with optional hl_group
}; - `title`: message title with optional hl_group
inherit (cfg) redirect commands; - `event`: message event with optional hl_group
notify = { - `kind`: message kind with optional hl_group
inherit (cfg.notify) enabled view; - `date`: formatted date with optional date format string
}; - `message`: message content itself with optional hl_group to override message highlights
lsp = - `confirm`: only useful for confirm messages. Will format the choices as buttons.
let - `cmdline`: will render the cmdline in the message that generated the message.
cfgL = cfg.lsp; - `progress`: progress bar used by lsp progress
in - `spinner`: spinners used by lsp progress
{ - `data`: render any custom data from Message.opts. Useful in combination with the opts passed to vim.notify
progress = '';
let };
cfgLP = cfgL.progress;
in
{
inherit (cfgLP)
enabled
format
throttle
view
;
format_done = cfgLP.formatDone;
};
inherit (cfgL) override;
hover = {
inherit (cfgL.hover) enabled view opts;
};
signature =
let
cfgLS = cfgL.signature;
in
{
inherit (cfgLS) enabled view opts;
auto_open = {
inherit (cfgLS.autoOpen)
enabled
trigger
luasnip
throttle
;
};
};
message = {
inherit (cfgL.message) enabled view opts;
};
documentation = {
inherit (cfgL.documentation) view opts;
};
};
markdown = {
inherit (cfg.markdown) hover highlights;
};
health = {
inherit (cfg.health) checker;
};
smart_move =
let
cfgS = cfg.smartMove;
in
{
inherit (cfgS) enabled;
excluded_filetypes = cfgS.excludedFiletypes;
};
};
in
lib.mkIf cfg.enable {
# nui-nvim & nvim-notify are dependencies of the vimPlugins.noice-nvim package
extraPlugins = [ cfg.package ];
extraConfigLua = ''
require("noice").setup(${lib.nixvim.toLuaObject setupOptions})
'';
};
} }

View file

@ -6,215 +6,218 @@
defaults = { defaults = {
plugins.noice = { plugins.noice = {
enable = true; enable = true;
cmdline = {
enabled = true; settings = {
view = "cmdline_popup"; cmdline = {
opts = { };
format = {
cmdline = {
pattern = "^:";
icon = "";
lang = "vim";
};
search_down = {
kind = "search";
pattern = "^/";
icon = " ";
lang = "regex";
};
search_up = {
kind = "search";
pattern = "^%?";
icon = " ";
lang = "regex";
};
filter = {
pattern = "^:%s*!";
icon = "$";
lang = "bash";
};
lua = {
pattern = "^:%s*lua%s+";
icon = "";
lang = "lua";
};
help = {
pattern = "^:%s*he?l?p?%s+";
icon = "";
};
input = { };
};
};
messages = {
enabled = true;
view = "notify";
viewError = "notify";
viewWarn = "notify";
viewHistory = "messages";
viewSearch = "virtualtext";
};
popupmenu = {
enabled = true;
backend = "nui";
kindIcons = { };
};
redirect = {
view = "popup";
filter = {
event = "msg_show";
};
};
commands = {
history = {
view = "split";
opts = {
enter = true;
format = "details";
};
filter = {
any = [
{ event = "notify"; }
{ error = true; }
{ warning = true; }
{
event = "msg_show";
kind = [ "" ];
}
{
event = "lsp";
kind = "message";
}
];
};
};
last = {
view = "popup";
opts = {
enter = true;
format = "details";
};
filter = {
any = [
{ event = "notify"; }
{ error = true; }
{ warning = true; }
{
event = "msg_show";
kind = [ "" ];
}
{
event = "lsp";
kind = "message";
}
];
};
filter_opts = {
count = 1;
};
};
errors = {
view = "popup";
opts = {
enter = true;
format = "details";
};
filter = {
error = true;
};
filter_opts = {
reverse = true;
};
};
};
notify = {
enabled = true;
view = "notify";
};
lsp = {
progress = {
enabled = true; enabled = true;
format = "lsp_progress"; view = "cmdline_popup";
formatDone = "lsp_progress_done";
throttle = 1000 / 30;
view = "mini";
};
override = {
"vim.lsp.util.convert_input_to_markdown_lines" = false;
"vim.lsp.util.stylize_markdown" = false;
"cmp.entry.get_documentation" = false;
};
hover = {
enabled = true;
view = null;
opts = { }; opts = { };
}; format = {
signature = { cmdline = {
enabled = true; pattern = "^:";
autoOpen = { icon = "";
enabled = true; lang = "vim";
trigger = true; };
luasnip = true; search_down = {
throttle = 50; kind = "search";
pattern = "^/";
icon = " ";
lang = "regex";
};
search_up = {
kind = "search";
pattern = "^%?";
icon = " ";
lang = "regex";
};
filter = {
pattern = "^:%s*!";
icon = "$";
lang = "bash";
};
lua = {
pattern = "^:%s*lua%s+";
icon = "";
lang = "lua";
};
help = {
pattern = "^:%s*he?l?p?%s+";
icon = "";
};
input = { };
}; };
view = null;
opts = { };
}; };
message = { messages = {
enabled = true; enabled = true;
view = "notify"; view = "notify";
opts = { }; view_error = "notify";
view_warn = "notify";
view_history = "messages";
view_search = "virtualtext";
}; };
documentation = { popupmenu = {
view = "hover"; enabled = true;
opts = { backend = "nui";
lang = "markdown"; kind_icons = { };
replace = true; };
render = "plain"; redirect = {
format = [ "{message}" ]; view = "popup";
win_options = { filter = {
concealcursor = "n"; event = "msg_show";
conceallevel = 3; };
};
commands = {
history = {
view = "split";
opts = {
enter = true;
format = "details";
};
filter = {
any = [
{ event = "notify"; }
{ error = true; }
{ warning = true; }
{
event = "msg_show";
kind = [ "" ];
}
{
event = "lsp";
kind = "message";
}
];
};
};
last = {
view = "popup";
opts = {
enter = true;
format = "details";
};
filter = {
any = [
{ event = "notify"; }
{ error = true; }
{ warning = true; }
{
event = "msg_show";
kind = [ "" ];
}
{
event = "lsp";
kind = "message";
}
];
};
filter_opts = {
count = 1;
};
};
errors = {
view = "popup";
opts = {
enter = true;
format = "details";
};
filter = {
error = true;
};
filter_opts = {
reverse = true;
}; };
}; };
}; };
}; notify = {
markdown = { enabled = true;
hover = { view = "notify";
"|(%S-)|" = "vim.cmd.help";
"%[.-%]%((%S-)%)" = ''require("noice.util").open'';
}; };
highlights = { lsp = {
"|%S-|" = "@text.reference"; progress = {
"@%S+" = "@parameter"; enabled = true;
"^%s*(Parameters:)" = "@text.title"; format = "lsp_progress";
"^%s*(Return:)" = "@text.title"; format_done = "lsp_progress_done";
"^%s*(See also:)" = "@text.title"; throttle = 1000 / 30;
"{%S-}" = "@parameter"; view = "mini";
};
override = {
"vim.lsp.util.convert_input_to_markdown_lines" = false;
"vim.lsp.util.stylize_markdown" = false;
"cmp.entry.get_documentation" = false;
};
hover = {
enabled = true;
view = null;
opts = { };
};
signature = {
enabled = true;
auto_open = {
enabled = true;
trigger = true;
luasnip = true;
throttle = 50;
};
view = null;
opts = { };
};
message = {
enabled = true;
view = "notify";
opts = { };
};
documentation = {
view = "hover";
opts = {
lang = "markdown";
replace = true;
render = "plain";
format = [ "{message}" ];
win_options = {
concealcursor = "n";
conceallevel = 3;
};
};
};
}; };
markdown = {
hover = {
"|(%S-)|" = "vim.cmd.help";
"%[.-%]%((%S-)%)" = ''require("noice.util").open'';
};
highlights = {
"|%S-|" = "@text.reference";
"@%S+" = "@parameter";
"^%s*(Parameters:)" = "@text.title";
"^%s*(Return:)" = "@text.title";
"^%s*(See also:)" = "@text.title";
"{%S-}" = "@parameter";
};
};
health = {
checker = true;
};
smart_move = {
enabled = true;
excluded_filetypes = [
"cmp_menu"
"cmp_docs"
"notify"
];
};
presets = {
bottom_search = false;
command_palette = false;
long_message_to_split = false;
inc_rename = false;
lsp_doc_border = false;
};
throttle = 1000 / 30;
views = { };
routes = [ ];
status = { };
format = { };
}; };
health = {
checker = true;
};
smartMove = {
enabled = true;
excludedFiletypes = [
"cmp_menu"
"cmp_docs"
"notify"
];
};
presets = {
bottom_search = false;
command_palette = false;
long_message_to_split = false;
inc_rename = false;
lsp_doc_border = false;
};
throttle = 1000 / 30;
views = { };
routes = [ ];
status = { };
format = { };
}; };
}; };
} }