diff options
-rw-r--r-- | data/shell-completions/zsh/_meson | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/data/shell-completions/zsh/_meson b/data/shell-completions/zsh/_meson index 481d04c..b48b0f8 100644 --- a/data/shell-completions/zsh/_meson +++ b/data/shell-completions/zsh/_meson @@ -49,8 +49,22 @@ local -a meson_commands=( # TODO: implement build option completion (( $+functions[__meson_build_options] )) || __meson_build_options() {} -# TODO: implement target name completion -(( $+functions[__meson_targets] )) || __meson_targets() {} + +(( $+functions[__meson_targets] )) || __meson_targets() { + local tests_json + # TODO: get builddir out of the cmdline and pass it here + if tests_json="$(_call_program meson meson introspect --targets)"; + then + local -a tests_ids=$(_call_program python3 python3 -c 'import sys, json; +for target in json.load(sys.stdin): + print(target["id"]) +' <<< "$tests_json") + _describe -t "tests" "Meson tests IDs" tests_ids + else + _message -r "current working directory is not a build directory" + fi +} + # `meson introspect` currently can provide that information in JSON. # We can: # 1) pipe its output to python3 -m json.tool | grep "$alovelyregex" | cut <...> |