From 5d13deda4e6c16a155c0ebab4c0372d36b8be751 Mon Sep 17 00:00:00 2001 From: Oliver Kiddle Date: Mon, 10 Nov 2008 15:28:41 +0000 Subject: add completion of globbing flags --- Completion/Unix/Type/_path_files | 6 +++++- Completion/Zsh/Type/.distfiles | 1 + Completion/Zsh/Type/_globflags | 33 +++++++++++++++++++++++++++++++++ Completion/Zsh/Type/_globquals | 6 +++--- 4 files changed, 42 insertions(+), 4 deletions(-) create mode 100644 Completion/Zsh/Type/_globflags (limited to 'Completion') diff --git a/Completion/Unix/Type/_path_files b/Completion/Unix/Type/_path_files index 8924ece8e..2e9e943b5 100644 --- a/Completion/Unix/Type/_path_files +++ b/Completion/Unix/Type/_path_files @@ -21,7 +21,11 @@ if [[ ( -o bareglobqual && \ $PREFIX = (#b)((*[^\\]|)(\\\\)#"(#q")([^\)]#) \ ) && -z $compstate[quote] ]]; then compset -p ${#match[1]} - _globquals + if [[ -o extendedglob ]] && compset -P '\#'; then + _globflags + else + _globquals + fi return fi diff --git a/Completion/Zsh/Type/.distfiles b/Completion/Zsh/Type/.distfiles index e7507f396..74a4e101d 100644 --- a/Completion/Zsh/Type/.distfiles +++ b/Completion/Zsh/Type/.distfiles @@ -7,6 +7,7 @@ _delimiters _directory_stack _file_descriptors _functions +_globflags _globqual_delims _globquals _history_modifiers diff --git a/Completion/Zsh/Type/_globflags b/Completion/Zsh/Type/_globflags new file mode 100644 index 000000000..2a32f6de0 --- /dev/null +++ b/Completion/Zsh/Type/_globflags @@ -0,0 +1,33 @@ +local ret=1 +local -a flags + +if compset -P a; then + _message -e numbers 'errors' + return +elif compset -P q; then + _globquals + return +fi + +flags=( + 'i:case insensitive' + 'l:lower case characters match uppercase' + 'I:case sensitive matching' + 's:match start of string' + 'e:match end of string' +) +[[ $compstate[context] = condition ]] && flags+=( + 'b:activate backreferences' + 'B:deactivate backreferences' + 'm:set reference to entire matched data' + 'M:deactivate m flag' +) + +_describe -t globflags "glob flag" flags -Q -S ')' && ret=0 +flags=( + 'a:approximate matching' + 'q:introduce glob qualifier' +) +_describe -t globflags "glob flag" flags -Q -S '' && ret=0 + +return ret diff --git a/Completion/Zsh/Type/_globquals b/Completion/Zsh/Type/_globquals index 0ad71b72c..f0c692621 100644 --- a/Completion/Zsh/Type/_globquals +++ b/Completion/Zsh/Type/_globquals @@ -25,7 +25,7 @@ while [[ -n $PREFIX ]]; do return elif ! _globqual_delims; then # still completing mode spec - _message "mode spec" + _message -e modes "mode spec" return fi fi @@ -57,7 +57,7 @@ while [[ -n $PREFIX ]]; do (d) # complete/skip device if ! compset -p '[[:digit:]]##'; then - _message "device ID" + _message -e device-ids "device ID" return fi ;; @@ -65,7 +65,7 @@ while [[ -n $PREFIX ]]; do (l) # complete/skip link count if ! compset -P '([-+]|)[[:digit:]]##'; then - _message "link count" + _message -e numbers "link count" return fi ;; -- cgit 1.4.1