Files
configs/neovim/nvim/queries/dafny/highlights.scm
T
2026-08-16 16:40:02 -06:00

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