fish-shell/share/functions/__fish_whatis_current_token.fish
Johannes Altmanninger 9158395d10 Fix __fish_list_current_token and friends for multiline commandlines
Some of these handled multiline prompts but not multiline command lines. We
first need to move the cursor to the end of the commandline, then we can
print a message.  Finally, we need to move the cursor back to where it was.
2024-04-12 12:00:24 +02:00

30 lines
875 B
Fish

# This function is typically bound to Alt-W, it is used to list man page entries
# for the command under the cursor.
function __fish_whatis_current_token -d "Show man page entries or function description related to the token under the cursor"
set -l token (commandline -pt)
test -n "$token"
or return
set -l desc "$token: nothing appropriate."
set -l tokentype (type --type $token 2>/dev/null)
switch "$tokentype"
case function
set -l funcinfo (functions $token --details --verbose)
test $funcinfo[5] != n/a
and set desc "$token - $funcinfo[5]"
case builtin
set desc (__fish_print_help $token | awk "/./ {print; exit}")
case file
set -l tmpdesc (whatis $token 2>/dev/null)
and set desc $tmpdesc
end
__fish_echo string join \n -- $desc
end