mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-05-30 17:22:17 -07:00
markdown-ts-mode: Don't enable unconditionally by default
* lisp/textmodes/markdown-ts-mode.el (markdown-ts-mode-maybe): New function. (auto-mode-alist): Bind ".md", ".markdown", and ".mdx" to 'markdown-ts-mode-maybe' instead of 'markdown-ts-mode'. * etc/NEWS: Update the 'markdown-ts-mode' entry.
This commit is contained in:
parent
7a17f97baa
commit
eb653865c3
2 changed files with 24 additions and 17 deletions
17
etc/NEWS
17
etc/NEWS
|
|
@ -3938,19 +3938,12 @@ A major mode based on 'conf-mode' for editing ".npmrc" files.
|
|||
|
||||
*** New major mode 'markdown-ts-mode'.
|
||||
A major mode based on the tree-sitter library for editing Markdown
|
||||
files. This is now the default major mode for Markdown files. If you
|
||||
don't have the necessary tree-sitter grammar libraries installed, or if
|
||||
your Emacs was built without tree-sitter support, Emacs will now show a
|
||||
warning to that effect when you visit a Markdown file. If you don't
|
||||
want to use this mode and want to avoid these warnings, add the
|
||||
following to your init file:
|
||||
files. Markdown files are visited using this mode when the required
|
||||
tree-sitter grammars ('markdown' and 'markdown-inline') are available,
|
||||
or when the user has opted in via 'treesit-enabled-modes'. Otherwise,
|
||||
Markdown files fall back to 'text-mode'.
|
||||
|
||||
(add-to-list 'auto-mode-alist '("\\.md\\'" . fundamental-mode))
|
||||
(add-to-list 'auto-mode-alist '("\\.markdown\\'" . fundamental-mode))
|
||||
(add-to-list 'auto-mode-alist '("\\.mdx\\'" . fundamental-mode))
|
||||
|
||||
This will cause Emacs to visit Markdown files in Fundamental mode, which
|
||||
was the default before this mode was added to Emacs.
|
||||
To install the grammars, use 'M-x markdown-ts-mode-install-parsers'.
|
||||
|
||||
*** New major mode 'mhtml-ts-mode'.
|
||||
An optional major mode based on the tree-sitter library for editing HTML
|
||||
|
|
|
|||
|
|
@ -5401,14 +5401,14 @@ With a prefix argument, ARG, if needed, install parsers for `html',
|
|||
(cond ((treesit-ready-p '(markdown markdown-inline) t)
|
||||
(markdown-ts--set-up))
|
||||
(t
|
||||
(warn "markdown-ts-mode cannot be set up; using fundamental-mode.
|
||||
(warn "markdown-ts-mode cannot be set up; using text-mode.
|
||||
%s."
|
||||
(if (treesit-available-p)
|
||||
"The tree-sitter parsers `markdown' and `markdown-inline' were not found.
|
||||
Use the command `markdown-ts-mode-install-parsers' to install them.
|
||||
With a prefix argument, it can also install optional parsers"
|
||||
"Emacs was built without Tree-sitter support, or could not load Tree-sitter"))
|
||||
(fundamental-mode)))))
|
||||
(text-mode)))))
|
||||
|
||||
;;;###autoload
|
||||
(define-derived-mode markdown-ts-mode text-mode "Markdown"
|
||||
|
|
@ -5619,11 +5619,25 @@ If non-nil and `point' is in a table, enable
|
|||
(remove-hook 'post-command-hook
|
||||
#'markdown-ts--enable-in-table-mode 'local))))
|
||||
|
||||
;;;###autoload
|
||||
(defun markdown-ts-mode-maybe ()
|
||||
"Enable `markdown-ts-mode' when its grammars are available.
|
||||
Also propose to install the grammars when `treesit-enabled-modes'
|
||||
is t or contains the mode name."
|
||||
(declare-function treesit-language-available-p "treesit.c")
|
||||
(if (or (and (treesit-language-available-p 'markdown)
|
||||
(treesit-language-available-p 'markdown-inline))
|
||||
(eq treesit-enabled-modes t)
|
||||
(memq 'markdown-ts-mode treesit-enabled-modes))
|
||||
(markdown-ts-mode)
|
||||
(text-mode)))
|
||||
|
||||
;;;###autoload
|
||||
(when (boundp 'treesit-major-mode-remap-alist)
|
||||
(add-to-list 'auto-mode-alist '("\\.md\\'" . markdown-ts-mode))
|
||||
(add-to-list 'auto-mode-alist '("\\.markdown\\'" . markdown-ts-mode))
|
||||
(add-to-list 'auto-mode-alist '("\\.mdx\\'" . markdown-ts-mode))
|
||||
(add-to-list 'auto-mode-alist '("\\.md\\'" . markdown-ts-mode-maybe))
|
||||
(add-to-list 'auto-mode-alist '("\\.markdown\\'" . markdown-ts-mode-maybe))
|
||||
(add-to-list 'auto-mode-alist '("\\.mdx\\'" . markdown-ts-mode-maybe))
|
||||
;; To be able to toggle between an external package and core ts-mode:
|
||||
(add-to-list 'treesit-major-mode-remap-alist
|
||||
'(markdown-mode . markdown-ts-mode)))
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue