1
Files
flake-nixinator/config/neovim/store/nvim-treesitter/queries/rst/injections.scm

73 lines
2.0 KiB
Scheme

((doctest_block) @injection.content
(#set! injection.language "python"))
; Directives with nested content without arguments nor options
((directive
name: (type) @_type
body: (body) @injection.content)
(#set! injection.language "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) @injection.content))
(#set! injection.language "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) @injection.content))
(#set! injection.language "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) @injection.language
(content) @injection.content))
(#any-of? @_type "raw" "code" "code-block" "sourcecode"))
((directive
name: (type) @_type
body: (body
(content) @injection.content))
(#set! injection.language "latex")
(#eq? @_type "math"))
((directive
name: (type) @_type
body: (body
(content) @injection.content))
(#set! injection.language "csv")
(#eq? @_type "csv-table"))
; Special roles - prefix
((interpreted_text
(role) @_role
"interpreted_text" @injection.content)
(#eq? @_role ":math:")
(#set! injection.language "latex"))
; Special roles - suffix
((interpreted_text
"interpreted_text" @injection.content
(role) @_role)
(#eq? @_role ":math:")
(#set! injection.language "latex"))
((comment) @injection.content
(#set! injection.language "comment"))