diff --git a/book/src/generated/lang-support.md b/book/src/generated/lang-support.md index 23ba6f5f..f0039508 100644 --- a/book/src/generated/lang-support.md +++ b/book/src/generated/lang-support.md @@ -313,6 +313,7 @@ | uxntal | ✓ | | | | | | | v | ✓ | ✓ | ✓ | | | `v-analyzer` | | vala | ✓ | ✓ | | | | `vala-language-server` | +| varlink | ✓ | | | | | `varlink-language-server` | | vento | ✓ | | | | | | | verilog | ✓ | ✓ | | | | `verible-verilog-ls` | | vhdl | ✓ | | | | | `vhdl_ls` | diff --git a/languages.toml b/languages.toml index eaf3430e..0830ef57 100644 --- a/languages.toml +++ b/languages.toml @@ -160,6 +160,7 @@ ty = { command = "ty", args = ["server"] } typespec = { command = "tsp-server", args = ["--stdio"] } vala-language-server = { command = "vala-language-server" } vale-ls = { command = "vale-ls" } +varlink-language-server = { command = "varlink-language-server" } verible-verilog-ls = { command = "verible-verilog-ls" } vhdl_ls = { command = "vhdl_ls", args = [] } vlang-language-server = { command = "v-analyzer" } @@ -5561,3 +5562,16 @@ indent = { tab-width = 2, unit = " " } [[grammar]] name = "xwiki" source = { git = "https://github.com/battesonb/tree-sitter-xwiki", rev = "58010c62c63fabbf5a94762bfa8849d4733d1f6c" } + +[[language]] +name = "varlink" +scope = "source.varlink" +file-types = ["varlink"] +injection-regex = "varlink" +indent = { tab-width = 2, unit = " " } +comment-token = "#" +language-servers = ["varlink-language-server"] + +[[grammar]] +name = "varlink" +source = { git = "https://github.com/bachorp/tree-sitter-varlink", rev = "a80ecffda60b28612cbda652e38d97c1d8b90568" } diff --git a/runtime/queries/varlink/highlights.scm b/runtime/queries/varlink/highlights.scm new file mode 100644 index 00000000..d1504c51 --- /dev/null +++ b/runtime/queries/varlink/highlights.scm @@ -0,0 +1,40 @@ +(comment) @comment + +(keyword_interface) @keyword +(keyword_type) @keyword.storage.type +(keyword_method) @keyword.function +(keyword_error) @keyword.storage.type + +(interface_name) @string +(method name: (_) @function) +(error name: (_) @type) +(typedef name: (_) @type) +(typeref (name) @type) +(struct_field name: (_) @variable.parameter) +(enum member: (_) @type) + +[ + (bool) + (int) + (float) + (string) + (object) + (any) +] @type.builtin + +[ + "(" + ")" + "[" + "]" +] @punctuation.bracket + +[ + "," + ":" +] @punctuation.delimiter + +[ + (questionmark) + (arrow) +] @operator