Merge from origin/emacs-31

4f13f52a3a * build-aux/git-hooks/commit-msg: Replace Markdown-style ...
dd42133315 vc-test--rename-file: Disable part of test for SCCS
eb653865c3 markdown-ts-mode: Don't enable unconditionally by default

# Conflicts:
#	etc/NEWS
This commit is contained in:
Sean Whitton 2026-05-23 17:30:21 +01:00
commit a96fc7d546
4 changed files with 35 additions and 26 deletions

View file

@ -75,6 +75,7 @@ exec $awk \
}
c_lower = "abcdefghijklmnopqrstuvwxyz"
unsafe_gnu_url = "(http|ftp)://([" c_lower ".]*\\.)?(gnu|fsf)\\.org"
markdown_quotation = "(^|[^\\\\])`[^'\''`]+`"
}
{ input[NR] = $0 }
@ -92,11 +93,6 @@ exec $awk \
status = 1
}
/(^|[^\\])`[^'\''`]+`/ {
print "Markdown-style quotes in commit message"
status = 1
}
nlines == 0 && $0 !~ non_space { next }
{ nlines++ }
@ -141,7 +137,7 @@ exec $awk \
status = 1
}
$0 ~ unsafe_gnu_url {
$0 ~ unsafe_gnu_url || $0 ~ markdown_quotation {
needs_rewriting = 1
}
@ -167,7 +163,13 @@ exec $awk \
suffix = substr(line, RSTART)
line = prefix "https:" substr(suffix, 5 + (suffix ~ /^http:/))
}
print line >file
while (match(line, markdown_quotation)) {
prefix = substr(line, 1, RSTART)
within = substr(line, RSTART + 2, RLENGTH - 3)
suffix = substr(line, RSTART + RLENGTH)
line = prefix "'\''" within "'\''" suffix
}
print line >file
}
if (close(file) != 0) {
print "Cannot rewrite: " file

View file

@ -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

View file

@ -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)))

View file

@ -592,8 +592,8 @@ This checks also `vc-backend' and `vc-responsible-backend'."
'added))))
;; Test OK-IF-ALREADY-EXISTS.
;; RCS and SRC don't support `vc-delete-file'.
(unless (memq backend '(RCS SRC))
;; RCS, SRC and SCCS don't support `vc-delete-file'.
(unless (memq backend '(RCS SRC SCCS))
(let ((tmp-name (expand-file-name "qux" default-directory))
(new-name (expand-file-name "quuux" default-directory)))
(write-region "qux" nil tmp-name nil 'nomessage)