diff options
| author | Matthias Deiml <matthias@deiml.net> | 2022-06-26 18:02:29 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-06-26 18:02:29 +0200 |
| commit | 002084b1bea4311fdac184f080206bf890937d80 (patch) | |
| tree | 7215a635789883d0f7b00aca3d59a4f19a566b6e /queries/markdown_inline | |
| parent | Chore: remove prefix from parser "location" property (diff) | |
| download | nvim-treesitter-002084b1bea4311fdac184f080206bf890937d80.tar nvim-treesitter-002084b1bea4311fdac184f080206bf890937d80.tar.gz nvim-treesitter-002084b1bea4311fdac184f080206bf890937d80.tar.bz2 nvim-treesitter-002084b1bea4311fdac184f080206bf890937d80.tar.lz nvim-treesitter-002084b1bea4311fdac184f080206bf890937d80.tar.xz nvim-treesitter-002084b1bea4311fdac184f080206bf890937d80.tar.zst nvim-treesitter-002084b1bea4311fdac184f080206bf890937d80.zip | |
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
Diffstat (limited to 'queries/markdown_inline')
| -rw-r--r-- | queries/markdown_inline/highlights.scm | 67 | ||||
| -rw-r--r-- | queries/markdown_inline/injections.scm | 1 |
2 files changed, 68 insertions, 0 deletions
diff --git a/queries/markdown_inline/highlights.scm b/queries/markdown_inline/highlights.scm new file mode 100644 index 000000000..495e6f1ab --- /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 000000000..5cf45dac2 --- /dev/null +++ b/queries/markdown_inline/injections.scm @@ -0,0 +1 @@ +((html_tag) @html) |
