Use wilder to improve vim's command menu
diff --git a/modules/neovim/wilder/default.nix b/modules/neovim/wilder/default.nix
new file mode 100644
index 0000000..fb0bde4
--- /dev/null
+++ b/modules/neovim/wilder/default.nix
@@ -0,0 +1,6 @@
+{pkgs, ...}: {
+ programs.neovim = {
+ plugins = [pkgs.vimPlugins.wilder-nvim];
+ extraConfig = builtins.readFile ./wilder.vim;
+ };
+}
diff --git a/modules/neovim/wilder/wilder.vim b/modules/neovim/wilder/wilder.vim
new file mode 100644
index 0000000..20f2bc0
--- /dev/null
+++ b/modules/neovim/wilder/wilder.vim
@@ -0,0 +1,34 @@
+call wilder#setup({'modes': [':', '/', '?']})
+
+call wilder#set_option('pipeline', [
+ \ wilder#branch(
+ \ wilder#cmdline_pipeline({
+ \ 'fuzzy': 1,
+ \ 'set_pcre2_pattern': 1,
+ \ }),
+ \ wilder#python_search_pipeline({
+ \ 'pattern': 'fuzzy',
+ \ }),
+ \ ),
+ \ ])
+
+let s:highlighters = [
+ \ wilder#pcre2_highlighter(),
+ \ wilder#basic_highlighter(),
+ \ ]
+
+call wilder#set_option('renderer', wilder#renderer_mux({
+ \ ':': wilder#popupmenu_renderer(wilder#popupmenu_border_theme({
+ \ 'highlighter': s:highlighters,
+ \ 'highlights': {
+ \ 'border': 'Normal',
+ \ },
+ \ 'border': 'rounded',
+ \ })),
+ \ '/': wilder#wildmenu_airline_theme({
+ \ 'highlighter': s:highlighters,
+ \ }),
+ \ '?': wilder#wildmenu_airline_theme({
+ \ 'highlighter': s:highlighters,
+ \ }),
+ \ }))