summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Cosandey <jonas.cosandey@adfinis.com>2023-07-20 13:39:32 +0200
committerJonas Cosandey <jonas.cosandey@adfinis.com>2024-11-13 15:27:06 +0100
commitb3de01ddd753b24efc6131b72da860483bd9b2e5 (patch)
tree8dd4b125f254c7f2cd52922ee9fabc51139b6bd5
parentd86e505fad397251a8a618c545a7d78f43a70a34 (diff)
Add filetype for ember js .gjs and .gts files
-rw-r--r--rc/filetype/gjs.kak65
1 files changed, 65 insertions, 0 deletions
diff --git a/rc/filetype/gjs.kak b/rc/filetype/gjs.kak
new file mode 100644
index 00000000..40cdab00
--- /dev/null
+++ b/rc/filetype/gjs.kak
@@ -0,0 +1,65 @@
+# https://github.com/ember-template-imports/ember-template-imports
+# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
+
+# Detection
+# ‾‾‾‾‾‾‾‾‾
+
+hook global BufCreate .*[.](gjs) %{
+ set-option buffer filetype gjs
+}
+
+hook global BufCreate .*[.](gts) %{
+ set-option buffer filetype gts
+}
+
+# Initialization
+# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
+
+hook global WinSetOption filetype=(gjs|gts) %{
+ require-module javascript
+
+ hook window ModeChange pop:insert:.* -group "%val{hook_param_capture_1}-trim-indent" javascript-trim-indent
+ hook window InsertChar .* -group "%val{hook_param_capture_1}-indent" javascript-indent-on-char
+ hook window InsertChar \n -group "%val{hook_param_capture_1}-insert" javascript-insert-on-new-line
+ hook window InsertChar \n -group "%val{hook_param_capture_1}-indent" javascript-indent-on-new-line
+
+ hook -once -always window WinSetOption filetype=.* "
+ remove-hooks window %val{hook_param_capture_1}-.+
+ "
+}
+
+hook -group gjs-highlight global WinSetOption filetype=gjs %{
+ require-module gjs
+ add-highlighter window/gjs ref gjs
+ hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/gjs }
+}
+
+hook -group gts-highlight global WinSetOption filetype=gts %{
+ require-module gts
+ add-highlighter window/gts ref gts
+ hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/gts }
+}
+
+# Modules
+
+provide-module gjs %{
+ require-module javascript
+ require-module hbs
+ require-module html
+ maybe-add-hbs-to-html
+
+ add-highlighter "shared/gjs" regions
+ add-highlighter "shared/gjs/" default-region ref javascript
+ add-highlighter "shared/gjs/hbs" region '<template>' '</template>' ref html
+}
+
+provide-module gts %{
+ require-module javascript
+ require-module hbs
+ require-module html
+ maybe-add-hbs-to-html
+
+ add-highlighter "shared/gts" regions
+ add-highlighter "shared/gts/" default-region ref typescript
+ add-highlighter "shared/gts/hbs" region '<template>' '</template>' ref html
+}