Unnamed repository; edit this file 'description' to name the repository.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
(line_comment) @comment.line
(doc_comment) @comment.line.documentation

(escape_sequence) @constant.character.escape

(bare_scalar) @string
(quoted_scalar) @string
(raw_scalar) @string
(heredoc) @string

; Heredoc language hint (metadata)
(heredoc_lang) @label

(unit) @constant.builtin

; Tags - styled same as unit since @ is the tag sigil
(tag) @constant.builtin

; Attributes - key in attribute syntax
; Use @keyword or @punctuation.special to make > stand out
(attribute
  key: (bare_scalar) @variable.other.member
  ">" @keyword)

; Keys in entries - any scalar in the key position (overrides @string above)
(entry
  key: (expr
    payload: (scalar (_) @variable.other.member)))

; Sequence items are values, not keys (must come AFTER entry key rule to override)
(sequence
  (expr
    payload: (scalar (_) @string)))

[
  "{"
  "}"
  "("
  ")"
] @punctuation.bracket

"," @punctuation.delimiter