diff options
| author | Isaac Freund <ifreund@ifreund.xyz> | 2020-03-22 19:24:39 +0100 |
|---|---|---|
| committer | Isaac Freund <ifreund@ifreund.xyz> | 2020-03-22 19:24:39 +0100 |
| commit | 6198cc5e474c19a00cd4b2da52146051c13fdeaa (patch) | |
| tree | 39b7fe132913f377535a88a41b4c75f6955793c6 | |
| parent | 3098557e25fd5b089c2a4d2fa641a8b1117cf593 (diff) | |
Encapsulate zig highlighting and commands in a module
| -rw-r--r-- | rc/filetype/zig.kak | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/rc/filetype/zig.kak b/rc/filetype/zig.kak index 209f1449..ac14447e 100644 --- a/rc/filetype/zig.kak +++ b/rc/filetype/zig.kak @@ -3,11 +3,18 @@ # based off of https://github.com/ziglang/zig.vim/blob/master/syntax/zig.vim # as well as https://ziglang.org/documentation/master/#Grammar +# Detection +# ‾‾‾‾‾‾‾‾‾ + hook global BufCreate .*[.]zig %{ set-option buffer filetype zig } +# Initialization +# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾ + hook global WinSetOption filetype=zig %< + require-module zig hook window ModeChange pop:insert:.* -group zig-trim-indent zig-trim-indent hook window InsertChar \n -group zig-indent zig-indent-on-new-line hook window InsertChar \} -group zig-indent zig-indent-on-closing @@ -16,10 +23,16 @@ hook global WinSetOption filetype=zig %< > hook -group zig-highlight global WinSetOption filetype=zig %{ + require-module zig add-highlighter window/zig ref zig hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/zig } } +provide-module zig %§ + +# Highlighters +# ‾‾‾‾‾‾‾‾‾‾‾‾ + add-highlighter shared/zig regions add-highlighter shared/zig/code default-region group @@ -88,6 +101,9 @@ add-highlighter shared/zig/code/ regex "@(?:truncate|typeId|typeInfo|typeName|Ty add-highlighter shared/zig/code/ regex "@(?:intToError|errorToInt|intToEnum|enumToInt|setAlignStack|frame|Frame|frameSize|bitReverse|Vector)\b" 0:function add-highlighter shared/zig/code/ regex "@(?:sin|cos|exp|exp2|log|log2|log10|fabs|floor|ceil|trunc|round)\b" 0:function +# Commands +# ‾‾‾‾‾‾‾‾ + define-command -hidden zig-trim-indent %{ # delete trailing whitespace try %{ execute-keys -draft -itersel <a-x> s \h+$ <ret> d } @@ -113,3 +129,5 @@ define-command -hidden zig-indent-on-closing %< # align lone } to indent level of opening line try %< execute-keys -draft -itersel <a-h> <a-k> ^\h*\}$ <ret> h m <a-S> 1<a-&> > > + +§ |
