mirror of
https://github.com/fish-shell/fish-shell.git
synced 2025-02-21 06:56:09 +08:00

The 'str' variable was apparently mistakenly removed by 49c5f964701b8bb92adbe3f448e86fea4337d70e. Re-add it, and regex-escape it as well. Allow completing on apropos <TAB> instaed of requiring an initial char. Use __fish_apropos instead of apropos. New regex to hopefully work on more platforms. Explicitly use ^ instead of adding it at __fish_apropos
25 lines
757 B
Fish
25 lines
757 B
Fish
#
|
|
# This function is used internally by the fish command completion code
|
|
#
|
|
|
|
# Perform this check once at startup rather than on each invocation
|
|
if not type -q apropos
|
|
function __fish_describe_command
|
|
end
|
|
exit
|
|
end
|
|
|
|
function __fish_describe_command -d "Command used to find descriptions for commands"
|
|
# $argv will be inserted directly into the awk regex, so it must be escaped
|
|
set -l argv_regex (string escape --style=regex -- "$argv")
|
|
__fish_apropos ^$argv 2>/dev/null | awk -v FS=" +- +" '{
|
|
split($1, names, ", ");
|
|
for (name in names)
|
|
if (names[name] ~ /^'"$argv_regex"'.* *\([18]\)/ ) {
|
|
sub( "( |\t)*\\\([18]\\\)", "", names[name] );
|
|
sub( " \\\[.*\\\]", "", names[name] );
|
|
print names[name] "\t" $2;
|
|
}
|
|
}'
|
|
end
|