aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--book/src/generated/lang-support.md1
-rw-r--r--languages.toml13
-rw-r--r--runtime/queries/vhs/highlights.scm36
3 files changed, 50 insertions, 0 deletions
diff --git a/book/src/generated/lang-support.md b/book/src/generated/lang-support.md
index caf5d525..c166af29 100644
--- a/book/src/generated/lang-support.md
+++ b/book/src/generated/lang-support.md
@@ -120,6 +120,7 @@
| v | ✓ | | | `vls` |
| vala | ✓ | | | `vala-language-server` |
| verilog | ✓ | ✓ | | `svlangserver` |
+| vhs | ✓ | | | |
| vue | ✓ | | | `vls` |
| wast | ✓ | | | |
| wat | ✓ | | | |
diff --git a/languages.toml b/languages.toml
index 0a87fad2..c5c45afc 100644
--- a/languages.toml
+++ b/languages.toml
@@ -1872,3 +1872,16 @@ formatter = { command = "dfmt" }
[[grammar]]
name = "d"
source = { git = "https://github.com/gdamore/tree-sitter-d", rev="601c4a1e8310fb2f3c43fa8a923d0d27497f3c04" }
+
+[[language]]
+name = "vhs"
+scope = "source.vhs"
+file-types = ["tape"]
+roots = []
+comment-token = "#"
+indent = { tab-width = 2, unit = " " }
+grammar = "vhs"
+
+[[grammar]]
+name = "vhs"
+source = { git = "https://github.com/charmbracelet/tree-sitter-vhs", rev = "c6d81f34c011c29ee86dd73b45a8ecc9f2e2bdaf" }
diff --git a/runtime/queries/vhs/highlights.scm b/runtime/queries/vhs/highlights.scm
new file mode 100644
index 00000000..9a2d05cf
--- /dev/null
+++ b/runtime/queries/vhs/highlights.scm
@@ -0,0 +1,36 @@
+[
+ "Output"
+ "Backspace"
+ "Down"
+ "Enter"
+ "Escape"
+ "Left"
+ "Right"
+ "Space"
+ "Tab"
+ "Up"
+ "Set"
+ "Type"
+ "Sleep"
+ "Hide"
+ "Show" ] @keyword
+
+[ "FontFamily"
+ "FontSize"
+ "Framerate"
+ "Height"
+ "LetterSpacing"
+ "TypingSpeed"
+ "LineHeight"
+ "Padding"
+ "Theme"
+ "Width" ] @type
+
+[ "@" ] @operator
+(control) @function.macro
+(float) @constant.numeric.float
+(integer) @constant.numeric.integer
+(comment) @comment
+(path) @string.special.path
+[(string) (json)] @string
+(time) @string.special.symbol \ No newline at end of file