54 lines
1.3 KiB
Scheme
54 lines
1.3 KiB
Scheme
; https://github.com/nvim-treesitter/nvim-treesitter/blob/main/CONTRIBUTING.md
|
|
; https://tree-sitter.github.io/tree-sitter/using-parsers/queries/1-syntax.html
|
|
(comment) @comment
|
|
(string) @string
|
|
|
|
; Modules
|
|
(module_definition ["module"] @module)
|
|
(module_definition (identifier) @variable)
|
|
|
|
; Methods/Functions
|
|
(method_definition ["method"] @function.method)
|
|
(function_definition ["function"] @function)
|
|
(verification_clause [
|
|
"decreases"
|
|
"ensures"
|
|
"invariant"
|
|
"modifies"
|
|
"provides"
|
|
"reads"
|
|
"requires"
|
|
] @attribute)
|
|
(returns_clause ["returns"] @keyword.return)
|
|
|
|
; Variables
|
|
(var_decl ["var"] @variable)
|
|
(primitive_type) @type
|
|
(number) @number
|
|
|
|
|
|
(import_declaration) @keyword.import
|
|
(attributes) @attribute
|
|
|
|
; Control flow
|
|
(if_statement ["if" "else"] @keyword.conditional)
|
|
(if_expression ["if" "then" "else"] @keyword.conditional)
|
|
|
|
; Looping constructs
|
|
(while_statement ["while"] @keyword.repeat)
|
|
(while_statement ["invariant"] @attribute)
|
|
; Debug
|
|
(assert_statement ["assert"] @keyword.debug)
|
|
(expect_statement ["expect"] @keyword.debug)
|
|
|
|
"(" @punctuation.bracket
|
|
")" @punctuation.bracket
|
|
"<" @punctuation.bracket
|
|
">" @punctuation.bracket
|
|
"[" @punctuation.bracket
|
|
"]" @punctuation.bracket
|
|
"{" @punctuation.bracket
|
|
"}" @punctuation.bracket
|
|
";" @punctuation.delimiter
|
|
|