aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lua/nvim-treesitter/parsers.lua11
-rw-r--r--queries/meson/folds.scm9
-rw-r--r--queries/meson/highlights.scm72
3 files changed, 92 insertions, 0 deletions
diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua
index 2031e69b5..edc062edb 100644
--- a/lua/nvim-treesitter/parsers.lua
+++ b/lua/nvim-treesitter/parsers.lua
@@ -54,6 +54,17 @@ list.agda = {
filetype = "agda",
maintainers = { "@Decodetalkers" },
}
+
+list.meson = {
+ install_info = {
+ url = "https://github.com/Decodetalkers/tree-sitter-meson",
+ branch = "master",
+ files = { "src/parser.c" },
+ },
+ filetype = "meson",
+ maintainers = { "@Decodetalkers" },
+}
+
list.qmljs = {
install_info = {
url = "https://github.com/yuja/tree-sitter-qmljs",
diff --git a/queries/meson/folds.scm b/queries/meson/folds.scm
new file mode 100644
index 000000000..bb6c3c877
--- /dev/null
+++ b/queries/meson/folds.scm
@@ -0,0 +1,9 @@
+[
+ (normal_command)
+ (if_condition)
+ (if_command)
+ (else_command)
+ (elseif_command)
+ (foreach_command)
+ (list)
+] @fold
diff --git a/queries/meson/highlights.scm b/queries/meson/highlights.scm
new file mode 100644
index 000000000..4f842b45b
--- /dev/null
+++ b/queries/meson/highlights.scm
@@ -0,0 +1,72 @@
+(comment) @comment
+(number) @number
+(bool) @boolean
+
+[
+ "("
+ ")"
+ "{"
+ "}"
+ "["
+ "]"
+]
+@punctuation.bracket
+
+[
+ "and"
+ "not"
+ "or"
+ "in"
+] @keyword.operator
+
+[
+ "="
+ "=="
+ "!="
+ "+"
+ "/"
+ "/="
+ "+="
+ "-="
+ ">"
+ ">="
+] @operator
+
+[
+ "if"
+ "elif"
+ "else"
+ "endif"
+] @conditional
+
+[
+ "foreach"
+ "endforeach"
+ (keyword_break)
+ (keyword_continue)
+] @repeat
+
+;;; format
+(string) @string
+["@"] @punctuation.special
+
+(experession_statement
+ object: (identifier) @variable)
+
+(normal_command
+ command: (identifier) @function)
+
+(list
+ variable: (identifier) @variable)
+
+(formatunit
+ variable: (identifier) @variable)
+
+(variableunit
+ value: (identifier) @variable)
+(pair
+ key: (identifier) @property)
+(pair
+ value: (identifier) @variable)
+
+(escape_sequence) @string.escape