fish: add command option for abbreviations (#6666)

The fish shell has added a flag to the abbr command which allows one to expand it only if it is typed after a real command e.g.:
git s -> git status
s -> s

Also see the last example here: https://fishshell.com/docs/current/cmds/abbr.html#examples
This commit is contained in:
Karun Sandhu
2025-03-20 04:43:42 +01:00
committed by GitHub
parent cfaa4426a3
commit 8675edf7d3
2 changed files with 17 additions and 1 deletions

View File

@@ -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 "";

View File

@@ -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"
'';