summaryrefslogtreecommitdiff
path: root/queries/rst/injections.scm
blob: 97bd0628a0d302662875260ed9043bb106412f20 (plain)
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
(doctest_block) @python

;; Directives with nested content without arguments nor options
((directive
   name: (type) @_type
   body: (body) @rst)
 (#any-of?
  @_type
  "attention" "caution" "danger" "error" "hint" "important" "note" "tip" "warning" "admonition"
  "line-block" "parsed-literal" "epigraph" "highlights" "pull-quote" "compound"
  "header" "footer"
  "meta"
  "replace"))

;; Directives with nested content without arguments, but with options
((directive
   name: (type) @_type
   body: (body (options) (content) @rst))
 (#any-of?
  @_type
  "attention" "caution" "danger" "error" "hint" "important" "note" "tip" "warning" "admonition"
  "line-block" "parsed-literal" "compound"))

;; Directives with nested content with arguments and options
((directive
   name: (type) @_type
   body: (body (content) @rst))
 (#any-of?
  @_type
  "figure"
  "topic" "sidebar" "container"
  "table" "list-table"
  "class" "role" "restructuredtext-test-directive"))

;; Special directives
((directive
   name: (type) @_type
   body: (body (arguments) @language (content) @content))
 (#any-of? @_type "code" "code-block" "sourcecode"))

((directive
   name: (type) @_type
   body: (body (arguments) @language (content) @content))
 (#eq? @_type "raw"))

((directive
   name: (type) @_type
   body: (body (content) @latex))
 (#eq? @_type "math"))

; TODO: re-add when a parser for csv is added.
; ((directive
;    name: (type) @_type
;    body: (body (content) @csv))
;  (#eq? @_type "csv-table"))

;; Special roles - prefix

((interpreted_text
  (role) @_role
  "interpreted_text" @latex)
 (#eq? @_role ":math:"))

;; Special roles - suffix

((interpreted_text
  "interpreted_text" @latex
  (role) @_role)
 (#eq? @_role ":math:"))

(comment) @comment