diff --git a/share/completions/set.fish b/share/completions/set.fish index f52209f03..a88fffe28 100644 --- a/share/completions/set.fish +++ b/share/completions/set.fish @@ -6,14 +6,17 @@ # Various helper functions # -function __fish_set_is_color -d 'Test if We are specifying a color value for the prompt' +function __fish_set_is_color -a foreground background -d 'Test if We are specifying a color value for the prompt' set -l cmd (commandline -poc) set -e cmd[1] for i in $cmd switch $i - + case fish_color_search_match fish_color_selection fish_pager_color_selected_background + $background + return case 'fish_color_*' 'fish_pager_color_*' - return 0 + $foreground + return case '-*' @@ -110,13 +113,13 @@ complete -c set -n '__fish_seen_argument -s e -l erase; and __fish_seen_argument complete -c set -n '__fish_seen_argument -s e -l erase; and __fish_seen_argument -s l -l local' -f -a "(set -l | string replace ' ' \t'Local Variable: ')" # Color completions -complete -c set -n __fish_set_is_color -x -a '(set_color --print-colors)' -d 'text color' -complete -c set -n __fish_set_is_color -a --background -x -a '(set_color --print-colors)' -complete -c set -n __fish_set_is_color -a --bold -x -complete -c set -n __fish_set_is_color -a --dim -x -complete -c set -n __fish_set_is_color -a --italics -x -complete -c set -n __fish_set_is_color -a --reverse -x -complete -c set -n __fish_set_is_color -a --underline -x +complete -c set -n '__fish_set_is_color true false' -x -a '(set_color --print-colors)' -d 'text color' +complete -c set -n '__fish_set_is_color false true' -a '--background=(set_color --print-colors)' +complete -c set -n '__fish_set_is_color true false' -a --bold -x +complete -c set -n '__fish_set_is_color true false' -a --dim -x +complete -c set -n '__fish_set_is_color true false' -a --italics -x +complete -c set -n '__fish_set_is_color true true' -a --reverse -x +complete -c set -n '__fish_set_is_color true false' -a --underline -x # Locale completions complete -c set -n '__fish_set_is_locale; and not __fish_seen_argument -s e -l erase' -x -a '(command -sq locale; and locale -a)' -d Locale