{"name":"Kakoune Script","scopeName":"source.kakscript","patterns":[{"include":"#kakscript"}],"repository":{"boolean":{"name":"constant.language.boolean.$1.kakscript","match":"\\b(yes|no|false|true)\\b"},"builtinOption":{"name":"support.variable.kakscript","match":"\\b(tabstop|indentwidth|scrolloff|eolformat|BOM|readonly|incsearch|aligntab|autoinfo|autocomplete|ignored_files|disabled_hooks|filetype|path|completers|static_words|extra_word_chars|matching_pairs|autoreload|writemethod|debug|idle_timeout|fs_check_timeout|modelinefmt|ui_options|startup_info_version)\\b"},"builtinVariable":{"name":"support.constant.kakscript","match":"\\b(bufname|buffile|buflist|buf_line_count|timestamp|history_id|selection|selections|runtime|config|version|session|client|client_pid|client_list|modified|cursor_line|cursor_column|cursor_char_value|cursor_char_column|cursor_display_column|cursor_byte_offset|selection_desc|selections_desc|selections_char_desc|selections_display_column_desc|selection_length|selections_length|window_width|window_height|user_modes|window_range|history|uncommitted_modifications|(?:opt_|main_reg_|reg_|client_env_)\\w+)\\b"},"colour":{"name":"support.constant.colour.color.$1.kakscript","match":"\\b(default|(?:bright-)?(?:black|red|green|yellow|blue|magenta|cyan|white))\\b"},"command":{"patterns":[{"name":"support.function.command.$1-force.kakscript","match":"\\b(edit|write|kill|quit|write-quit|delete-buffer)!"},{"name":"support.function.command.$1.kakscript","match":"\\b(edit|write|write-all|kill|quit|write-quit|write-all-quit|map|unmap|alias|unalias|buffer|buffer-next|buffer-previous|delete-buffer|add-highlighter|remove-highlighter|hook|trigger-user-hook|remove-hooks|define-command|echo|debug|source|try|catch|fail|nop|set-option|unset-option|update-option|declare-option|execute-keys|evaluate-commands|prompt|menu|on-key|info|set-face|unset-face|rename-client|set-register|select|change-directory|rename-session|colorscheme|declare-user-mode|enter-user-mode|provide-module|require-module)\\b"},{"name":"support.function.command.alias.$1-force.kakscript","match":"\\b(e|w|q|wq|db)!"},{"name":"support.function.command.alias.$1.kakscript","match":"\\b(help|cd|e|w|wa|q|wq|waq|b|bn|bp|db|decl|set|unset|def|eval|exec|rmhooks|face|addhl|rmhl|reg)\\b"}]},"comment":{"name":"comment.line.number-sign.kakscript","match":"#.+"},"hookType":{"name":"support.function.hook.kakscript","match":"\\b(NormalIdle|NormalKey|InsertIdle|InsertKey|InsertChar|InsertDelete|InsertMove|PromptIdle|WinCreate|WinClose|WinResize|WinDisplay|WinSetOption|GlobalSetOption|BufSetOption|BufNewFile|BufOpenFile|BufCreate|BufWritePre|BufWritePost|BufReload|BufClose|BufOpenFifo|BufReadFifo|BufCloseFifo|ClientCreate|ClientClose|RuntimeError|ModeChange|KakBegin|KakEnd|FocusIn|FocusOut|InsertCompletionShow|InsertCompletionHide|RawKey|RegisterModified|ModuleLoaded|User)\\b"},"kakscript":{"patterns":[{"include":"#boolean"},{"include":"#builtinOption"},{"include":"#builtinVariable"},{"include":"#comment"},{"include":"#colour"},{"include":"#command"},{"include":"#hookType"},{"include":"#namedKeys"},{"include":"#number"},{"include":"#optionType"},{"include":"#scopeexpansion"},{"include":"#shellExpansion"},{"include":"#scopeType"},{"include":"#string"}]},"namedKeys":{"name":"constant.character.kakscript","match":"\u003c(ret|space|tab|lt|gt|backspace|esc|up|down|left|right|pageup|pagedown|home|end|ins|del|plus|minus|semicolon|percent)\u003e"},"number":{"name":"constant.numeric.integer.kakscript","match":"\\b(\\d+)\\b"},"optionType":{"name":"storage.type.kakscript","match":"\\b(int|bool|str|regex|int-list|str-list|completions|line-specs|range-specs|str-to-str-map)\\b"},"scopeExpansion":{"name":"string.interpolated.kakscript","match":"%(arg|val|opt|reg)\\{[w-]+\\}"},"scopeType":{"name":"entity.name.type.kakscript","match":"\\b(current|global|buffer|window)\\b"},"shellExpansion":{"name":"source.shell.embedded.kakscript","begin":"%sh\\{","end":"}","patterns":[{"include":"source.shell"}]},"string":{"patterns":[{"name":"string.quoted.double.kakscript","match":"(\").*?(\")","captures":{"1":{"name":"punctuation.definition.string.begin.kakscript"},"2":{"name":"punctuation.definition.string.end.kakscript"}}},{"name":"string.quoted.single.kakscript","match":"(').*?(')","captures":{"1":{"name":"punctuation.definition.string.begin.kakscript"},"2":{"name":"punctuation.definition.string.end.kakscript"}}}]}}}
