Use complete-command for the :doc command
This commit is contained in:
parent
d1bfc5ecdc
commit
e43c7d6aba
|
@ -134,34 +134,7 @@ define-command -params 1 -hidden doc-render %{
|
||||||
map buffer normal <ret> :doc-follow-link<ret>
|
map buffer normal <ret> :doc-follow-link<ret>
|
||||||
}
|
}
|
||||||
|
|
||||||
define-command -params 0..2 \
|
define-command doc -params 0..2 -menu -docstring %{
|
||||||
-shell-script-candidates %{
|
|
||||||
case "$kak_token_to_complete" in
|
|
||||||
0)
|
|
||||||
find -L \
|
|
||||||
"${kak_config}/autoload/" \
|
|
||||||
"${kak_runtime}/doc/" \
|
|
||||||
"${kak_runtime}/rc/" \
|
|
||||||
-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
|
|
||||||
} -menu \
|
|
||||||
doc -docstring %{
|
|
||||||
doc <topic> [<keyword>]: open a buffer containing documentation about a given topic
|
doc <topic> [<keyword>]: open a buffer containing documentation about a given topic
|
||||||
An optional keyword argument can be passed to the function, which will be automatically selected in the documentation
|
An optional keyword argument can be passed to the function, which will be automatically selected in the documentation
|
||||||
|
|
||||||
|
@ -192,4 +165,31 @@ define-command -params 0..2 \
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
complete-command doc shell-script-candidates %{
|
||||||
|
case "$kak_token_to_complete" in
|
||||||
|
0)
|
||||||
|
find -L \
|
||||||
|
"${kak_config}/autoload/" \
|
||||||
|
"${kak_runtime}/doc/" \
|
||||||
|
"${kak_runtime}/rc/" \
|
||||||
|
-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
|
||||||
|
}
|
||||||
|
|
||||||
alias global help doc
|
alias global help doc
|
||||||
|
|
Loading…
Reference in New Issue
Block a user