about summary refs log tree commit diff
path: root/Completion/Unix/Command/_less
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Unix/Command/_less')
-rw-r--r--Completion/Unix/Command/_less39
1 files changed, 35 insertions, 4 deletions
diff --git a/Completion/Unix/Command/_less b/Completion/Unix/Command/_less
index cb71314a6..0b474b991 100644
--- a/Completion/Unix/Command/_less
+++ b/Completion/Unix/Command/_less
@@ -1,7 +1,7 @@
 #compdef less -value-,LESS,-default- -value-,LESSCHARSET,-default-
 
-local curcontext="$curcontext" state line expl ret=1
-local -a files
+local curcontext="$curcontext" fgbg=foreground ret=1
+local -a state line expl files basic suf
 
 case $service in
   *LESSCHARSET*)
@@ -37,15 +37,15 @@ _arguments -S -s -A "[-+]*"  \
   '(-b --buffers)'{-b+,--buffers=}'[specify amount of buffer space used for each file]:buffer space (kilobytes)' \
   '(-B --auto-buffers)'{-B,--auto-buffers}"[don't automatically allocate buffers for pipes]" \
   '(-C --CLEAR-SCREEN -c --clear-screen)'{-c,--clear-screen}'[repaint screen instead of scrolling]' \
-  '(-c --clear-screen -C --CLEAR-SCREEN)'{-C,--CLEAR-SCREEN}'[clear screen before repaints]' \
+  '!(-c --clear-screen)'{-C,--CLEAR-SCREEN} \
   '(-d --dumb)'{-d,--dumb}'[suppress error message if terminal is dumb]' \
+  '*-D+[set screen colors]: :->colors' \
   '(-e -E --quit-at-eof --QUIT-AT-EOF)'{-e,--quit-at-eof}'[exit the second time end-of-file is reached]' \
   '(-e -E --quit-at-eof --QUIT-AT-EOF)'{-E,--QUIT-AT-EOF}'[exit when end-of-file is reached]' \
   '(-f --force)'{-f,--force}'[force opening of non-regular files]' \
   '(-F --quit-if-one-screen)'{-F,--quit-if-one-screen}'[exit if entire file fits on first screen]' \
   '(-G --HILITE-SEARCH -g --hilite-search)'{-g,--hilite-search}'[highlight only one match for searches]' \
   '(-g --hilite-search -G --HILITE-SEARCH)'{-G,--HILITE-SEARCH}'[disable highlighting of search matches]' \
-  '--old-bot[revert to the old bottom of screen behavior]' \
   '(-h --max-back-scroll)'{-h+,--max-back-scroll=}'[specify backward scroll limit]:backward scroll limit (lines)' \
   '(-I --IGNORE-CASE -i --ignore-case)'{-i,--ignore-case}'[ignore case in searches that lack uppercase]' \
   '(-i --ignore-case -I --IGNORE-CASE)'{-I,--IGNORE-CASE}'[ignore case in all searches]' \
@@ -83,18 +83,49 @@ _arguments -S -s -A "[-+]*"  \
   '(-\" --quotes)'{-\"+,--quotes=}'[change quoting character]:quoting characters' \
   '(-~ --tilde)'{-~,--tilde}"[don't display tildes after end of file]" \
   '(-\# --shift)'{-\#+,--shift=}"[specify amount to move when scrolling horizontally]:number" \
+  '--file-size[automatically determine the size of the input file]' \
+  '--incsearch[search file as each pattern character is typed in]' \
+  '--line-num-width=[set the width of line number field]:width [7]' \
   '--follow-name[the F command changes file if the input file is renamed]' \
   '--mouse[enable mouse input]' \
   '--no-histdups[remove duplicates from command history]' \
   '--rscroll=[set the character used to mark truncated lines]:character [>]' \
   '--save-marks[retain marks across invocations of less]' \
+  '--status-col-width=[set the width of the -J status column]:width [2]' \
   '--use-backslash[subsequent options use backslash as escape char]' \
+  '--use-color[enable colored text]' \
   '--wheel-lines=[specify lines to move for each click of the mouse wheel]:lines' \
   "$files[@]" && ret=0
 
 
 if [[ -n "$state" ]]; then
   case $state in
+    colors)
+      if compset -P 1 \?; then
+        [[ $IPREFIX[-1] != [a-z] ]] || compset -P 1 + || _describe 'color application' '( +:add\ to\ existing\ attribute )'
+        suf=( -S '' )
+        compset -P 1 '([a-zA-Z]|*.)' && fgbg=background && suf=()
+        basic=( B:blue C:cyan G:green K:black M:magenta R:red W:white Y:yellow )
+        _describe -t colors "$fgbg color" \
+            "( -:default ${(j. .)${(@)basic/:/:light\ }} ${(Lj. .)basic} )" "$suf[@]"  && ret=0
+      else
+        _describe 'text' '(
+          B:binary\ characters
+          C:control\ characters
+          E:errors\ and\ informational\ messages
+          M:mark\ letters\ in\ the\ status\ column
+          N:line\ numbers\ enabled\ via\ the\ -N\ option
+          P:prompts
+          R:the\ rscroll\ character
+          S:search\ results
+          W:the\ highlight\ enabled\ via\ the\ -w\ option
+          d:bold\ text
+          k:blinking\ text
+          s:standout\ text
+          u:underlined\ text
+        )' -S '' && ret=0
+      fi
+    ;;
     prompts)
       if compset -p 1; then
 	_message -e prompt