feat(markdown): add treesit support

This commit is contained in:
Henrik Lissner
2025-05-07 19:37:48 -04:00
parent a372eba7cd
commit 7cb23f3359
4 changed files with 31 additions and 0 deletions

View File

@ -33,11 +33,16 @@ for Markdown's syntax is the format of plain text email. -- John Gruber
- +grip ::
Enable [[https://github.com/seagle0128/grip-mode][grip support]] (on [[kbd:][<localleader> p]]), to provide live github-style
previews of your markdown (or org) files.
- +tree-sitter ::
Enable tree-sitter support for Markdown files. Note that tree-sitter support
on Emacs 31 is superior to 30 and under. Requires the [[doom-module::tools
tree-sitter]] module.
** Packages
- [[doom-package:edit-indirect]]
- [[doom-package:evil-markdown]] if [[doom-module::editor evil +everywhere]]
- [[doom-package:grip-mode]] if [[doom-module:+grip]]
- [[doom-package:markdown-ts-mode]] if [[doom-module:+tree-sitter]]
- [[doom-package:markdown-mode]]
- [[doom-package:markdown-toc]]

View File

@ -126,6 +126,23 @@ capture, the end position, and the output buffer.")
:desc "GFM checkbox" "x" #'markdown-toggle-gfm-checkbox)))
(use-package! markdown-ts-mode
:when (modulep! +tree-sitter)
:when (fboundp 'markdown-ts-mode)
:defer t
:init
(set-tree-sitter! 'markdown-mode 'markdown-ts-mode
'((markdown :url "https://github.com/tree-sitter-grammars/tree-sitter-markdown"
:rev "v0.4.1"
:source-dir "tree-sitter-markdown-inline/src")
(markdown-inline :url "https://github.com/tree-sitter-grammars/tree-sitter-markdown"
:rev "v0.4.1"
:source-dir "tree-sitter-markdown-inline/src")))
:config
(cl-callf2 delete '("\\.md\\'" . markdown-ts-mode) auto-mode-alist))
(use-package! evil-markdown
:when (modulep! :editor evil +everywhere)
:hook (markdown-mode . evil-markdown-mode)

View File

@ -1,6 +1,10 @@
;; -*- lexical-binding: t; no-byte-compile: t; -*-
;;; lang/markdown/doctor.el
(assert! (or (not (modulep! +tree-sitter))
(modulep! :tools tree-sitter))
"This module requires (:tools tree-sitter)")
(when (require 'markdown-mode nil t)
(cond ((eq markdown-command #'+markdown-compile)
(unless (cl-loop for (exe . cmd) in (list (cons "marked" '+markdown-compile-marked)

View File

@ -8,6 +8,11 @@
;; present when you call `markdown-edit-code-block'.
(package! edit-indirect :pin "82a28d8a85277cfe453af464603ea330eae41c05")
(when (modulep! +tree-sitter)
(package! markdown-ts-mode
:built-in 'prefer ; Emacs 31+ has a superior markdown-ts-mode
:pin "2f1ee8b94cdf53cebc31ae08ecfbba846193d5e1"))
(when (modulep! +grip)
(package! grip-mode :pin "96a927dce69d7607b981d7754cf8b415ebf9d6a8"))