aboutsummaryrefslogtreecommitdiffhomepage
path: root/share/completions/set.fish
diff options
context:
space:
mode:
Diffstat (limited to 'share/completions/set.fish')
-rw-r--r--share/completions/set.fish77
1 files changed, 77 insertions, 0 deletions
diff --git a/share/completions/set.fish b/share/completions/set.fish
new file mode 100644
index 00000000..77e64972
--- /dev/null
+++ b/share/completions/set.fish
@@ -0,0 +1,77 @@
+#
+# Completions for the 'set' builtin
+#
+
+#
+# All locale variables used by set completions
+#
+
+set -g __fish_locale_vars LANG LC_ALL LC_COLLATE LC_CTYPE LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME
+
+#
+# Various helper functions
+#
+
+function __fish_set_is_color -d 'Test if We are specifying a color value for the prompt'
+ set cmd (commandline -poc)
+ set -e cmd[1]
+ for i in $cmd
+ switch $i
+
+ case 'fish_color_*' 'fish_pager_color_*'
+ return 0
+
+ case '-*'
+
+ case '*'
+ return 1
+ end
+ end
+ return 1
+end
+
+function __fish_set_is_locale -d 'Test if We are specifying a locale value for the prompt'
+ set cmd (commandline -poc)
+ set -e cmd[1]
+ for i in $cmd
+ switch $i
+
+ case $__fish_locale_vars
+ return 0
+
+ case '-*'
+
+ case '*'
+ return 1
+ end
+ end
+ return 1
+end
+
+#
+# Completions
+#
+
+# Regular switches, set only accepts these before the variable name,
+# so we need to test using __fish_is_first_token
+
+complete -c set -n '__fish_is_first_token' -s e -l erase -d (_ "Erase variable")
+complete -c set -n '__fish_is_first_token' -s x -l export -d (_ "Export variable to subprocess")
+complete -c set -n '__fish_is_first_token' -s u -l unexport -d (_ "Do not export variable to subprocess")
+complete -c set -n '__fish_is_first_token' -s g -l global -d (_ "Make variable scope global")
+complete -c set -n '__fish_is_first_token' -s l -l local -d (_ "Make variable scope local")
+complete -c set -n '__fish_is_first_token' -s U -l universal -d (_ "Make variable scope universal, i.e. share variable with all the users fish processes on this computer")
+complete -c set -n '__fish_is_first_token' -s q -l query -d (_ "Test if variable is defined")
+complete -c set -n '__fish_is_first_token' -s h -l help -d (_ "Display help and exit")
+
+# Complete using preexisting variable names
+complete -c set -n '__fish_is_first_token' -x -a "(set|sed -e 's/ /\tVariable: /')"
+
+# Color completions
+complete -c set -n '__fish_set_is_color' -x -a '(set_color --print-colors)' -d (_ Color)
+complete -c set -n '__fish_set_is_color' -s b -l background -x -a '(set_color --print-colors)' -d (_ "Change background color")
+complete -c set -n '__fish_set_is_color' -s o -l bold -d (_ 'Make font bold')
+
+# Locale completions
+complete -c set -n '__fish_is_first_token' -x -a '$__fish_locale_vars' -d 'Locale variable'
+complete -c set -n '__fish_set_is_locale' -x -a '(locale -a)' -d (_ Locale)