Skip to content

Instantly share code, notes, and snippets.

@yamaguchi1024
Created June 24, 2017 13:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yamaguchi1024/0f798bf4aba8ab10fec65082b5715f03 to your computer and use it in GitHub Desktop.
Save yamaguchi1024/0f798bf4aba8ab10fec65082b5715f03 to your computer and use it in GitHub Desktop.
# Please add "source /path/to/bash-autocomplete.sh" to your .bashrc to use this.
_clang()
{
local cur prev words cword arg
_init_completion -n : || return
local w1="${COMP_WORDS[$cword - 1]}"
local w2="${COMP_WORDS[$cword - 2]}"
if [[ "$cur" == -* ]]; then
# -foo<tab>
arg="$cur"
elif [[ "$w1" == -* && "$cur" == '=' ]]; then
# -foo=<tab>
arg="$w1=,"
elif [[ "$w1" == -* ]]; then
# -foo <tab> or -foo bar<tab>
arg="$w1,$cur"
elif [[ "$w2" == -* && "$w1" == '=' ]]; then
# -foo=bar<tab>
arg="$w2=,$cur"
else
_filedir
fi
flags=$( /home/yamaguchi/test-build/bin/clang-5.0 --autocomplete="$arg" )
if [[ "$cur" == "=" ]]; then
COMPREPLY=( $( compgen -W "$flags" -- "") )
elif [[ "$flags" == "" ]]; then
_filedir
else
if [[ ${flags: -1} == "=" ]]; then
compopt -o nospace
fi
COMPREPLY=( $( compgen -W "$flags" -- "$cur" ) )
fi
}
complete -F _clang clang
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment