diff options
Diffstat (limited to '')
-rw-r--r-- | completions/cppcheck | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/completions/cppcheck b/completions/cppcheck new file mode 100644 index 0000000..8ea9571 --- /dev/null +++ b/completions/cppcheck @@ -0,0 +1,91 @@ +# bash completion for cppcheck(1) -*- shell-script -*- + +_cppcheck() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + --append | --exitcode-suppressions | --rule-file | --config-excludes-file | \ + --suppressions-list | --includes-file | --include | -i) + _filedir + return + ;; + -D | -U | --rule | --suppress | --template | --max-configs | -h | --help | --version | \ + --errorlist | --config-exclude | -l) + return + ;; + --enable) + # split comma-separated list + split=false + if [[ $cur == ?*,* ]]; then + prev="${cur%,*}" + cur="${cur##*,}" + split=true + fi + COMPREPLY=($(compgen -W 'all warning style performance + portability information unusedFunction missingInclude' \ + -- "$cur")) + $split && COMPREPLY=(${COMPREPLY[@]/#/"$prev,"}) + return + ;; + --error-exitcode) + COMPREPLY=($(compgen -W '{0..255}' -- "$cur")) + return + ;; + --file-list) + _filedir + [[ -z $cur || $cur == - ]] && COMPREPLY+=(-) + return + ;; + -I) + _filedir -d + return + ;; + -j) + COMPREPLY=($(compgen -W "{2..$(_ncpus)}" -- "$cur")) + return + ;; + --language | -x) + COMPREPLY=($(compgen -W 'c c++' -- "$cur")) + return + ;; + --std) + COMPREPLY=($(compgen -W 'c89 c99 c11 c++03 c++11 c++14 c++17 + c++20' -- "$cur")) + return + ;; + --platform) + _filedir + COMPREPLY+=($(compgen -W 'unix32 unix64 win32A win32W win64 + native' -- "$cur")) + return + ;; + -rp | --relative-paths) + if $split; then # -rp without argument is allowed + _filedir -d + return + fi + ;; + --library) + _filedir cfg + return + ;; + --xml-version) + COMPREPLY=($(compgen -W '1 2' -- "$cur")) + return + ;; + esac + + $split && return + + if [[ $cur == -* ]]; then + COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur")) + [[ ${COMPREPLY-} == *= ]] && compopt -o nospace + else + _filedir '@([cht]pp|[cht]xx|cc|[ch]++|[ch])' + fi +} && + complete -F _cppcheck cppcheck + +# ex: filetype=sh |