diff options
| author | Frank LENORMAND <lenormf@gmail.com> | 2021-09-16 11:47:44 +0300 |
|---|---|---|
| committer | Frank LENORMAND <lenormf@gmail.com> | 2021-09-16 11:47:44 +0300 |
| commit | 1815a352f690ca647160682e03d3e053a3bedfa3 (patch) | |
| tree | 54b55d1b94bdb68caea768dd077cbcdac9af74a2 | |
| parent | ab1704ce108a7a7249f7417c4fec6aa2c8109944 (diff) | |
rc doc: Don't spawn processes unecessarily
| -rw-r--r-- | rc/tools/doc.kak | 39 |
1 files changed, 20 insertions, 19 deletions
diff --git a/rc/tools/doc.kak b/rc/tools/doc.kak index 410f3d34..d5227ee4 100644 --- a/rc/tools/doc.kak +++ b/rc/tools/doc.kak @@ -136,29 +136,30 @@ define-command -params 1 -hidden doc-render %{ define-command -params 0..2 \ -shell-script-candidates %{ - if [ "$kak_token_to_complete" -eq 0 ]; then - find -L \ - "${kak_config}/autoload/" \ - "${kak_runtime}/doc/" \ - "${kak_runtime}/rc/" \ - -type f -name "*.asciidoc" 2>/dev/null | - sed 's,.*/,,; s/\.[^.]*$//' - elif [ "$kak_token_to_complete" -eq 1 ]; then - page=$( + case "$kak_token_to_complete" in + 0) find -L \ "${kak_config}/autoload/" \ "${kak_runtime}/doc/" \ "${kak_runtime}/rc/" \ - -type f -name "$1.asciidoc" 2>/dev/null | - head -1 - ) - if [ -f "${page}" ]; then - awk ' - /^==+ +/ { sub(/^==+ +/, ""); print } - /^\[\[[^\]]+\]\]/ { sub(/^\[\[/, ""); sub(/\]\].*/, ""); print } - ' < $page | tr '[A-Z ]' '[a-z-]' - fi - fi + -type f -name "*.asciidoc" 2>/dev/null | + sed 's,.*/,,; s/\.[^.]*$//';; + 1) + page=$( + find -L \ + "${kak_config}/autoload/" \ + "${kak_runtime}/doc/" \ + "${kak_runtime}/rc/" \ + -type f -name "$1.asciidoc" 2>/dev/null | + head -1 + ) + if [ -f "${page}" ]; then + awk ' + /^==+ +/ { sub(/^==+ +/, ""); print } + /^\[\[[^\]]+\]\]/ { sub(/^\[\[/, ""); sub(/\]\].*/, ""); print } + ' < $page | tr '[A-Z ]' '[a-z-]' + fi;; + esac } \ doc -docstring %{ doc <topic> [<keyword>]: open a buffer containing documentation about a given topic |
