aboutsummaryrefslogtreecommitdiffstats
path: root/queries/markdown_inline
diff options
context:
space:
mode:
authorMatthias Deiml <matthias@deiml.net>2022-06-26 18:02:29 +0200
committerGitHub <noreply@github.com>2022-06-26 18:02:29 +0200
commit002084b1bea4311fdac184f080206bf890937d80 (patch)
tree7215a635789883d0f7b00aca3d59a4f19a566b6e /queries/markdown_inline
parentChore: remove prefix from parser "location" property (diff)
downloadnvim-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.scm67
-rw-r--r--queries/markdown_inline/injections.scm1
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)