summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrank LENORMAND <lenormf@gmail.com>2021-09-16 11:47:44 +0300
committerFrank LENORMAND <lenormf@gmail.com>2021-09-16 11:47:44 +0300
commit1815a352f690ca647160682e03d3e053a3bedfa3 (patch)
tree54b55d1b94bdb68caea768dd077cbcdac9af74a2
parentab1704ce108a7a7249f7417c4fec6aa2c8109944 (diff)
rc doc: Don't spawn processes unecessarily
-rw-r--r--rc/tools/doc.kak39
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