provide-module fishr %~ define-command fish -params 1.. -docstring %{ fish [code]: Execute provided fish code, evaluating its output as Kakoune commands. } %{ evaluate-commands %sh{ quote() { printf "'%s'" "$(printf "%s" "$1" | sed "s/'/'\\\\''/g")" } cmd=$(quote "$*") vars=$(printf '%s\n' "$@" | grep -o 'kak_\w\+' | tr '\n' ' ') printf "eval %%sh{fish -c %s # %s}" "$cmd" "$vars" } } require-module fish require-module kak add-highlighter shared/kakrc/code/fish regex (?:\s|\A)\Kfish(?:(?=\s)|\z) 0:keyword add-highlighter shared/kakrc/fish1 region -recurse '\{' '(^|\h)fish([\s{}\w%/$-|''"])* %\{\K' '\}' ref fish add-highlighter shared/kakrc/fish2 region -recurse '\(' '(^|\h)fish([\s{}\w%/$-|''"])* %\(\K' '\)' ref fish add-highlighter shared/kakrc/fish3 region -recurse '\[' '(^|\h)fish([\s{}\w%/$-|''"])* %\[\K' '\]' ref fish add-highlighter shared/kakrc/fish4 region -recurse '<' '(^|\h)fish([\s{}\w%/$-|''"])* %<\K' '>' ref fish ~