Просмотр исходного кода

Add short flags and fix broken flags in bash completion

- Parse help manually to be able to find short options
- Correctly propose options starting with colo[u]r
- Propose short options after - and long after --
Mélanie Chauvel 4 лет назад
Родитель
Сommit
0d645735d7
1 измененных файлов с 10 добавлено и 1 удалено
  1. 10 1
      completions/bash/exa

+ 10 - 1
completions/bash/exa

@@ -30,8 +30,17 @@ _exa()
     esac
 
     case "$cur" in
+        # _parse_help doesn’t pick up short options when they are on the same line than long options
+        --*)
+            # colo[u]r isn’t parsed correctly so we filter these options out and add them by hand
+            parse_help=$( exa --help | grep -oE ' (\-\-[[:alnum:]@-]+)' | tr -d ' ' | grep -v '\-\-colo' )
+            completions=$( echo '--color --colour --color-scale --colour-scale' $parse_help )
+            COMPREPLY=( $( compgen -W "$completions" -- "$cur" ) )
+            ;;
+
         -*)
-            COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) )
+            completions=$( exa --help | grep -oE ' (\-[[:alnum:]@])' | tr -d ' ' )
+            COMPREPLY=( $( compgen -W "$completions" -- "$cur" ) )
             ;;
 
         *)