Update TSQ queries (#2960)

A few changes to make TSQ highlights better:

* A parsing error has been fixed in the grammar itself
    * Previously tree-sitter-tsq did not parse the variables
      in predicates like `(#set! injection.language "javascript")`
* Theme nodes as `tag`
    * The newly added node to the parser (from the above fix) is
      `variable` which takes over the `variable` capture from nodes
* Highlight known predicates as `function` and unsupported
  predicates as `error`
    * This may help when translating queries from nvim-treesitter.
      For example `#any-of?` is a common one used in nvim-treesitter
      queries but not implemented in Helix or tree-sitter-cli.
* Inject tree-sitter-regex into `#match?` predicates
pull/2982/head
Michael Davis 2 years ago committed by GitHub
parent d78354c537
commit aacd0c8aa5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -707,7 +707,7 @@ indent = { tab-width = 2, unit = " " }
[[grammar]] [[grammar]]
name = "tsq" name = "tsq"
source = { git = "https://github.com/the-mikedavis/tree-sitter-tsq", rev = "ea68fc2b571ca1c8f70936855130c380f518ff35" } source = { git = "https://github.com/the-mikedavis/tree-sitter-tsq", rev = "48b5e9f82ae0a4727201626f33a17f69f8e0ff86" }
[[language]] [[language]]
name = "cmake" name = "cmake"

@ -6,7 +6,7 @@
; highlight inheritance comments ; highlight inheritance comments
((query . (comment) @keyword.directive) ((query . (comment) @keyword.directive)
(#match? @keyword.directive "^;\ +inherits *:")) (#match? @keyword.directive "^; +inherits *:"))
[ [
"(" "("
@ -40,8 +40,11 @@
(capture) @label (capture) @label
(predicate_name) @function ((predicate_name) @function
(#match? @function "^#(eq\\?|match\\?|is\\?|is-not\\?|not-same-line\\?|not-kind-eq\\?|set!|select-adjacent!|strip!)$"))
(predicate_name) @error
(escape_sequence) @constant.character.escape (escape_sequence) @constant.character.escape
(node_name) @variable (node_name) @tag
(variable) @variable

@ -1,2 +1,8 @@
((comment) @injection.content ((comment) @injection.content
(#set! injection.language "comment")) (#set! injection.language "comment"))
((predicate
(predicate_name) @_predicate
(string) @injection.content)
(#eq? @_predicate "#match?")
(#set! injection.language "regex"))

Loading…
Cancel
Save