nixvimConfigs/fiesta/setups/fuzzy-finder: init

This commit is contained in:
Gabriel Arazas 2024-01-30 18:04:56 +08:00
parent 3bdaa63231
commit fc7eb5f7de
No known key found for this signature in database
GPG Key ID: ADE0C41DAB221FCC
3 changed files with 90 additions and 0 deletions
configs/nixvim/fiesta

View File

@ -9,6 +9,7 @@
ui.enable = true;
completion.enable = true;
treesitter.enable = true;
fuzzy-finder.enable = true;
debugging.enable = true;
desktop-utils.enable = true;
note-taking.enable = true;

View File

@ -3,6 +3,7 @@
./setups/completion.nix
./setups/debugging.nix
./setups/desktop-utils.nix
./setups/fuzzy-finder.nix
./setups/snippets
./setups/treesitter.nix
./setups/ui.nix

View File

@ -0,0 +1,88 @@
{ config, lib, ... }:
let
nixvimCfg = config.nixvimConfigs.fiesta;
cfg = nixvimCfg.setups.fuzzy-finder;
in
{
options.nixvimConfigs.fiesta.setups.fuzzy-finder.enable =
lib.mkEnableOption "fuzzy finder setup";
config = lib.mkIf cfg.enable {
plugins.telescope.enable = true;
# Configure all of the keymaps.
keymaps =
let
bindingPrefix = "<leader>f";
mkTelescopeKeymap = acc: binding: settings:
acc ++ [
(lib.mergeAttrs {
mode = "n";
key = "${bindingPrefix}${binding}";
} settings)
];
in
lib.foldlAttrs mkTelescopeKeymap [ ] ({
"A" = {
options.desc = "Resume from last use";
action = "require('telescope.builtin').resume";
lua = true;
};
"b" = {
options.desc = "List buffers";
action = "require('telescope.builtin').buffers";
lua = true;
};
"f" = {
options.desc = "Find files";
action = ''
function()
require('telescope.builtin').find_files { hidden = true }
end
'';
lua = true;
};
"F" = {
options.desc = "Find files in current directory";
action = ''
function()
require('telescope.builtin').find_files {
cwd = require('telescope.utils').buffer_dir(),
hidden = true,
}
end
'';
lua = true;
};
"g" = {
options.desc = "Find files tracked by Git";
action = "require('telescope.builtin').git_files";
lua = true;
};
"G" = {
options.desc = "Live grep for the whole project";
action = "require('telescope.builtin').live_grep";
lua = true;
};
"h" = {
options.desc = "Find section from help tags";
action = "require('telescope.builtin').help_tags";
lua = true;
};
"m" = {
options.desc = "Find manpage entries";
action = "require('telescope.builtin').man_pages";
lua = true;
};
}
// lib.optionalAttrs nixvimCfg.setups.treesitter.enable {
"t" = {
options.desc = "List symbols from treesitter queries";
action = "require('telescope.builtin').treesitter";
lua = true;
};
});
};
}