summaryrefslogtreecommitdiff
path: root/autoload/filetype/tupfile.kak
diff options
context:
space:
mode:
authorthing1 <thing1@seacrossedlovers.xyz>2025-01-28 09:14:32 +0000
committerthing1 <thing1@seacrossedlovers.xyz>2025-01-28 09:14:32 +0000
commit904cec3c4a329cf89fc3219d359239910d61f3f6 (patch)
tree8d113899921dfbaca0e77c49ab5fc827362d1091 /autoload/filetype/tupfile.kak
init commitHEADmaster
Diffstat (limited to 'autoload/filetype/tupfile.kak')
-rw-r--r--autoload/filetype/tupfile.kak40
1 files changed, 40 insertions, 0 deletions
diff --git a/autoload/filetype/tupfile.kak b/autoload/filetype/tupfile.kak
new file mode 100644
index 0000000..33e570d
--- /dev/null
+++ b/autoload/filetype/tupfile.kak
@@ -0,0 +1,40 @@
+# http://gittup.org/tup/
+#
+
+# Detection
+# ‾‾‾‾‾‾‾‾‾
+
+hook global BufCreate .*/?Tup(file|rules)(\.\w+)?$ %{
+ set-option buffer filetype tupfile
+}
+
+# Initialization
+# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
+
+hook -group tupfile-highlight global WinSetOption filetype=tupfile %{
+ require-module tupfile
+
+ add-highlighter window/tupfile ref tupfile
+ hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/tupfile }
+}
+
+
+provide-module tupfile %{
+
+# Highlighters
+# ‾‾‾‾‾‾‾‾‾‾‾‾
+
+add-highlighter shared/tupfile regions
+add-highlighter shared/tupfile/code default-region group
+add-highlighter shared/tupfile/string region '"' (?<!\\)(\\\\)*" fill string
+add-highlighter shared/tupfile/comment region '#' $ fill comment
+
+add-highlighter shared/tupfile/code/ regex '%[fbBeoOdg]\b' 0:value
+add-highlighter shared/tupfile/code/ regex '[$@]\([\w_]+\)' 0:value
+add-highlighter shared/tupfile/code/ regex '^\h*:\s*(foreach)\b' 1:keyword
+add-highlighter shared/tupfile/code/ regex '^\h*(\.gitignore)\b' 1:keyword
+add-highlighter shared/tupfile/code/ regex '^\h*\b(ifn?eq|ifn?def|else|endif|error|include|include_rules|run|preload|export)\b' 0:keyword
+add-highlighter shared/tupfile/code/ regex '^\h*\b(&?[\w_]+)\s*[:+]?=' 1:keyword
+add-highlighter shared/tupfile/code/ regex '`[^`\n]+`' 0:meta
+
+}