diff --git a/modules/programs/fish.nix b/modules/programs/fish.nix index 1fb313a86..73691d5fb 100644 --- a/modules/programs/fish.nix +++ b/modules/programs/fish.nix @@ -167,6 +167,16 @@ let ''; }; + command = mkOption { + type = with types; nullOr str; + default = null; + description = '' + Specifies the command(s) for which the abbreviation should expand. If + set, the abbreviation will only expand when used as an argument to + the given command(s). + ''; + }; + setCursor = mkOption { type = with types; (either bool str); default = false; @@ -201,7 +211,7 @@ let (lib.generators.mkValueStringDefault { } v) ]; } { - inherit position regex function; + inherit position regex command function; set-cursor = setCursor; }; modifiers = if isAttrs def then mods else ""; diff --git a/tests/modules/programs/fish/abbrs.nix b/tests/modules/programs/fish/abbrs.nix index ce89bcb00..a46162cc3 100644 --- a/tests/modules/programs/fish/abbrs.nix +++ b/tests/modules/programs/fish/abbrs.nix @@ -34,6 +34,10 @@ end ''; }; + co = { + command = "git"; + expansion = "checkout"; + }; dotdot = { regex = "^\\.\\.+$"; function = "multicd"; @@ -64,6 +68,8 @@ cd .. end '" + assertFileContains home-files/.config/fish/config.fish \ + "abbr --add --command git -- co checkout" assertFileContains home-files/.config/fish/config.fish \ "abbr --add --function multicd --regex '^\.\.+$' -- dotdot" '';