From f843967059fc36bf497bde31ce9ed18b1354f1eb Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Tue, 15 Nov 2022 18:17:03 -0800 Subject: [PATCH] Improvements to Meson syntax. (#4572) Co-authored-by: Garrett D'Amore Co-authored-by: Michael Davis --- languages.toml | 2 +- runtime/queries/meson/highlights.scm | 106 +++++++++++++-------------- runtime/queries/meson/indents.scm | 7 +- 3 files changed, 58 insertions(+), 57 deletions(-) diff --git a/languages.toml b/languages.toml index e69c4a4d7..6c2a4c592 100644 --- a/languages.toml +++ b/languages.toml @@ -1510,7 +1510,7 @@ indent = { tab-width = 2, unit = " " } [[grammar]] name = "meson" -source = { git = "https://github.com/bearcove/tree-sitter-meson", rev = "feea83be9225842490066522ced2d13eb9cce0bd" } +source = { git = "https://github.com/staysail/tree-sitter-meson", rev = "32a83e8f200c347232fa795636cfe60dde22957a" } [[language]] name = "sshclientconfig" diff --git a/runtime/queries/meson/highlights.scm b/runtime/queries/meson/highlights.scm index 01df8f279..c4775540f 100644 --- a/runtime/queries/meson/highlights.scm +++ b/runtime/queries/meson/highlights.scm @@ -1,62 +1,62 @@ -(string_literal) @string +(comment) @comment -(boolean_literal) @constant.builtin.boolean -(integer_literal) @constant.numeric.integer - -(comment) @comment.line -(function_id) @function -(keyword_arg_key) @variable.other.member -(id_expression) @variable +; these are listed first, because they override keyword queries +(function_expression (identifier) @function) [ - "if" - "elif" - "else" - "endif" -] @keyword.control.conditional - -[ - "foreach" - "endforeach" -] @keyword.control.repeat - -[ - "break" - "continue" -] @keyword.control - -[ - "not" - "in" - "and" - "or" -] @keyword.operator - -[ - "!" - "+" - "-" - "*" - "/" - "%" - "==" - "!=" - ">" - "<" - ">=" - "<=" + (assignment_operator) + (additive_operator) + (multiplicative_operator) + (equality_operator) + ">=" + "<=" + "<" + ">" + "+" + "-" ] @operator [ - ":" - "," + (and) + (or) + (not) + (in) +] @keyword.operator + +[ + "(" ")" "[" "]" "{" "}" +] @punctuation.bracket + +[ + (if) + (elif) + (else) + (endif) +] @keyword.control.conditional + +[ + (foreach) + (endforeach) + (break) + (continue) +] @keyword.control.repeat + +(boolean_literal) @constant.builtin.boolean +(int_literal) @constant.numeric.integer + +(keyword_argument keyword: (identifier) @variable.parameter) +(escape_sequence) @constant.character.escape +(bad_escape) @warning + +[ +"." +"," +":" ] @punctuation.delimiter [ - "(" - ")" - "[" - "]" - "{" - "}" -] @punctuation.bracket + (string_literal) + (fstring_literal) +] @string + +(identifier) @variable diff --git a/runtime/queries/meson/indents.scm b/runtime/queries/meson/indents.scm index a1c7b3fab..2a4c6c62e 100644 --- a/runtime/queries/meson/indents.scm +++ b/runtime/queries/meson/indents.scm @@ -1,5 +1,5 @@ +; Indentation queries for helix [ - (method_expression) (function_expression) (array_literal) (dictionary_literal) @@ -7,10 +7,11 @@ (iteration_statement) ] @indent +; question - what about else, elif [ ")" "]" "}" - "endif" - "endforeach" + (endif) + (endforeach) ] @outdent