summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--book/src/generated/lang-support.md1
-rw-r--r--languages.toml15
-rw-r--r--runtime/queries/blueprint/highlights.scm56
3 files changed, 72 insertions, 0 deletions
diff --git a/book/src/generated/lang-support.md b/book/src/generated/lang-support.md
index d3596657..59fe310f 100644
--- a/book/src/generated/lang-support.md
+++ b/book/src/generated/lang-support.md
@@ -7,6 +7,7 @@
| beancount | ✓ | | | |
| bibtex | ✓ | | | `texlab` |
| bicep | ✓ | | | `bicep-langserver` |
+| blueprint | ✓ | | | `blueprint-compiler` |
| c | ✓ | ✓ | ✓ | `clangd` |
| c-sharp | ✓ | ✓ | | `OmniSharp` |
| cabal | | | | |
diff --git a/languages.toml b/languages.toml
index 9e74bf7f..964dc081 100644
--- a/languages.toml
+++ b/languages.toml
@@ -77,6 +77,7 @@ vuels = { command = "vls" }
wgsl_analyzer = { command = "wgsl_analyzer" }
yaml-language-server = { command = "yaml-language-server", args = ["--stdio"] }
zls = { command = "zls" }
+blueprint-compiler = { command = "blueprint-compiler", args = ["lsp"] }
[language-server.lua-language-server]
@@ -2577,3 +2578,17 @@ indent = { tab-width = 4, unit = "\t" }
[[grammar]]
name = "just"
source = { git = "https://github.com/IndianBoy42/tree-sitter-just", rev = "8af0aab79854aaf25b620a52c39485849922f766" }
+
+[[language]]
+name = "blueprint"
+scope = "source.blueprint"
+injection-regex = "blueprint"
+file-types = ["blp"]
+roots = []
+comment-token = "//"
+language-servers = [ "blueprint-compiler" ]
+indent = { tab-width = 4, unit = " " }
+
+[[grammar]]
+name = "blueprint"
+source = { git = "https://gitlab.com/gabmus/tree-sitter-blueprint", rev = "7f1a5df44861291d6951b6b2146a9fef4c226e14" }
diff --git a/runtime/queries/blueprint/highlights.scm b/runtime/queries/blueprint/highlights.scm
new file mode 100644
index 00000000..05533cea
--- /dev/null
+++ b/runtime/queries/blueprint/highlights.scm
@@ -0,0 +1,56 @@
+(object_id) @attribute
+
+(string) @string
+(escape_sequence) @constant.character.escape
+
+(comment) @comment
+
+(constant) @constant.builtin
+(boolean) @constant.builtin.boolean
+
+(template) @keyword
+
+(using) @keyword.control.import
+
+(decorator) @attribute
+
+(property_definition (property_name) @variable.other.member)
+
+(object) @type
+
+(signal_binding (signal_name) @function.builtin)
+(signal_binding (function (identifier)) @function)
+(signal_binding "swapped" @keyword)
+
+(styles_list "styles" @function.macro)
+(layout_definition "layout" @function.macro)
+
+(gettext_string "_" @function.builtin)
+
+(menu_definition "menu" @keyword)
+(menu_section "section" @keyword)
+(menu_item "item" @function.macro)
+
+(template_definition (template_name_qualifier) @keyword.storage.type)
+
+(import_statement (gobject_library) @namespace)
+
+(import_statement (version_number) @constant.numeric.float)
+
+(float) @constant.numeric.float
+(number) @constant.numeric
+
+[
+ ";"
+ "."
+ ","
+] @punctuation.delimiter
+
+[
+ "("
+ ")"
+ "["
+ "]"
+ "{"
+ "}"
+] @punctuation.bracket