aboutsummaryrefslogtreecommitdiffhomepage
path: root/init
diff options
context:
space:
mode:
authorGravatar axel <axel@liljencrantz.se>2006-01-16 06:03:03 +1000
committerGravatar axel <axel@liljencrantz.se>2006-01-16 06:03:03 +1000
commit83629e28c82beeffaa095e19a127fa726a213640 (patch)
tree2e541dfba6b5781e9d27db2e2f90440b47b34a3e /init
parent645af56d77e038e89e761bcd33d803987e3be1c2 (diff)
Add completions for the set builtin to handle completions of locale variables and locale names
darcs-hash:20060115200303-ac50b-c195155551b0b77ddf8b6ab5c3d3f9c6506a82b7.gz
Diffstat (limited to 'init')
-rw-r--r--init/completions/set.fish70
1 files changed, 58 insertions, 12 deletions
diff --git a/init/completions/set.fish b/init/completions/set.fish
index f7ddbf3d..4ca20140 100644
--- a/init/completions/set.fish
+++ b/init/completions/set.fish
@@ -1,14 +1,22 @@
+#
+# Completions for the 'set' builtin
+#
+
+#
+# We depend on set_color completions for color definitions
+#
complete -y set_color
-complete -c set -s e -l erase -d (_ "Erase variable")
-complete -c set -s x -l export -d (_ "Export variable to subprocess")
-complete -c set -s u -l unexport -d (_ "Do not export variable to subprocess")
-complete -c set -s g -l global -d (_ "Make variable scope global")
-complete -c set -s l -l local -d (_ "Make variable scope local")
-complete -c set -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 -s q -l query -d (_ "Test if variable is defined")
-complete -c set -s h -l help -d (_ "Display help and exit")
+#
+# 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
+
+#
+# Verious helper functions
+#
function __fish_set_is_first -d 'Test if no non-switch argument has been specified yet'
set -- cmd (commandline -poc)
@@ -24,11 +32,9 @@ function __fish_set_is_first -d 'Test if no non-switch argument has been specifi
return 0
end
-complete -c set -n '__fish_set_is_first' -x -a "(set|sed -e 's/ /\tVariable: /')"
-
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]
+ set cmd (commandline -poc)
+ set -e cmd[1]
for i in $cmd
switch $i
@@ -41,6 +47,46 @@ function __fish_set_is_color -d 'Test if We are specifying a color value for the
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
+#
+
+complete -c set -s e -l erase -d (_ "Erase variable")
+complete -c set -s x -l export -d (_ "Export variable to subprocess")
+complete -c set -s u -l unexport -d (_ "Do not export variable to subprocess")
+complete -c set -s g -l global -d (_ "Make variable scope global")
+complete -c set -s l -l local -d (_ "Make variable scope local")
+complete -c set -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 -s q -l query -d (_ "Test if variable is defined")
+complete -c set -s h -l help -d (_ "Display help and exit")
+
+# Complete using preexisting variables
+complete -c set -n '__fish_set_is_first' -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)
+
+# Locale completions
+complete -c set -n '__fish_set_is_first' -x -a '$__fish_locale_vars' -d 'Locale variable'
+complete -c set -n '__fish_set_is_locale' -x -a '(locale -a)' -d (_ Locale)