From 4e38fecc45bc049068b1be2793cd7ad67f809365 Mon Sep 17 00:00:00 2001 From: Juri Linkov Date: Sun, 4 May 2025 20:03:32 +0300 Subject: [PATCH] * lisp/textmodes/markdown-ts-mode.el: Improve. (markdown-ts-list-marker): Inherit from 'shadow' like in non-ts mode. (markdown-ts-block-quote): Inherit from 'italic' like in non-ts mode. (markdown-ts--treesit-settings): Use 'shadow' for parens in 'markdown-inline' only under 'inline_link' and 'image'. Use @markdown-ts-block-quote for 'block_quote'. Override with 'append' for links. (markdown-ts--range-settings): Use global html parser for 'html_tag' since its ranges are interconnected. (markdown-ts-setup): Create the 'html' parser. (cherry picked from commit 9e75d1815125178b4b8584faa02569d6b84fc0b5) --- lisp/textmodes/markdown-ts-mode.el | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/lisp/textmodes/markdown-ts-mode.el b/lisp/textmodes/markdown-ts-mode.el index cee38b0289a..c7a32d07a89 100644 --- a/lisp/textmodes/markdown-ts-mode.el +++ b/lisp/textmodes/markdown-ts-mode.el @@ -127,10 +127,10 @@ maps to tree-sitter language `cpp'.") (defface markdown-ts-heading-6 '((t (:inherit outline-6))) "Face for sixth level Markdown headings.") -(defface markdown-ts-list-marker '((t (:inherit font-lock-keyword-face))) +(defface markdown-ts-list-marker '((t (:inherit shadow))) "Face for Markdown list markers like - and *.") -(defface markdown-ts-block-quote '((t (:inherit font-lock-string-face))) +(defface markdown-ts-block-quote '((t (:inherit italic))) "Face for Markdown block quotes.") (defface markdown-ts-language-keyword '((t (:inherit font-lock-keyword-face))) @@ -140,10 +140,11 @@ maps to tree-sitter language `cpp'.") (defvar markdown-ts--treesit-settings (treesit-font-lock-rules - :language 'markdown + :language 'markdown-inline :override t :feature 'delimiter - '([ "[" "]" "(" ")" ] @shadow) + '((inline_link [ "[" "]" "(" ")" ] @shadow) + (image [ "!" "[" "]" "(" ")" ] @shadow)) :language 'markdown :feature 'heading @@ -172,14 +173,12 @@ maps to tree-sitter language `cpp'.") (list_item (list_marker_star) @markdown-ts-list-marker) (list_item (list_marker_plus) @markdown-ts-list-marker) (list_item (list_marker_minus) @markdown-ts-list-marker) - (list_item (list_marker_dot) @markdown-ts-list-marker) - - (block_quote) @markdown-ts-block-quote) + (list_item (list_marker_dot) @markdown-ts-list-marker)) :language 'markdown :feature 'paragraph :override 'prepend - '((block_quote) @italic + '((block_quote) @markdown-ts-block-quote (block_quote_marker) @markdown-ts-delimiter (fenced_code_block_delimiter) @markdown-ts-delimiter (fenced_code_block @@ -189,7 +188,7 @@ maps to tree-sitter language `cpp'.") (paragraph (inline (block_continuation) @markdown-ts-delimiter)))) :language 'markdown-inline - :override t ;; override paren delimiter inside inline link + :override 'append :feature 'paragraph-inline '(((image_description) @link) ((link_destination) @font-lock-string-face) @@ -312,7 +311,6 @@ the same features enabled in MODE." :embed 'html :host 'markdown-inline - :local t '((html_tag) @html) :embed #'markdown-ts--convert-code-block-language @@ -329,6 +327,7 @@ the same features enabled in MODE." (setq-local treesit-range-settings (markdown-ts--range-settings)) (when (treesit-ready-p 'html t) + (treesit-parser-create 'html) (require 'html-ts-mode) (defvar html-ts-mode--font-lock-settings) (defvar html-ts-mode--treesit-font-lock-feature-list) -- 2.39.5