From fe3e6f05b984ac0966ceb0ccaadbaa0f3a933eb5 Mon Sep 17 00:00:00 2001 From: abrzozowski Date: Sat, 9 Oct 2021 17:58:41 +0200 Subject: [PATCH] Extend bash completion to profile and layout --- completion/bash | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/completion/bash b/completion/bash index 8f5bb349..6e54db78 100644 --- a/completion/bash +++ b/completion/bash @@ -5,10 +5,15 @@ _terminator() local cur prev words cword _init_completion || return - COMPREPLY=($(compgen -W "$($1 --help | tr ',' '\n' | - command sed -n -e 's/ *\(--\?[a-zA-Z\-]\+=\?\).*/\1/p')"\ - -- "$cur")) -} && - complete -F _terminator terminator + local OPTS_FILTER='s/.*\(--[-A-Za-z0-9]\{1,\}=\{0,1\}\).*/\1/p' + local exe_opts=$($1 -h 2>&1 | sed -ne $OPTS_FILTER | sort -u) -# ex: filetype=sh + if [[ "${prev}" == "--profile" || "${prev}" == "-p" ]]; then + COMPREPLY=($(compgen -W "$($1 --list-profiles | tr -d \' | sed 's/[][,]//g')" -- ${cur})) + elif [[ "${prev}" == "--layout" || "${prev}" == "-l" ]]; then + COMPREPLY=($(compgen -W "$($1 --list-layouts | tr -d \' | sed 's/[][,]//g')" -- ${cur})) + else + COMPREPLY=($(compgen -W "${exe_opts}" -- ${cur})) + fi +} && +complete -F _terminator terminator