aboutsummaryrefslogtreecommitdiff
path: root/user/kakoune/qml.kak
diff options
context:
space:
mode:
Diffstat (limited to 'user/kakoune/qml.kak')
-rw-r--r--user/kakoune/qml.kak28
1 files changed, 28 insertions, 0 deletions
diff --git a/user/kakoune/qml.kak b/user/kakoune/qml.kak
new file mode 100644
index 0000000..697467f
--- /dev/null
+++ b/user/kakoune/qml.kak
@@ -0,0 +1,28 @@
+hook global BufCreate .+\.qml %{
+ set-option buffer filetype qml
+}
+
+hook global WinSetOption filetype=qml %{
+ require-module qml
+ add-highlighter window/qml ref qml
+ hook -once global WinSetOption filetype=.+\.(?!qml) %{
+ remove-highlighter window/qml
+ }
+}
+
+provide-module qml %{
+ add-highlighter shared/qml regions
+ add-highlighter shared/qml/comment-line region '//' '\n' fill comment
+ add-highlighter shared/qml/comment-block region '/\*' '\*/' fill comment
+ add-highlighter shared/qml/string region '"' '"' fill string
+ add-highlighter shared/qml/other default-region group
+ add-highlighter shared/qml/other/keywords regex \
+ \b(import|as|property|final|readonly|required|default)\b 0:keyword
+ add-highlighter shared/qml/other/numbers regex -?[0-9]+(\.[0-9]+)? 0:value
+ add-highlighter shared/qml/other/booleans regex true|false 0:value
+ # this one was kind of annoying :(
+ add-highlighter shared/qml/other/type regex '([a-zA-Z]+ *)(\{.*\})' 1:type
+ add-highlighter shared/qml/other/builtin-types regex \
+ \b(bool|date|double|int|list|real|string|url|var(iant)?|void)\b 0:type
+ add-highlighter shared/qml/other/function regex ([a-zA-Z]+[a-zA-Z0-9]*)\(.*\) 1:function
+}