From 002084b1bea4311fdac184f080206bf890937d80 Mon Sep 17 00:00:00 2001 From: Matthias Deiml Date: Sun, 26 Jun 2022 18:02:29 +0200 Subject: feat(markdown)!: switch to split parser (#3048) * switch to split markdown parser with separate block and inline parsers to improve performance * add exclude_children! directive (useful for something like Injected markdown incorrectly highlights indented docstrings #2212) * split markdown queries into block and inline ones and add the injection for inline into block grammar * add include_dir option to parser configs (needed because the two grammars don't live in the repos root directory) BREAKING CHANGE: downstream queries need to be adapted to new parser --- queries/markdown_inline/highlights.scm | 67 ++++++++++++++++++++++++++++++++++ queries/markdown_inline/injections.scm | 1 + 2 files changed, 68 insertions(+) create mode 100644 queries/markdown_inline/highlights.scm create mode 100644 queries/markdown_inline/injections.scm (limited to 'queries/markdown_inline') diff --git a/queries/markdown_inline/highlights.scm b/queries/markdown_inline/highlights.scm new file mode 100644 index 00000000..495e6f1a --- /dev/null +++ b/queries/markdown_inline/highlights.scm @@ -0,0 +1,67 @@ +;; From MDeiml/tree-sitter-markdown +[ + (code_span) + (link_title) +] @text.literal + +[ + (emphasis_delimiter) + (code_span_delimiter) +] @punctuation.delimiter + +(emphasis) @text.emphasis + +(strong_emphasis) @text.strong + +[ + (link_destination) + (uri_autolink) +] @text.uri + +[ + (link_label) + (link_text) + (image_description) +] @text.reference + +[ + (backslash_escape) + (hard_line_break) +] @string.escape + +; "(" not part of query because of +; https://github.com/nvim-treesitter/nvim-treesitter/issues/2206 +; TODO: Find better fix for this +(image ["!" "[" "]" "("] @punctuation.delimiter) +(inline_link ["[" "]" "("] @punctuation.delimiter) +(shortcut_link ["[" "]"] @punctuation.delimiter) + +([ + (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 "")) diff --git a/queries/markdown_inline/injections.scm b/queries/markdown_inline/injections.scm new file mode 100644 index 00000000..5cf45dac --- /dev/null +++ b/queries/markdown_inline/injections.scm @@ -0,0 +1 @@ +((html_tag) @html) -- cgit v1.2.3