|
|
|
@ -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 <...> |
|
|
|
|