130 lines
3.7 KiB
Bash
130 lines
3.7 KiB
Bash
# clang-uml completion -*- shell-script -*-
|
|
|
|
##
|
|
## packaging/autocomplete/clang-uml.bash-completion
|
|
##
|
|
## Copyright (c) 2021-2024 Bartek Kryza <bkryza@gmail.com>
|
|
##
|
|
## Licensed under the Apache License, Version 2.0 (the "License");
|
|
## you may not use this file except in compliance with the License.
|
|
## You may obtain a copy of the License at
|
|
##
|
|
## http://www.apache.org/licenses/LICENSE-2.0
|
|
##
|
|
## Unless required by applicable law or agreed to in writing, software
|
|
## distributed under the License is distributed on an "AS IS" BASIS,
|
|
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
## See the License for the specific language governing permissions and
|
|
## limitations under the License.
|
|
##
|
|
|
|
#
|
|
# Check if this is OSX, if so defined custom init_completion
|
|
#
|
|
if [[ `uname` =~ "Darwin" ]]; then
|
|
__osx_init_completion()
|
|
{
|
|
COMPREPLY=()
|
|
_get_comp_words_by_ref cur prev words cword
|
|
}
|
|
fi
|
|
|
|
declare -a generators
|
|
generators=(
|
|
"plantuml"
|
|
"json"
|
|
"mermaid"
|
|
)
|
|
|
|
_clanguml() {
|
|
local cur
|
|
local prev
|
|
local words
|
|
local cword
|
|
|
|
#
|
|
# Check if the _init_completion function is available, which is
|
|
# available since bash-completion 1.4
|
|
#
|
|
if [[ `uname` =~ "Darwin" ]]; then
|
|
__osx_init_completion || return
|
|
else
|
|
_init_completion -s || return
|
|
fi
|
|
|
|
|
|
case $prev in
|
|
-d|--compile-database)
|
|
_filedir -d
|
|
return
|
|
;;
|
|
-o|--output-directory)
|
|
_filedir -d
|
|
return
|
|
;;
|
|
-n|--diagram-name)
|
|
COMPREPLY=()
|
|
local diagrams=`clang-uml -l | tail -n +2 | cut -c5- | awk '{ print $1 }'`
|
|
|
|
COMPREPLY=( $(compgen -W "${diagrams}" -- $cur))
|
|
return
|
|
;;
|
|
--show-template)
|
|
COMPREPLY=()
|
|
local templates=`clang-uml --list-templates | tail -n +2 | cut -c5- | awk '{ print $1 }'`
|
|
|
|
COMPREPLY=( $(compgen -W "${templates}" -- $cur))
|
|
return
|
|
;;
|
|
-g|--generator)
|
|
local generators_list=`echo "${generators[@]}"`
|
|
COMPREPLY=($(compgen -o nospace -W "${generators_list[@]}" -- "$cur"))
|
|
return
|
|
;;
|
|
esac
|
|
|
|
case $cur in
|
|
-*)
|
|
COMPREPLY=( $( compgen -W '-h --help \
|
|
-V --version \
|
|
-c --config \
|
|
-t --thread-count \
|
|
-v --verbose \
|
|
-p --progress \
|
|
-q --quiet \
|
|
-l --list-diagrams \
|
|
-r --render_diagrams \
|
|
--init \
|
|
--add-compile-flag \
|
|
--remove-compile-flag \
|
|
--query-driver \
|
|
--allow-empty-diagrams \
|
|
--add-class-diagram \
|
|
--add-sequence-diagram \
|
|
--add-package-diagram \
|
|
--add-include-diagram \
|
|
--add-diagram-from-template \
|
|
--template-var \
|
|
--list-templates \
|
|
--show-template \
|
|
--dump-config \
|
|
--paths-relative-to-pwd \
|
|
--no-metadata \
|
|
--print-from \
|
|
--print-to \
|
|
--no-validate \
|
|
--validate-only \
|
|
--plantuml-cmd \
|
|
--mermaid-cmd' -- $cur ) )
|
|
return
|
|
;;
|
|
esac
|
|
|
|
#
|
|
# By default do nothing
|
|
#
|
|
return 0
|
|
|
|
} &&
|
|
complete -F _clanguml clang-uml
|