diff --git a/configs/home-manager/foo-dogsquared/modules/programs/nixvim/default.nix b/configs/home-manager/foo-dogsquared/modules/programs/nixvim/default.nix index c28473b8..c31352d3 100644 --- a/configs/home-manager/foo-dogsquared/modules/programs/nixvim/default.nix +++ b/configs/home-manager/foo-dogsquared/modules/programs/nixvim/default.nix @@ -17,6 +17,7 @@ in imports = [ ./colorschemes.nix + ./fuzzy-finding.nix ./misc.nix ./note-taking.nix ] diff --git a/configs/home-manager/foo-dogsquared/modules/programs/nixvim/fuzzy-finding.nix b/configs/home-manager/foo-dogsquared/modules/programs/nixvim/fuzzy-finding.nix new file mode 100644 index 00000000..0d48ecbb --- /dev/null +++ b/configs/home-manager/foo-dogsquared/modules/programs/nixvim/fuzzy-finding.nix @@ -0,0 +1,42 @@ +{ config, lib, helpers, hmConfig, ... }: + +let + inherit (hmConfig.xdg) userDirs; + telescopeExtensions = config.plugins.telescope.extensions; +in +{ + plugins.telescope.extensions.frecency = { + enable = true; + settings = { + show_scores = true; + show_unindexed = true; + workspaces = { + writings = "${userDirs.documents}/Writings"; + packages = "${userDirs.extraConfig.XDG_PROJECTS_DIR}/packages"; + software = "${userDirs.extraConfig.XDG_PROJECTS_DIR}/software"; + }; + }; + }; + + plugins.telescope.extensions.live-grep-args = { + enable = true; + }; + + plugins.telescope.keymaps = lib.mkMerge [ + (lib.mkIf telescopeExtensions.frecency.enable { + "fp" = { + mode = "n"; + options.desc = "List projects"; + action = helpers.mkRaw "require('telescope').extensions.project.project{}"; + }; + }) + + (lib.mkIf telescopeExtensions.live-grep-args.enable { + "fG" = { + mode = "n"; + options.desc = "Live grep (with args) for the whole project"; + action = helpers.mkRaw "require('telescope').extensions.live_grep_args.live_grep_args"; + }; + }) + ]; +}