nvim-treesitter/queries/markdown/highlights.scm
Christian Clason 99ddf57353
feat(highlights)!: enforce documented captures (#6232)
Problem: Allowing undocumented "secret" (sub)captures makes it harder
to write comprehensive colorschemes and catch inconsistent captures.

Solution: Only allow captures listed in CONTRIBUTING.md. Add useful
(cross-language) subcaptures and drop language-specific or too niche
ones.

Follow-up: Adding further `*.builtin` captures and changing queries to
use them.

Language-specific subcaptures should instead be added in user config or
a custom language plugin.
2024-03-03 11:00:11 +01:00

117 lines
2.6 KiB
Scheme

;From MDeiml/tree-sitter-markdown & Helix
(setext_heading
(paragraph) @markup.heading.1
(setext_h1_underline) @markup.heading.1)
(setext_heading
(paragraph) @markup.heading.2
(setext_h2_underline) @markup.heading.2)
(atx_heading
(atx_h1_marker) @markup.heading.1
(inline) @markup.heading.1)
(atx_heading
(atx_h2_marker) @markup.heading.2
(inline) @markup.heading.2)
(atx_heading
(atx_h3_marker) @markup.heading.3
(inline) @markup.heading.3)
(atx_heading
(atx_h4_marker) @markup.heading.4
(inline) @markup.heading.4)
(atx_heading
(atx_h5_marker) @markup.heading.5
(inline) @markup.heading.5)
(atx_heading
(atx_h6_marker) @markup.heading.6
(inline) @markup.heading.6)
(info_string) @label
(pipe_table_header
(pipe_table_cell) @markup.heading)
(pipe_table_header
"|" @punctuation.special)
(pipe_table_row
"|" @punctuation.special)
(pipe_table_delimiter_row
"|" @punctuation.special)
(pipe_table_delimiter_cell) @punctuation.special
; Code blocks (conceal backticks and language annotation)
(indented_code_block) @markup.raw.block
((fenced_code_block) @markup.raw.block
(#set! "priority" 90))
(fenced_code_block
(fenced_code_block_delimiter) @markup.raw.block
(#set! conceal ""))
(fenced_code_block
(info_string
(language) @label
(#set! conceal "")))
(link_destination) @markup.link.url
[
(link_title)
(link_label)
] @markup.link.label
[
(list_marker_plus)
(list_marker_minus)
(list_marker_star)
(list_marker_dot)
(list_marker_parenthesis)
] @markup.list
; NOTE: The following has been commented out due to issues with spaces in the
; list marker nodes generated by the parser. If those spaces ever get captured
; by a different node (e.g. block_continuation) we can safely re-add these
; conceals.
; ;; Conceal bullet points
; ([(list_marker_plus) (list_marker_star)]
; @punctuation.special
; (#offset! @punctuation.special 0 0 0 -1)
; (#set! conceal "•"))
; ([(list_marker_plus) (list_marker_star)]
; @punctuation.special
; (#any-of? @punctuation.special "+" "*")
; (#set! conceal "•"))
; ((list_marker_minus)
; @punctuation.special
; (#offset! @punctuation.special 0 0 0 -1)
; (#set! conceal "—"))
; ((list_marker_minus)
; @punctuation.special
; (#eq? @punctuation.special "-")
; (#set! conceal "—"))
(thematic_break) @punctuation.special
(task_list_marker_unchecked) @markup.list.unchecked
(task_list_marker_checked) @markup.list.checked
((block_quote) @markup.quote
(#set! "priority" 90))
[
(block_continuation)
(block_quote_marker)
] @punctuation.special
(backslash_escape) @string.escape
(inline) @spell