diff --git a/rc/core/kakrc.kak b/rc/core/kakrc.kak index 85ddb374..ad86192c 100644 --- a/rc/core/kakrc.kak +++ b/rc/core/kakrc.kak @@ -15,25 +15,38 @@ add-highlighter -group / regions -default code kakrc \ comment (^|\h)\K\# $ '' \ double_string %{(^|\h)"} %{(?' '\<' \ + shell '-shell-(completion|candidates)\h+%\{' '\}' '\{' \ + shell '-shell-(completion|candidates)\h+%\(' '\)' '\(' \ + shell '-shell-(completion|candidates)\h+%\[' '\]' '\[' \ + shell '-shell-(completion|candidates)\h+%\<' '\>' '\<' %sh{ # Grammar keywords="hook|remove-hooks|rmhooks|add-highlighter|addhl|remove-highlighter|rmhl|exec|eval|source|runtime|define-command|def|alias" keywords="${keywords}|unalias|declare-option|decl|echo|edit|set-option|set|unset-option|unset|map|unmap|set-face|face|prompt|menu|info" keywords="${keywords}|try|catch|rename-client|rename-buffer|rename-session|change-directory|colorscheme" - values="default|black|red|green|yellow|blue|magenta|cyan|white" + attributes="global|buffer|window|current" + attributes="${attributes}|normal|insert|menu|prompt|goto|view|user|object" + attributes="${attributes}|number_lines|show_matching|show_whitespaces|fill|regex|dynregex|group|flag_lines|ranges|line|column|wrap|ref|regions" + types="int|bool|str|regex|int-list|str-list|line-flags|completions|range-faces" + values="default|black|red|green|yellow|blue|magenta|cyan|white|" # Add the language's grammar to the static completion list printf %s\\n "hook global WinSetOption filetype=kak %{ - set window static_words '${keywords}:${values}' + set window static_words '${keywords}:${attributes}:${types}:${values}' set -- window completion_extra_word_char '-' }" | sed 's,|,:,g' - # Highlight keywords + # Highlight keywords. Teach \b that - does not create a word boundary printf %s " - add-highlighter -group /kakrc/code regex \b(${keywords})\b 0:keyword - add-highlighter -group /kakrc/code regex \b(${values})\b 0:value + add-highlighter -group /kakrc/code regex \b(?