]> Nishi Git Mirror - gwion.git/commitdiff
Update Kakoune syntax highlighting (#241)
authorJack Clarke <jackojc@gmail.com>
Tue, 12 Apr 2022 22:40:01 +0000 (22:40 +0000)
committerGitHub <noreply@github.com>
Tue, 12 Apr 2022 22:40:01 +0000 (00:40 +0200)
* Add bool to types in Kakoune highlighter

* Add proper syntax highlighting for literals in Kakoune

- Add support for "inbetween" comments like `#! foo !#`
- Add highlighting for user operators `@`
- Add binary, hex and octal literals
- Add float literals including exponents
- Add integer suffixes

highlighters/gwion.kak

index b0974bb296e71c3f1b3c4cac9dae004d0fea8e3e..9bf496f23d933392f0ad55afb1828abc438dc165 100644 (file)
@@ -5,7 +5,7 @@ provide-module -override gwion %{
        add-highlighter shared/gwion/other default-region group
 
        # comment
-       add-highlighter shared/gwion/comment region '#!' '$' group
+       add-highlighter shared/gwion/comment region '#!' '($|!#)' group
        add-highlighter shared/gwion/comment/ fill comment
 
        # preprocessor
@@ -25,7 +25,7 @@ provide-module -override gwion %{
                        new spork fork'
 
                attributes='const var static private public protect variadic template samp ms second minute delay'
-               types='auto int float void Object Shred Event'
+               types='auto int float bool void Object Shred Event'
                values='true false none this now me adc dac maybe'
                builtins='__file__ __line__ __func__'
                entities='class struct trait union enum'
@@ -45,9 +45,18 @@ provide-module -override gwion %{
                "
        }
 
+       # user operator
+       add-highlighter shared/gwion/other/ regex "@\w+" 0:operator
+
        # literals
-       add-highlighter shared/gwion/other/ regex "\d*" 0:value
-       add-highlighter shared/gwion/other/ regex "\B'((\\.)|[^'\\])'\B" 0:value
+       add-highlighter shared/gwion/other/ regex "\B'((\\.)|[^'\\])'\B" 0:value  # char
+
+       add-highlighter shared/gwion/other/ regex "\d+(u|U|l|L)?" 0:value                   # decimal
+       add-highlighter shared/gwion/other/ regex "((\d+\.\d*)|(\d*\.\d+))([eE][\+-]\d+)*" 0:value           # float
+
+       add-highlighter shared/gwion/other/ regex "0[xX][a-fA-F0-9]+(u|U|l|L)?" 0:value     # hex
+       add-highlighter shared/gwion/other/ regex "0[bB][0-1]+(u|U|l|L)?" 0:value           # binary
+       add-highlighter shared/gwion/other/ regex "0[cC][0-7]+(u|U|l|L)?" 0:value           # octal
 
        # string
        add-highlighter shared/gwion/string region '"' (?<!\\)(\\\\)*" group