From 3005c689c9a823bb218f56090ceb93d3baefc542 Mon Sep 17 00:00:00 2001 From: MDeiml Date: Tue, 19 Jul 2022 13:40:00 +0200 Subject: [PATCH 1/2] Use split_parser branch for markdown grammar --- book/src/generated/lang-support.md | 1 + languages.toml | 15 ++++- .../queries/markdown.inline/highlights.scm | 37 +++++++++++ .../queries/markdown.inline/injections.scm | 2 + runtime/queries/markdown/highlights.scm | 61 +++++++++---------- runtime/queries/markdown/injections.scm | 22 ++++--- 6 files changed, 98 insertions(+), 40 deletions(-) create mode 100644 runtime/queries/markdown.inline/highlights.scm create mode 100644 runtime/queries/markdown.inline/injections.scm diff --git a/book/src/generated/lang-support.md b/book/src/generated/lang-support.md index 677975c35139..a33b5acc3324 100644 --- a/book/src/generated/lang-support.md +++ b/book/src/generated/lang-support.md @@ -62,6 +62,7 @@ | lua | ✓ | | ✓ | `lua-language-server` | | make | ✓ | | | | | markdown | ✓ | | | | +| markdown.inline | ✓ | | | | | meson | ✓ | | ✓ | | | mint | | | | `mint` | | nickel | ✓ | | ✓ | `nls` | diff --git a/languages.toml b/languages.toml index 8302ff49c5a5..9ba3f19b915e 100644 --- a/languages.toml +++ b/languages.toml @@ -884,7 +884,20 @@ indent = { tab-width = 2, unit = " " } [[grammar]] name = "markdown" -source = { git = "https://github.com/MDeiml/tree-sitter-markdown", rev = "ab15701d8f3f68aeb74e30573b7d669a6ef2a7ed" } +source = { git = "https://github.com/MDeiml/tree-sitter-markdown", rev = "142a5b4a1b092b64c9f5db8f11558f9dd4009a1b", subpath = "tree-sitter-markdown" } + +[[language]] +name = "markdown.inline" +scope = "source.markdown.inline" +injection-regex = "markdown\\.inline" +file-types = [] +roots = [] +indent = { tab-width = 2, unit = " " } +grammar = "markdown_inline" + +[[grammar]] +name = "markdown_inline" +source = { git = "https://github.com/MDeiml/tree-sitter-markdown", rev = "142a5b4a1b092b64c9f5db8f11558f9dd4009a1b", subpath = "tree-sitter-markdown-inline" } [[language]] name = "dart" diff --git a/runtime/queries/markdown.inline/highlights.scm b/runtime/queries/markdown.inline/highlights.scm new file mode 100644 index 000000000000..d3dc038a8427 --- /dev/null +++ b/runtime/queries/markdown.inline/highlights.scm @@ -0,0 +1,37 @@ +;; From nvim-treesitter/nvim-treesitter +[ + (code_span) + (link_title) +] @markup.raw.inline + +[ + (emphasis_delimiter) + (code_span_delimiter) +] @punctuation.bracket + +(emphasis) @markup.italic + +(strong_emphasis) @markup.bold + +[ + (link_destination) + (uri_autolink) +] @markup.link.url + +[ + (link_text) + (image_description) +] @markup.link.text + +(link_label) @markup.link.label + +[ + (backslash_escape) + (hard_line_break) +] @constant.character.escape + +(image ["[" "]" "(" ")"] @punctuation.bracket) +(image "!" @punctuation.special) +(inline_link ["[" "]" "(" ")"] @punctuation.bracket) +(shortcut_link ["[" "]"] @punctuation.bracket) + diff --git a/runtime/queries/markdown.inline/injections.scm b/runtime/queries/markdown.inline/injections.scm new file mode 100644 index 000000000000..c137a8222a48 --- /dev/null +++ b/runtime/queries/markdown.inline/injections.scm @@ -0,0 +1,2 @@ + +((html_tag) @injection.content (#set! injection.language "html")) diff --git a/runtime/queries/markdown/highlights.scm b/runtime/queries/markdown/highlights.scm index 096c29542622..25f22ba73861 100644 --- a/runtime/queries/markdown/highlights.scm +++ b/runtime/queries/markdown/highlights.scm @@ -1,54 +1,53 @@ -(setext_heading (heading_content) @markup.heading.1 (setext_h1_underline) @markup.heading.marker) -(setext_heading (heading_content) @markup.heading.2 (setext_h2_underline) @markup.heading.marker) -(atx_heading (atx_h1_marker) @markup.heading.marker (heading_content) @markup.heading.1) -(atx_heading (atx_h2_marker) @markup.heading.marker (heading_content) @markup.heading.2) -(atx_heading (atx_h3_marker) @markup.heading.marker (heading_content) @markup.heading.3) -(atx_heading (atx_h4_marker) @markup.heading.marker (heading_content) @markup.heading.4) -(atx_heading (atx_h5_marker) @markup.heading.marker (heading_content) @markup.heading.5) -(atx_heading (atx_h6_marker) @markup.heading.marker (heading_content) @markup.heading.6) +(setext_heading (paragraph) @markup.heading.1 (setext_h1_underline) @markup.heading.marker) +(setext_heading (paragraph) @markup.heading.2 (setext_h2_underline) @markup.heading.marker) + +(atx_heading (atx_h1_marker) @markup.heading.marker (inline) @markup.heading.1) +(atx_heading (atx_h2_marker) @markup.heading.marker (inline) @markup.heading.2) +(atx_heading (atx_h3_marker) @markup.heading.marker (inline) @markup.heading.3) +(atx_heading (atx_h4_marker) @markup.heading.marker (inline) @markup.heading.4) +(atx_heading (atx_h5_marker) @markup.heading.marker (inline) @markup.heading.5) +(atx_heading (atx_h6_marker) @markup.heading.marker (inline) @markup.heading.6) [ (indented_code_block) - (code_fence_content) + (fenced_code_block) ] @markup.raw.block -(block_quote) @markup.quote - -(code_span) @markup.raw.inline - -(emphasis) @markup.italic - -(strong_emphasis) @markup.bold +(info_string) @label -(link_destination) @markup.link.url -(link_label) @markup.link.label +[ + (fenced_code_block_delimiter) +] @punctuation.bracket -(info_string) @label +[ + (link_destination) +] @markup.link.url [ - (link_text) - (image_description) -] @markup.link.text + (link_label) +] @markup.link.label [ (list_marker_plus) (list_marker_minus) (list_marker_star) -] @markup.list.numbered +] @markup.list.unnumbered [ (list_marker_dot) (list_marker_parenthesis) -] @markup.list.unnumbered +] @markup.list.numbered + +(thematic_break) @punctuation.delimiter [ - (backslash_escape) - (hard_line_break) -] @constant.character.escape + (block_continuation) + (block_quote_marker) +] @punctuation.special -(thematic_break) @punctuation.delimiter +[ + (backslash_escape) +] @string.escape -(inline_link ["[" "]" "(" ")"] @punctuation.bracket) -(image ["[" "]" "(" ")"] @punctuation.bracket) -(fenced_code_block_delimiter) @punctuation.bracket +(block_quote) @markup.quote diff --git a/runtime/queries/markdown/injections.scm b/runtime/queries/markdown/injections.scm index 10dcab0b9cb6..9940e961ac1a 100644 --- a/runtime/queries/markdown/injections.scm +++ b/runtime/queries/markdown/injections.scm @@ -1,9 +1,15 @@ +; From nvim-treesitter/nvim-treesitter + (fenced_code_block - (info_string) @injection.language - (code_fence_content) @injection.content - (#set! injection.include-children)) - -((html_block) @injection.content - (#set! injection.language "html")) -((html_tag) @injection.content - (#set! injection.language "html")) + (info_string + (language) @injection.language) + (code_fence_content) @injection.content (#set! injection.include-unnamed-children)) + +((html_block) @injection.content (#set! injection.language "html") (#set! injection.include-unnamed-children)) + +([ + (minus_metadata) + (plus_metadata) +] @injection.content (#set! injection.language "yaml") (#set! injection.include-unnamed-children)) + +((inline) @injection.content (#set! injection.language "markdown.inline") (#set! injection.include-unnamed-children)) From c750fa355f6723deb8f72515d2fe534d81f939b8 Mon Sep 17 00:00:00 2001 From: MDeiml Date: Sun, 24 Jul 2022 08:24:12 +0200 Subject: [PATCH 2/2] Add strikethrough --- languages.toml | 1 - runtime/queries/markdown.inline/highlights.scm | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/languages.toml b/languages.toml index 9ba3f19b915e..7947104bd5f7 100644 --- a/languages.toml +++ b/languages.toml @@ -892,7 +892,6 @@ scope = "source.markdown.inline" injection-regex = "markdown\\.inline" file-types = [] roots = [] -indent = { tab-width = 2, unit = " " } grammar = "markdown_inline" [[grammar]] diff --git a/runtime/queries/markdown.inline/highlights.scm b/runtime/queries/markdown.inline/highlights.scm index d3dc038a8427..ee0926a5f198 100644 --- a/runtime/queries/markdown.inline/highlights.scm +++ b/runtime/queries/markdown.inline/highlights.scm @@ -13,6 +13,8 @@ (strong_emphasis) @markup.bold +(strikethrough) @markup.strikethrough + [ (link_destination) (uri_autolink)