feat(treesitter): bundle markdown parser and queries (#22481)

* bundle split Markdown parser from https://github.com/MDeiml/tree-sitter-markdown
* add queries from https://github.com/nvim-treesitter/nvim-treesitter/tree/main
* upstream `#trim!` and `#inject-language!` directives

Co-authored-by: dundargoc <gocdundar@gmail.com>
This commit is contained in:
Christian Clason
2023-07-01 11:08:06 +02:00
committed by GitHub
parent 538b6c3853
commit 11844dde81
12 changed files with 325 additions and 3 deletions

View File

@ -0,0 +1,9 @@
(
[
(fenced_code_block)
(indented_code_block)
(list)
(section)
] @fold
(#trim! @fold)
)

View File

@ -0,0 +1,63 @@
;From MDeiml/tree-sitter-markdown & Helix
(setext_heading (paragraph) @text.title.1 (setext_h1_underline) @text.title.1.marker)
(setext_heading (paragraph) @text.title.2 (setext_h2_underline) @text.title.2.marker)
(atx_heading (atx_h1_marker) @text.title.1.marker (inline) @text.title.1)
(atx_heading (atx_h2_marker) @text.title.2.marker (inline) @text.title.2)
(atx_heading (atx_h3_marker) @text.title.3.marker (inline) @text.title.3)
(atx_heading (atx_h4_marker) @text.title.4.marker (inline) @text.title.4)
(atx_heading (atx_h5_marker) @text.title.5.marker (inline) @text.title.5)
(atx_heading (atx_h6_marker) @text.title.6.marker (inline) @text.title.6)
(link_title) @text.literal
(indented_code_block) @text.literal.block
((fenced_code_block) @text.literal.block (#set! "priority" 90))
(info_string) @label
(pipe_table_header (pipe_table_cell) @text.title)
(pipe_table_header "|" @punctuation.special)
(pipe_table_row "|" @punctuation.special)
(pipe_table_delimiter_row "|" @punctuation.special)
(pipe_table_delimiter_cell) @punctuation.special
[
(fenced_code_block_delimiter)
] @punctuation.delimiter
(code_fence_content) @none
[
(link_destination)
] @text.uri
[
(link_label)
] @text.reference
[
(list_marker_plus)
(list_marker_minus)
(list_marker_star)
(list_marker_dot)
(list_marker_parenthesis)
(thematic_break)
] @punctuation.special
(task_list_marker_unchecked) @text.todo.unchecked
(task_list_marker_checked) @text.todo.checked
(block_quote) @text.quote
[
(block_continuation)
(block_quote_marker)
] @punctuation.special
[
(backslash_escape)
] @string.escape
(inline) @spell

View File

@ -0,0 +1,26 @@
(fenced_code_block
(info_string
(language) @_lang)
(code_fence_content) @injection.content
(#inject-language! @_lang))
((html_block) @injection.content
(#set! injection.language "html")
(#set! injection.combined)
(#set! injection.include-children))
((minus_metadata) @injection.content
(#set! injection.language "yaml")
(#offset! @injection.content 1 0 -1 0)
(#set! injection.include-children))
((plus_metadata) @injection.content
(#set! injection.language "toml")
(#offset! @injection.content 1 0 -1 0)
(#set! injection.include-children))
([
(inline)
(pipe_table_cell)
] @injection.content
(#set! injection.language "markdown_inline"))

View File

@ -0,0 +1,92 @@
;; From MDeiml/tree-sitter-markdown
[
(code_span)
(link_title)
] @text.literal @nospell
[
(emphasis_delimiter)
(code_span_delimiter)
] @punctuation.delimiter
(emphasis) @text.emphasis
(strong_emphasis) @text.strong
(strikethrough) @text.strike
[
(link_destination)
(uri_autolink)
] @text.uri @nospell
[
(link_label)
(link_text)
(image_description)
] @text.reference
[
(backslash_escape)
(hard_line_break)
] @string.escape
(image "!" @punctuation.special)
(image ["[" "]" "(" ")"] @punctuation.bracket)
(inline_link ["[" "]" "(" ")"] @punctuation.bracket)
(shortcut_link ["[" "]"] @punctuation.bracket)
; Conceal codeblock and text style markers
([
(code_span_delimiter)
(emphasis_delimiter)
] @conceal
(#set! conceal ""))
; Conceal inline links
(inline_link
[
"["
"]"
"("
(link_destination)
")"
] @conceal
(#set! conceal ""))
; Conceal image links
(image
[
"!"
"["
"]"
"("
(link_destination)
")"
] @conceal
(#set! conceal ""))
; Conceal full reference links
(full_reference_link
[
"["
"]"
(link_label)
] @conceal
(#set! conceal ""))
; Conceal collapsed reference links
(collapsed_reference_link
[
"["
"]"
] @conceal
(#set! conceal ""))
; Conceal shortcut links
(shortcut_link
[
"["
"]"
] @conceal
(#set! conceal ""))

View File

@ -0,0 +1,8 @@
((html_tag) @injection.content
(#set! injection.language "html")
(#set! injection.combined)
(#set! injection.include-children))
((latex_block) @injection.content
(#set! injection.language "latex")
(#set! injection.include-children))