nvim-treesitter/queries/rst/injections.scm
Santos Gallegos 576f14d2ee RST: add code-block to injections (#1677)
This isn't part of the rst spec,
but it's common enough on third party libs (sphinx specially).
2021-09-17 21:06:36 +02:00

63 lines
1.6 KiB
Scheme

(doctest_block) @python
;; Directives with nested content without arguments nor options
((directive
name: (type) @_type
body: (body) @rst)
(#match?
@_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))
(#match?
@_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))
(#match?
@_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"))
((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