aboutsummaryrefslogtreecommitdiff
path: root/runtime/queries
diff options
context:
space:
mode:
authorChristian Clason <c.clason@uni-graz.at>2023-07-01 11:08:06 +0200
committerGitHub <noreply@github.com>2023-07-01 11:08:06 +0200
commit11844dde81c41bded54f2383b57f8eef406f2736 (patch)
tree4e98199f68a27b793fecc62f3efd08a2f048d10b /runtime/queries
parent538b6c385391b4061d36530acea3fc3d20604358 (diff)
downloadrneovim-11844dde81c41bded54f2383b57f8eef406f2736.tar.gz
rneovim-11844dde81c41bded54f2383b57f8eef406f2736.tar.bz2
rneovim-11844dde81c41bded54f2383b57f8eef406f2736.zip
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>
Diffstat (limited to 'runtime/queries')
-rw-r--r--runtime/queries/markdown/folds.scm9
-rw-r--r--runtime/queries/markdown/highlights.scm63
-rw-r--r--runtime/queries/markdown/injections.scm26
-rw-r--r--runtime/queries/markdown_inline/highlights.scm92
-rw-r--r--runtime/queries/markdown_inline/injections.scm8
5 files changed, 198 insertions, 0 deletions
diff --git a/runtime/queries/markdown/folds.scm b/runtime/queries/markdown/folds.scm
new file mode 100644
index 0000000000..5900f7ffbe
--- /dev/null
+++ b/runtime/queries/markdown/folds.scm
@@ -0,0 +1,9 @@
+(
+ [
+ (fenced_code_block)
+ (indented_code_block)
+ (list)
+ (section)
+ ] @fold
+ (#trim! @fold)
+)
diff --git a/runtime/queries/markdown/highlights.scm b/runtime/queries/markdown/highlights.scm
new file mode 100644
index 0000000000..e78d233cc6
--- /dev/null
+++ b/runtime/queries/markdown/highlights.scm
@@ -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
diff --git a/runtime/queries/markdown/injections.scm b/runtime/queries/markdown/injections.scm
new file mode 100644
index 0000000000..0bead6f4ac
--- /dev/null
+++ b/runtime/queries/markdown/injections.scm
@@ -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"))
diff --git a/runtime/queries/markdown_inline/highlights.scm b/runtime/queries/markdown_inline/highlights.scm
new file mode 100644
index 0000000000..a70e34bb87
--- /dev/null
+++ b/runtime/queries/markdown_inline/highlights.scm
@@ -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 ""))
diff --git a/runtime/queries/markdown_inline/injections.scm b/runtime/queries/markdown_inline/injections.scm
new file mode 100644
index 0000000000..f7aa19caff
--- /dev/null
+++ b/runtime/queries/markdown_inline/injections.scm
@@ -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))