Ported from emacs-31 release branch:
commit 984932d4dc
Author: Sean Whitton <spwhitton@spwhitton.name>
Date: Mon Jun 1 11:48:42 2026 +0100
Disable markdown-ts-mode & markdown-ts-view-mode for Emacs 31
This synchronizes master's Eglot with emacs-31. The goal of that commit
is to demote those markdown-ts-mode.el modes to "experimental" status in
emacs-31, but Eglot was already relying on them and changes were needed.
984932d4dc is not the commit that best
does those changes, but since that commit was marked "do not merge" on
emacs-31, I thought it best to bring it here manually so any further
work -- which doesn't contradict the overarching intention -- can
continue in emacs-31 with clean merges to master (where the GNU-devel
core Elpa package is pulled from).
* lisp/progmodes/eglot.el (eglot-documentation-renderer)
(eglot--format-markup): Don't call eglot--builtin-mdown-p.
* doc/misc/eglot.texi (Customization Variables):
* etc/EGLOT-NEWS: Don't mention markdown-ts-mode
Co-authored-by: Sean Whitton <spwhitton@spwhitton.name>
Amend commit 75153f7b76 " Fix clash with locale variable" by Andreas Schwab.
Use DOCLANG instead of INFO_LANG for renaming, as documentation does not
produce only info output, and DOCLANG is iterating over DOCLANGS.
* Makefile.in: Rename 'LANG' to 'DOCLANG' to avoid clash with well-known
environment variable.
* doc/misc/Makefile.in: Adjusted accordingly, rename 'INFO_LANG' to 'DOCLANG'
where Andreas had already renamed 'LANG'.
* doc/translations/fr/misc/ses-fr.texi: rename 'INFO_LANG' to 'DOCLANG' in
explanatory comment.
LANG is a locale variable, use INFO_LANG instead.
* doc/misc/Makefile.in (INFO_LANG): Renamed from LANG, all uses
changed.
* doc/translations/fr/misc/ses-fr.texi: Use INFO_LANG instead of
LANG.
* doc/misc/Makefile.in (INFO_TARGETS): Always build efaq-w32.info.
(info_template): Remove unnecessary extra prerequisite for
$$(buildinfodir)/$(1)$$(lang_suffix).info, which repeats an
existing pattern rule and causes ccmode.info be constantly
regenerated.
The old boolean 'eglot-prefer-plaintext' is replaced by the more
expressive 'eglot-documentation-renderer', which can hold a major-mode
symbol, t (plain text), or nil (auto-detect each time). By selecting a
renderer once at startup the repeated per-request lookups are avoided,
which helps with the slowness reported in bug#81150.
* lisp/progmodes/eglot.el (eglot-prefer-plaintext): Declare obsolete
alias to 'eglot-documentation-renderer'.
(eglot-documentation-renderer): New defcustom, reworked from from
eglot-prefer-plaintext.
(eglot--accepted-formats): Use new variable.
(eglot--format-markup): Use new variable.
* etc/EGLOT-NEWS: Announce change.
* doc/misc/eglot.texi (Customization Variables): Document
eglot-documentation-renderer.
72d890c43e ; Update the documentation of 'debug'
69fd4b87f4 Don't make buffer read-only when reverting if 'view-mode'...
2955b51e80 ; * etc/NEWS: Document the change in mode-line faces.
# Conflicts:
# etc/NEWS
c3babe4b89 Fix lax whitespace highlight during query-replace
2e70b88623 Fix fill-paragraph combining text with preceding comment
ea54c33950 ; * etc/PROBLEMS: Link to bug#81124.
02897e208d emacsclient quote_argument is void
c618178066 ; Mark process-test-stderr-buffer as :unstable when runni...
2c1b45f5c5 ; Improve documentation of 'vc-dir-auto-hide-up-to-date'
768c8bf004 Revert "* admin/notes/documentation: Recommend not using ...
a7414f1859 native--compile-skip-on-battery-p: Try to fix ?b, ?B cond...
7cee526a8c Save and restore original local keymap in grep-edit-mode
4d87d203cf Fix display of inline SVG images in Rmail
4c55d04ebe Add treesit-ready-p check back to tree-sitter major modes...
7892ae5eaf Fix pathological slowness in flex completion
12eec781ed No longer raise error on HTTP 402 (Payment Required) (bug...
1800350b18 Avoid compilation-mode matching rust as gnu
The problems are:
- filtering out the info from info making templates misses some dependencies.
- naming PHONY target info.info is misleading, as there is also an info.info
in the info build directory
* doc/translations/fr/info_common.mk:
* doc/translations/default/info_common.mk: New file.
* doc/misc/Makefile.in: Get INFO_COMMON from language respective
info_common.mk helper script.
(INFO_TARGETS): Make it depend from info_common.mk settings.
(ORG_SETUP, ORG_SRC): Make it point at language specific sub-directory.
(texi_sources, DVI_TARGETS, HTML_TARGETS, PDF_TARGETS)
(PS_TARGETS, echo-info, info_template,efaq%$(lang_suffix).dvi)
(efaq%$(lang_suffix).pdf, efaq%$(lang_suffix).texi)
(efaq%$(lang_suffix).html): Make it use language specific suffix.
(${buildinfodir}/%$(lang_suffix).info, %$(lang_suffix).dvi)
(%$(lang_suffix).pdf, %$(lang_suffix).html, %$(lang_suffix).ps):
Make it use language specific suffix/subdirectory.
* Makefile.in (DOCLANGS): New variable, list of languages.
(install-info, uninstall): List targets into 'info_misc' for all languages.
(TAGS tags): Make tags for all languages.
($(DOCS)): Create target for all languages.
(texi_misc_fr, texi_misc_default): Set macro for all languages.
(srcdir_doc_info_dir_inputs): Macro concatenate texi_misc_lll for
all language lll.
* doc/misc/dbus.texi (Asynchronous Methods): HANDLER can also be
(HANDLER . ERROR-HANDLER).
* etc/NEWS: Mention ERROR-HANDLER of dbus-call-method-asynchronously.
* lisp/net/dbus.el (dbus-call-method-asynchronously): Adapt docstring.
(dbus-check-event, dbus-handle-event): HANDLER can also be
(HANDLER . ERROR-HANDLER).
* src/dbusbind.c (Fdbus_message_internal): HANDLER can also be
(HANDLER . ERROR-HANDLER). (Bug#80952)
* test/lisp/net/dbus-tests.el (dbus--test-method-another-handler)
(dbus--test-method-error-handler): New defvars.
(dbus--test-method-another-handler)
(dbus--test-method-error-handler): New functions.
(dbus-test04-call-method-error-handler): New test.
(dbus-test10-keep-fd): Extend test.
In addition to the automatic changes, also do the following,
needed due to recent Gnulib changes.
* admin/merge-gnulib (AVOIDED_MODULES): Add btoc32,
c32_apply_type_test, c32_get_type_test, c32isalnum, c32rtomb,
c32tolower, c32toupper, localeinfo, mbrtoc32-regular.
Remove btowc, iswctype, mbrtowc, wcrtomb, wctype, wctype-h.
Also remove iswblank, iswdigit, iswxdigit, locale-h, raise,
stdarg-h, some of which perhaps could have been removed earlier.
* configure.ac (_REGEX_AVOID_UCHAR_H): New macro.
7a17f97baa Prettify special glyphs
f13287fde0 Revert "sh-script: Mark + and * as punctuation rather tha...
70b79b3ed8 Rename `icalendar-recur' type and related functions
3d2bb233f2 ; Minor Tramp changes
f6281d757d ; * etc/NEWS: Tell how to disable 'markdown-ts-mode'.
142b1e0d4c Fix Lisp injection via X-Draft-From in Gnus
d6f7b2d99b Save/restore old_buffer slot via window configurations (B...
e0fbecaf65 Adapt ert-remote-temporary-file-directory settings
3de7f0ce5e Fix warning message in 'markdown-ts-mode--initialize'
7df8604ea6 ; Improve documentation of lazy-highlight in search and r...
2936b36164 Fix "assertion 'GTK_IS_WINDOW (window)' failed"
98348a0bdc [Xt] Fix child frame resizing glitch
13b29eebc1 Eglot: use standard face for completion annotations (bug#...
# Conflicts:
# etc/NEWS
* lisp/isearch.el (lazy-highlight, lazy-highlight-initial-delay)
(lazy-highlight-buffer, isearch-lazy-highlight, isearch-forward):
* lisp/replace.el (query-replace, query-replace-lazy-highlight)
(query-replace, query-replace-regexp): Doc fixes.
* doc/emacs/search.texi (Search Customizations): Document
'lazy-highlight-buffer' and 'lazy-highlight-buffer-max-at-a-time'.
Use @vtable to avoid the need of indexing each variable
separately.
cf96e9cb5a ; Fix byte-compilation warnings in non-Tree-Sitter builds
23575adc7b ; * doc/lispref/variables.texi (Local Variables): Fix typ...
8b6fb2f646 ; * doc/lispref/variables.texi (Local Variables): Fix 'na...
d3c72b8389 ; * src/xdisp.c (display_line): Fix commentary (bug#80693).
a981517b72 Fill margins with 'margin' face on truncated screen lines
8e37499035 ; * doc/lispref/os.texi (Init File): Fix markup (bug#81049).
f4c326c378 ; * src/sfnt.c (sfnt_read_cmap_format_12): Assert there's...
bf89ee6d07 ; * etc/PROBLEMS: Cursor not shown on Windows with system...
20500d6200 ; htmlfontify: Handle 'reset' face attribute value (bug#8...
d0d657fa90 ; Minor Tramp cleanup
93ea0d7d28 ; Improve documentation of VC commands in Dired
318084829c Eglot: adjust reference to completion frontends in manual
2a166c2dbd Eldoc: display documentation in visual-line-mode
aba60ad0c5 Eglot: prefer markdown-ts-view-mode for markup rendering ...
689c3bd508 Use 'read-multiple-choice' in 'markdown-ts-mode' (bug#81027)
71809ee5df Fix 'markdown-ts-code-span' face (bug#81026)
286833e401 Add read-only 'markdown-ts-view-mode' (bug#81023)
b39c123490 Fix strikethrough in 'markdown-ts-mode' (bug#80991)
0be998d4bc Fix code-span in headings in 'markdown-ts-mode' (bug#80979)
a00beb3a31 Make 'markdown-ts-inline-images' buffer local and test fo...
a0c05029fd * etc/NEWS: Mention new user option tramp-propagate-emacs...
2e71d2c709 Propagate EMACSCLIENT_TRAMP to remote hosts with Tramp
ff96db93f2 keyboard-tests.el: Try and fix the failure on EMBA
ce3098752c doc: Remove long obsolete references to `package-initialize`
9bc04b001a vc-next-action: Call vc-delete-file on FILESET-ONLY-FILES
13039e3442 ; touch-up last commit: copyright and comments
c2a24dcec8 ; update msys2 build helper for Emacs 31 & UCRT
3630baae72 hideshow: Support new 'margin' face for margin indicators...
20d17df3f4 Use the new 'margin' face in Flymake (bug#80693)
07f2bbc905 vc-dir-resynch-file: Pass down non-truename'd FILE
Eglot previously needed gfm-view-mode from markdown-mode.el to render
Markdown from LSP servers. It now prefers markdown-ts-view-mode when
available.
* lisp/progmodes/eglot.el (eglot--accepted-formats): Recognize
markdown-ts-view-mode as a Markdown renderer.
(eglot--format-markup): Rework with cl-labels; prefer
markdown-ts-view-mode over gfm-view-mode.
* doc/misc/eglot.texi (Eglot Features): Don't mention
markdown-mode directly.
* etc/EGLOT-NEWS: Mention change
Since Emacs-27, `package-initialize` is for internal use only,
and callers should either call `package-activate-all` instead
(cheaper and faster) or do nothing at all (because the other
functions should trigger the needed initialization automatically
as needed).
* doc/lispref/package.texi (Packaging Basics): Delete `package-initialize`.
* doc/misc/eglot.texi (Reporting bugs): Don't recommend using `package-initialize`.
* doc/misc/org.org (Using Emacs packaging system): Simplify the command
line since both `(require 'package)` and `(package-initialize)` are
redundant here.
* doc/misc/erc.texi: Change ERCVER to 5.7 without a "-git" suffix.
* lisp/erc/erc.el (erc-version): Change working version to 5.7-git. Do
the same for the package "Version" header. Bump required Compat version
to 31. Add new 5.7 to Emacs 32.1 mapping in top-level modification of
`customize-package-emacs-version-alist'.
* doc/misc/erc.texi: Change ERCVER to 5.6.2.31.1.
* lisp/erc/erc.el: Change "Version" package header to 5.6.2.31.1. Don't
update the `customize-package-emacs-version-alist' entry because this is
not a GNU ELPA release.
(erc-version): Change version to 5.6.2.31.1.
Do not merge to master.
A new basic face 'margin' is used for text displayed in the left and
right margin areas, i.e., the areas typically used by VCS and LSP
packages for per-line annotations. Its background defaults to the
frame default, preserving existing behavior for users who do not
customize it.
* etc/NEWS: Document the new 'margin' face.
* lisp/faces.el (margin): Add 'margin' face, inheriting from 'default'.
* src/dispextern.h (face_id): Add MARGIN_FACE_ID.
* src/xdisp.c (face_at_pos): Use 'margin' as the base face for
strings displayed in margin areas so that they inherit the gutter
background by default.
(extend_face_to_end_of_line): Compute 'margin_fill_face_id' from the
'margin' face. Use while loops to explicitly fill all empty character
slots in both left and right margins for both GUI and TTY branches.
(display_line): Call 'extend_face_to_end_of_line' for beyond-EOB rows
when the window has margins. Also extend the existing condition for
text rows with empty margins to trigger when the 'margin' face
background differs from the frame default, not only when the default
face is remapped.
* src/xfaces.c (realize_basic_faces): Realize 'margin' as a basic
face to support face-remapping and efficient lookup.
(Bug#80693)
* lisp/gnus/message.el (message-multi-smtp-send-mail): Set
'smtpmail-stream-type' if specificed in the header.
* doc/misc/message.texi (Mail Variables): Document that.
(Bug#80880)