From 650e204c071a0faaf1f4073f5a0f0536cd738fed Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Tue, 17 Sep 2024 22:22:45 -0500 Subject: [PATCH] plugins/telescope-manix: init --- .../by-name/telescope/extensions/default.nix | 1 + .../by-name/telescope/extensions/manix.nix | 36 ++++++++++++++ .../plugins/by-name/telescope/manix.nix | 49 +++++++++++++++++++ 3 files changed, 86 insertions(+) create mode 100644 plugins/by-name/telescope/extensions/manix.nix create mode 100644 tests/test-sources/plugins/by-name/telescope/manix.nix diff --git a/plugins/by-name/telescope/extensions/default.nix b/plugins/by-name/telescope/extensions/default.nix index 7ba6bcd2..41383583 100644 --- a/plugins/by-name/telescope/extensions/default.nix +++ b/plugins/by-name/telescope/extensions/default.nix @@ -4,6 +4,7 @@ ./frecency.nix ./fzf-native.nix ./fzy-native.nix + ./manix.nix ./media-files.nix ./ui-select.nix ./undo.nix diff --git a/plugins/by-name/telescope/extensions/manix.nix b/plugins/by-name/telescope/extensions/manix.nix new file mode 100644 index 00000000..7c8b0ec5 --- /dev/null +++ b/plugins/by-name/telescope/extensions/manix.nix @@ -0,0 +1,36 @@ +{ + lib, + config, + pkgs, + ... +}: +let + inherit (lib.nixvim) defaultNullOpts; + telescopeHelpers = import ./_helpers.nix { inherit lib config pkgs; }; +in +telescopeHelpers.mkExtension { + name = "manix"; + package = "telescope-manix"; + + settingsOptions = { + manix_args = defaultNullOpts.mkListOf lib.types.str [ ] "CLI arguments to pass to manix."; + + cword = defaultNullOpts.mkBool false '' + Set to `true` if you want to use the current word as the search query. + ''; + }; + + settingsExample = { + cword = true; + }; + + extraOptions = { + manixPackage = lib.mkPackageOption pkgs "manix" { + nullable = true; + }; + }; + + extraConfig = cfg: { + extraPackages = [ pkgs.manix ]; + }; +} diff --git a/tests/test-sources/plugins/by-name/telescope/manix.nix b/tests/test-sources/plugins/by-name/telescope/manix.nix new file mode 100644 index 00000000..a411b7aa --- /dev/null +++ b/tests/test-sources/plugins/by-name/telescope/manix.nix @@ -0,0 +1,49 @@ +{ + empty = { + plugins.telescope = { + enable = true; + extensions.manix.enable = true; + }; + }; + + default = { + plugins.telescope = { + enable = true; + + extensions.manix = { + enable = true; + + settings = { + manix_args = [ ]; + cword = false; + }; + }; + }; + }; + + example = { + plugins.telescope = { + enable = true; + + extensions.manix = { + enable = true; + + settings = { + manix_args = [ "-s" ]; + cword = true; + }; + }; + }; + }; + + no-packages = { + plugins.telescope = { + enable = true; + + extensions.manix = { + enable = true; + manixPackage = null; + }; + }; + }; +}