diff --git a/ChangeLog.3 b/ChangeLog.3 index 7d9ac034cdc..e34e7bfc6f4 100644 --- a/ChangeLog.3 +++ b/ChangeLog.3 @@ -3149,7 +3149,7 @@ Remove mention of removed `gnus-treat-play-sounds' variable from manual - * info/gnus.info: Remove `gnus-treat-play-sounds' from + * doc/misc/gnus.texi: Remove `gnus-treat-play-sounds' from manual. According to lisp/gnus/ChangeLog.3 this variable was removed in 2010 (bug#53192). @@ -46460,7 +46460,7 @@ * lisp/subr.el (ctl-x-map): Initialize inside the declaration. - * src/command.h (control_x_map): + * src/commands.h (control_x_map): * src/keymap.c (control_x_map): Delete variable. (syms_of_keymap): * src/keyboard.c (keys_of_keyboard): diff --git a/ChangeLog.5 b/ChangeLog.5 index 43806515e08..ff0d0aebc80 100644 --- a/ChangeLog.5 +++ b/ChangeLog.5 @@ -1,3 +1,63126 @@ +2026-05-07 Sean Whitton + + Cut the emacs-31 release branch + + * README: + * configure.ac: + * exec/configure.ac: + * java/AndroidManifest.xml.in (Version-code): + * msdos/sed2v2.inp: + * nt/README.W32: Bump Emacs version to 31.0.60. + * lisp/cus-edit.el (customize-changed-options-previous-release): + Set last version to 30.2. + +2026-05-07 Zeke Dou (tiny change) + + Move ns_init_colors() after init_callproc() (bug#80752) + + 'data-directory' needs to be established in advance of 'ns_init_colors' + to ensure the file "etc/rgb.txt" is read. This was encountered on an + out-of-tree Nix build. + + * src/emacs.c (main): Move the 'ns_init_colors' after 'init_callproc'. + +2026-05-07 Jonas Bernoulli + + Update to Transient v0.13.3-10-g87d0ca08 + +2026-05-07 Eli Zaretskii + + Fix infloop in redisplay due to continuation glyphs + + * src/xdisp.c (display_line): When inserting continuation glyphs, + account for the border glyph in non-rightmost windows on TTY + frames. (Bug#80975) + +2026-05-07 Sean Whitton + + Unpreload package-activate-all + + See for my reasoning. + + * lisp/emacs-lisp/package-activate.el (package-activate-all): + Unpreload. + +2026-05-07 Dmitry Gutov + + [GTK3] Move the frame to position before showing + + * src/xterm.c (x_make_frame_visible): Move XMoveWindow call before + gtk_widget_show_all, so that the move happens before the frame + become visible (bug#80662). + +2026-05-07 Dmitry Gutov + + [GTK3] Improve the resize -> hide -> show scenario + + * src/gtkutil.c (xg_frame_set_char_size) + (xg_frame_set_size_and_position): Call gtk_window_resize for + child frames too, to record _GtkWindowGeometryInfo#resize_width + and resize_height. They are later looked up by + gtk_widget_show_all in x_make_frame_visible (bug#80662). + Without this the widgets go back and forth between the + remembered and actual sizes after make-visible. + +2026-05-06 Michael Albinus + + Handle long environment variables in Tramp oricesses + + * lisp/net/tramp-sh.el (tramp-sh-handle-make-process): + Handle loooong environment variables. (Bug#80783) + + * test/lisp/net/tramp-tests.el (tramp-test33-environment-variables): + Adapt test. + +2026-05-06 Dmitry Gutov + + Fix flicker of child frame right after make-frame-visible + + * src/xterm.c (x_make_frame_visible): Call SET_FRAME_GARBAGED + before making a child frame visible (bug#80943). + +2026-05-05 Stefan Monnier + + (help--symbol-completion-table): Try and fix bug#80873 + + * lisp/help-fns.el (help--symbol-completion-table): Don't let + `test-completion` pretend that `definition-prefixes` are + actually valid function names. + +2026-05-05 Juri Linkov + + Improve 'context-menu-send-to' (bug#79512) + + * lisp/mouse.el (context-menu-functions): Add missing + 'context-menu-send-to' to :type. + (context-menu-send-to): Get non-nil items to avoid + useless message "Nothing to send". + + * lisp/send-to.el (send-to-handlers): Change from + 'defvar-local' to 'defvar' to allow easier global configuration. + (send-to-supported-p): Check for non-nil handler. + +2026-05-05 Sean Whitton + + vc-switch-working-tree: Don't find non-VC projects + + * lisp/vc/vc.el (project-current-directory-override): + Delete declaration. + (project-find-matching-buffer-function): Declare. + (vc-switch-working-tree): + Don't find non-VC projects (bug#80939). + +2026-05-05 Sean Whitton + + vc-finish-logentry: Skip displaying async command buffer sometimes + + * lisp/vc/vc-dispatcher.el (vc-finish-logentry): Don't display + the async command buffer if vc-display-failed-async-commands is + non-nil. + +2026-05-05 Eshel Yaron + + elisp-mode: Cache 'help-echo' function results (bug#80948) + + This ensures we only compute the 'help-echo' string once per + symbol in a certain position. + + * lisp/progmodes/elisp-mode.el + (elisp--annotate-symbol-with-help-echo): Add caching for + when the symbol role's :help property is a function. + +2026-05-05 Andrea Alberti + + Introduce 'margin' face for window margin background + + 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) + +2026-05-05 Augusto Stoffel + + Accept stream type as 4th argument of X-Message-SMTP-Method header + + * 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) + +2026-05-05 Rahul Martim Juliato + Stéphane Marks + + Improve 'markdown-ts-mode' + + Overhaul 'markdown-ts-mode' with comprehensive fontification, + code block handling, editing commands, fill-paragraph support, + inline image previews, a mode menu, and table editing. Add + 'markdown-ts-mode-x.el' with conversion/export and TOC support. + + * lisp/textmodes/markdown-ts-mode.el: Add Version, + Package-Requires, and Keywords header fields. Expand Commentary + with documentation for code block language modes, code block + commands, bidirectional text, and known tree-sitter grammar + bugs. + (require 'goto-addr, xref, icons): New requirements. + (markdown-ts): New customization group with :version and + :package-version tags. + (markdown-ts-hide-markup): Add :version and :package-version. + (markdown-ts-ellipsis): New option for folded heading ellipsis. + (markdown-ts-menu-bar-show): New option to toggle mode menu. + (markdown-ts-default-folding): New option for default fold + level. + (markdown-ts-inline-images): New option to display inline + images. + (markdown-ts-image-max-width): New option for image max width. + (markdown-ts-display-remote-inline-images): New option for + remote image handling. + (markdown-ts--resolve-display-value): New helper to resolve + display values using char-displayable-p. + (markdown-ts-checked-checkbox): New option for checked checkbox + display string or icon. + (markdown-ts-checked-checkbox-icon): New icons.el icon for the + checked variant. + (markdown-ts-unchecked-checkbox): New option for unchecked + checkbox display string or icon. + (markdown-ts-unchecked-checkbox-icon): New icons.el icon for the + unchecked variant. + (markdown-ts-thematic-break-character): New option for thematic + break display character. + (markdown-ts-hard-line-break-backslash): New option for the + glyph shown in place of a trailing-backslash hard line break + when markup is hidden. + (markdown-ts-hard-line-break-space): New option for the glyph + shown in place of a trailing-spaces hard line break when markup + is hidden. + (markdown-ts-code-block-in-context-mode-lighter): New option for + code block context mode lighter string. + (markdown-ts-inhibit-code-block-mode-warnings): New option to + inhibit code-block major-mode messages and warnings. + (markdown-ts-table-default-column-width): New option for default + table column width. + (markdown-ts-enable-table-mode): New option to enable table + mode. + (markdown-ts-table-auto-align): New option for triggers that + cause automatic table alignment. + (markdown-ts-table-align-features): New option for table align + features. + (markdown-ts-in-table-mode-lighter): New option for + markdown-ts-in-table-mode lighter string. + (markdown-ts-emphasis, markdown-ts-bold) + (markdown-ts-strikethrough, markdown-ts-link) + (markdown-ts-link-destination, markdown-ts-code-span) + (markdown-ts-code-block, markdown-ts-code-block-markup-hidden) + (markdown-ts-indented-code-block, markdown-ts-html-tag) + (markdown-ts-html-block, markdown-ts-thematic-break) + (markdown-ts-entity-reference) + (markdown-ts-numeric-character-reference, markdown-ts-latex) + (markdown-ts-table-header, markdown-ts-table-cell) + (markdown-ts-table-delimiter-cell, markdown-ts-task-unchecked) + (markdown-ts-task-checked): New faces. + (markdown-ts-hard-line-break-backslash) + (markdown-ts-hard-line-break-backslash-hidden) + (markdown-ts-hard-line-break-space) + (markdown-ts-hard-line-break-space-hidden): New faces for the + two hard-line-break variants, with distinct shown/hidden + appearances. + (markdown-ts-in-code-block): New face for when point is inside a + fenced code block. + (markdown-ts-table): New face for Markdown pipe table + background. + (markdown-ts-in-table): New face for markdown-ts-in-table-mode + when point is in a table. + (markdown-ts--set-up-inline): New variable for lightweight setup + in embedded inline markdown-ts-mode buffers used by code block + commands. + (markdown-ts-default-code-block-mode): New variable to define + default mode for anonymous code blocks. + (markdown-ts-fontify-code-blocks-natively): New option to + enable/disable native fontification of fenced code block + contents. + (markdown-ts-enable-code-block-context-mode): New option to + enable/disable code block context integration. + (markdown-ts-code-block-modes): New variable replacing + markdown-ts--code-block-language-map and + markdown-ts-code-block-source-mode-map with unified language to + mode mapping including heuristic lookup. + (markdown-ts-code-block-force-conventional-modes): New variable + listing tree-sitter modes whose fontification of code block + content should be harvested via a temporary buffer. + (markdown-ts-table-export-buffer): New constant for table export + output buffer name. + (markdown-ts--table-row-types, markdown-ts--table-cell-types) + (markdown-ts--table-delimiter-cell-types) + (markdown-ts--table-delimiter-cell-subtypes): New constants for + pipe table node type classification. + (markdown-ts--make-link-button): New function to create + clickable link buttons with mailto, browse-url, and find-file + dispatch. + (markdown-ts--fontify-link-destination): New fontifier that + hides link destinations when markup is hidden. + (markdown-ts--link-ref-cache, markdown-ts--link-ref-cache-tick) + (markdown-ts--link-ref-definitions) + (markdown-ts--resolve-link-ref): New link reference definition + cache with case-insensitive matching per CommonMark spec. + (markdown-ts--fontify-link-node): New fontifier for inline, + reference, shortcut, and collapsed links as clickable buttons. + (markdown-ts--fontify-autolink): New fontifier for URI and email + autolinks with angle bracket hiding. + (markdown-ts--fontify-link-ref-label) + (markdown-ts--fontify-link-ref-destination): New fontifiers for + link reference definitions. + (markdown-ts--slug-github-strip-re, markdown-ts--slug-github) + (markdown-ts--slug-pandoc, markdown-ts--explicit-id-re) + (markdown-ts--heading-text-and-id) + (markdown-ts--heading-id-cache) + (markdown-ts--heading-id-cache-tick) + (markdown-ts--build-heading-ids, markdown-ts--heading-ids) + (markdown-ts--follow-fragment): New fragment link support with + GitHub and Pandoc slug algorithms. + (markdown-ts--latex-block-valid-p) + (markdown-ts--fontify-latex-block): New LaTeX/math fontifier + with cross-paragraph validation. + (markdown-ts--fontify-backslash-escape): New fontifier that + hides backslash in escapes except inside LaTeX blocks. + (markdown-ts--decode-entity, markdown-ts--fontify-entity): New + HTML entity decoder and fontifier using org-entities and + sgml-char-names with display property for decoded values. + (markdown-ts--fontify-checkbox): New fontifier showing the + configured checkbox glyph when markup is hidden. + (markdown-ts--fontify-hard-line-break): New fontifier for + 'hard_line_break' nodes. + (markdown-ts--fontify-heading): New fontifier for ATX and Setext + headings. + (markdown-ts--fontify-thematic-break): New fontifier showing + horizontal line when markup is hidden. + (markdown-ts--fontify-code-block): New fontifier applying + background overlay to code blocks with language and mode + properties. + (markdown-ts-at-code-block-p) + (markdown-ts-code-block-language-at) + (markdown-ts-code-block-mode-at): New accessors for code block + overlay properties. + (markdown-ts--imenu-code-block-node-p): New helper for imenu + code block detection. + (markdown-ts--image-alone-on-line-p) + (markdown-ts--fontify-image): New inline image display with + standalone and inline positioning. + (markdown-ts--bare-url-regexp) + (markdown-ts--bare-email-uri-regexp) + (markdown-ts--fontify-bare-uri): New bare URL/email + fontification via jit-lock using goto-addr regexps. + (markdown-ts--treesit-settings): Rewrite with dedicated faces, + custom fontifiers, and new font-lock features for all inline and + block elements. Also add a new 'error' font-lock feature + highlighting tree-sitter ERROR nodes. + (markdown-ts--code-block-languages) + (markdown-ts--code-block-non-ts-modes): New buffer-local alists + for code block language tracking. + (markdown-ts--harvest-mode-treesit-configuration): Rename from + markdown-ts--harvest-treesit-configs with delay-mode-hooks. + (markdown-ts--configure-current-buffer): Rename from + markdown-ts--add-config-for-mode. + (markdown-ts--language-at-node): New helper extracting language + symbol from code_fence_content node. + (markdown-ts--non-ts-fontify-cache): New buffer-local hash table + caching fontification results for non-tree-sitter code blocks. + (markdown-ts--fontify-non-ts-collect-faces): New function + harvesting face properties from a mode in an indirect or + temporary buffer. + (markdown-ts--fontify-non-ts-code-block): New fontifier for + non-tree-sitter modes via temporary buffer font-lock. + (markdown-ts--code-block-language-mode): New function with + heuristic mode name probing. + (markdown-ts--code-block-ts-language): Rename from + markdown-ts--convert-code-block-language with support for non-ts + modes and recursive markdown handling. + (markdown-ts-code-block-commands) + (markdown-ts-code-block-thing-commands) + (markdown-ts-code-block-region-commands): New command lists for + code-block context execution. + (markdown-ts--enable-code-block-in-context-mode) + (markdown-ts--maybe-run-command-in-code-block) + (markdown-ts--code-block-xref-find-definitions) + (markdown-ts--run-command-in-code-block): New code block minor + mode with temp-buffer command dispatch. + (markdown-ts--code-block-newline): New command for newline + inside code blocks, dispatching to the block's mode. + (markdown-ts--range-settings): Update range configuration; + remove :range-fn treesit-range-fn-exclude-children. + (markdown-ts--remove-image-overlays) + (markdown-ts--outline-view-change): New helpers for image + overlay management during outline fold/unfold. + (markdown-ts--outline-invisible-p): New helper testing whether a + position is inside an outline-folded region. + (markdown-ts--host-ranges-notifier): New function pruning stale + code block overlays when the host parse tree changes. + (markdown-ts--barf-if-not-mode): New helper signaling a + user-error when the current buffer is not derived from + markdown-ts-mode. + (markdown-ts-code-block-in-context-mode): New minor mode enabled + when point is within a fenced code block, activating + markdown-ts-code-block-in-context-mode-map so eligible commands + dispatch to the block's major mode. + (markdown-ts--set-hide-markup): Clear image overlays when + toggling markup visibility. + (markdown-ts--set-inline-images) + (markdown-ts-toggle-inline-images): New functions for toggling + inline image display. + (markdown-ts--parser-heading-max-level): New constant. + (markdown-ts--heading-at-point, markdown-ts--heading-level) + (markdown-ts--section-at-point): New heading navigation helpers. + (markdown-ts-promote, markdown-ts-demote): New commands for + heading and list item promotion/demotion with region support. + (markdown-ts--promote-or-demote) + (markdown-ts--promote-or-demote-region): New heading level + adjustment functions. + (markdown-ts-move-subtree-up, markdown-ts-move-subtree-down): + New commands for moving sections and list items. + (markdown-ts--section-folded-p) + (markdown-ts--move-subtree-up-or-down): New subtree move with + folding state preservation. + (markdown-ts-toggle-checkbox): New command to toggle task list + checkboxes. + (markdown-ts--list-item-at-point): New helper with block quote + marker handling. + (markdown-ts--list-marker-width, markdown-ts--list-item-region) + (markdown-ts--list-ordered-item-p): New list item helpers. + (markdown-ts--list-promote-or-demote): New function with ordered + list nesting guard. + (markdown-ts--list-node-bol, markdown-ts--list-move): New list + item movement functions. + (markdown-ts-renumber-list): New command for sequential list + renumbering with prefix argument support. + (markdown-ts--list-item-new-marker) + (markdown-ts--new-marker-for-line): New marker string generators + for list item insertion. + (markdown-ts--line-block-quote-depth): New helper counting block + quote depth. + (markdown-ts-newline): New RET command for context-aware + newline. + (markdown-ts-insert-list-item): New M-RET command that creates a + new list item. + (markdown-ts--fill-unfillable-block-query): New tree-sitter + query for unfillable blocks. + (markdown-ts--list-item-text-column): New helper for list item + text alignment. + (markdown-ts--fill-list-item): New function filling within list + items without merging adjacent items. + (markdown-ts--adaptive-fill): New adaptive fill function for + list item continuation. + (markdown-ts--fill-forward-paragraph): New paragraph motion + respecting list items and unfillable blocks. + (markdown-ts-fill-paragraph): New fill-paragraph-function with + cond* dispatch for lists, block quotes, HTML comments, and + unfillable blocks. + (markdown-ts--fill-html-comment): New HTML comment filler with + continuation alignment. + (markdown-ts--block-quote-prefix): New helper preserving + existing block quote marker style. + (markdown-ts--fill-block-quote): New block quote filler with + list item text column alignment. + (markdown-ts-emphasis-alist): New alist of emphasis markers. + (markdown-ts--emphasis-node-at-point): New tree-sitter based + emphasis detection. + (markdown-ts-remove-emphasis): New command removing emphasis at + point or region. + (markdown-ts-emphasize): New interactive emphasis insertion with + region wrapping and word-at-point support. + (markdown-ts-insert-structure): New command for inserting code + blocks, block quotes, and dividers. + (markdown-ts--insert-code-block): New function with language + completion from known modes. + (markdown-ts--insert-block-quote): New function with region + wrapping. + (markdown-ts--insert-divider): New function for horizontal + rules. + (markdown-ts--apply-ellipsis): New function applying custom + ellipsis via display table. + (markdown-ts--set-up): Rename from markdown-ts-setup. + (markdown-ts-outline-cycle): New TAB command cycling outline + visibility on headings. + (markdown-ts-mode-map): New keymap for code block navigation, + bindings for heading navigation, structure editing, emphasis, + and list operations. + (markdown-ts-code-block-in-context-mode-map): New keymap for + code block context. + (markdown-ts-mode-menu): New menu bar with Show/Hide, Navigate + Headings, Edit Structure, and Editing sections. + (markdown-ts-mode): Add outline-minor-mode, ellipsis, folding, + fill-paragraph integration, code-block-context-mode hooks, + comment settings, and outline-view-change-hook. Use + markdown-ts-mode directly in auto-mode-alist instead of + markdown-ts-mode-maybe. + (markdown-ts-mode-install-parsers): New command for installing + required and optional tree-sitter language grammars. + (markdown-ts-code-block-context-mode): New minor mode for code + block context. + (markdown-ts--find-code-block-delimiter) + (markdown-ts--find-next-code-block-delimiter): New helpers for + locating fenced code block delimiter nodes. + (markdown-ts-move-to-next-code-block) + (markdown-ts-move-to-previous-code-block): New commands for + navigating between fenced code blocks. + (markdown-ts--table-abutting-pos, markdown-ts--table-node-cell) + (markdown-ts--table-node-row, markdown-ts--table-parse-error-p): + New pipe table node helpers. + (markdown-ts-at-table-p): New predicate returning non-nil when + point is at or within a pipe table. + (markdown-ts--enable-in-table-mode): New helper enabling + markdown-ts-in-table-mode from post-command-hook. + (markdown-ts--table-body-row-near-pos): New helper locating the + nearest body row to a position. + (markdown-ts--table-compute-node-column) + (markdown-ts-table--goto-column): New helpers for column-based + table navigation. + (markdown-ts--table-aligners, markdown-ts--table-make-aligner) + (markdown-ts--table-align-cell): New table cell alignment + helpers. + (markdown-ts-table-insert-table): New command to insert a pipe + table with configurable rows and columns. + (markdown-ts-table-delete-table): New command to delete the pipe + table at point. + (markdown-ts-table-previous-row, markdown-ts-table-next-row) + (markdown-ts-table-previous-cell, markdown-ts-table-next-cell): + New commands for navigating table rows and cells. + (markdown-ts-table-insert-row-below) + (markdown-ts-table-insert-row-above) + (markdown-ts-table-clone-row-below) + (markdown-ts-table-clone-row-above) + (markdown-ts-table-insert-row): New commands for inserting and + cloning table rows. + (markdown-ts-table-delete-row, markdown-ts-table-move-row-up) + (markdown-ts-table-move-row-down, markdown-ts-table-move-row): + New commands for deleting and moving table rows. + (markdown-ts-table-insert-column-left) + (markdown-ts-table-insert-column-right) + (markdown-ts-table-clone-column-left) + (markdown-ts-table-clone-column-right) + (markdown-ts-table-insert-column): New commands for inserting + and cloning table columns. + (markdown-ts-table-delete-column) + (markdown-ts-table-move-column-left) + (markdown-ts-table-move-column-right) + (markdown-ts-table-move-column): New commands for deleting and + moving table columns. + (markdown-ts-table-align-column-left) + (markdown-ts-table-align-column-center) + (markdown-ts-table-align-column-right) + (markdown-ts-table-align-column): New commands for setting + column alignment. + (markdown-ts-table-align-table): New command to align all + columns in the table at point. + (markdown-ts-table-transpose-table): New command to transpose + the table at point. + (markdown-ts-table-convert-csv-region) + (markdown-ts-table-convert-tsv-region) + (markdown-ts-table-convert-region): New commands to convert + delimited text regions to pipe tables. + (markdown-ts-table-export-table-csv) + (markdown-ts-table-export-table-tsv) + (markdown-ts-table-export-table): New commands to export the + pipe table at point to CSV or TSV format. + (markdown-ts-in-table-mode-map): New keymap for + markdown-ts-in-table-mode. + (markdown-ts--code-block-in-context-mode-ov): New buffer-local + variable for code block context overlay. + (markdown-ts--code-block-in-context-mode-update-ov): New + function updating the code block context overlay. + (markdown-ts-in-table-mode): New minor mode enabled when point + is within a pipe table, activating markdown-ts-in-table-mode-map. + (markdown-ts--in-table-mode-ov) + (markdown-ts--in-table-mode-get-ov) + (markdown-ts--table-tick-update) + (markdown-ts--table-tick-stale-p) + (markdown-ts--in-table-mode-update-ov): New helpers supporting + markdown-ts-in-table-mode overlay management. + (markdown-ts-table-mode): New minor mode providing table editing + commands and auto-alignment. + (markdown-ts-mode-maybe): Remove; auto-mode-alist now uses + markdown-ts-mode directly. + Auto-mode-alist: Add .markdown and .mdx extensions. + + * lisp/textmodes/markdown-ts-mode-x.el: New file providing extra + features for markdown-ts-mode. + (markdown-ts-commonmark-spec-url, markdown-ts-gfm-spec-url): New + constants for CommonMark and GFM specification URLs. + (markdown-ts-browse-commonmark-spec) + (markdown-ts-browse-gfm-spec): New commands to browse the + CommonMark and GFM specifications. + (markdown-ts-convert): New customization group for Markdown + conversion/export features. + (markdown-ts-default-converter): New option to set the default + format and converter for Markdown export. + (markdown-ts-convert-display-function): New option specifying + the function used to display converted output. + (markdown-ts-converters): New variable listing format/converter + configurations for pandoc, cmark, cmark-gfm, markdown, and + markdown.pl. + (markdown-ts-convert-file, markdown-ts-convert): New commands to + convert Markdown buffers or files to HTML, PDF, and other + formats via external converters. + (markdown-ts-toc): New customization group for table of contents + features. + (markdown-ts-toc-generate-warn-if-none): New option controlling + behavior when no TOC is found during generation. + (markdown-ts-toc-update-before-save-mode-lighter): New option + for the before-save TOC update minor mode lighter string. + (markdown-ts-toc-slug-function): New option to select the slug + algorithm used for TOC heading anchors. + (markdown-ts--toc-handles, markdown-ts--toc-handle-classes): New + variables defining TOC handle types and classes. + (markdown-ts--toc-expand-candidate-handles, markdown-ts--tocs) + (markdown-ts--tocs-sanity-check) + (markdown-ts--toc-collect-candidates) + (markdown-ts--toc-list-item-depth) + (markdown-ts--toc-atx_header-normalize) + (markdown-ts--toc-text-normalizers) + (markdown-ts--toc-text-normalize): New internal helpers for TOC + parsing and text normalization. + (markdown-ts-toc-update-before-save-mode): New minor mode that + regenerates tables of contents before saving. + (markdown-ts-toc-clear-and-remove, markdown-ts-toc-clear): New + commands to remove or clear TOC bodies. + (markdown-ts-toc-insert-template): New command to insert a TOC + template at point. + (markdown-ts-toc-generate): New command to generate tables of + contents in the current buffer. + + Includes fixes for: (bug#80613) (bug#80625) (bug#80690) + +2026-05-05 Stefan Monnier + + nadvice.el: Make it easier to find how to change an interactive-form + + * lisp/emacs-lisp/nadvice.el (advice--how-alist): Add ':interactive-only'. + * doc/lispref/functions.texi (Advice Combinators): Document it. + (Core Advising Primitives): Use it. + +2026-05-05 Stefan Monnier + + lisp/emacs-lisp/lisp-mode.el (lisp-fdefs): Avoid obsolete "face vars" + +2026-05-04 Stefan Monnier + + keyboard.c: Allow SIGINT to `quit` in batch mode, instead of exit + + In terminal sessions, SIGINT is turned into a `quit` ELisp signal, + but in batch it has traditionally killed Emacs. It can be very + useful to cause a `quit` from outside the process when running + in batch (e.g. for "batch" sessions that provide a REPL via stdin/out), + so add a new var 'kill-emacs-on-sigint' to control that behavior. + (bug#80942) + + * src/keyboard.c (handle_interrupt_signal): Obey `kill_emacs_on_sigint`. + (init_keyboard): Use `deliver_interrupt_signal` for SIGINT also for + batch sessions. + (syms_of_keyboard): New variable `kill_emacs_on_sigint`. + + * test/src/keyboard-tests.el (keyboard-sigint-to-quit): New test. + + * doc/emacs/cmdargs.texi (Initial Options): Mention the effect of + `kill-emacs-on-sigint` in batch mode. + +2026-05-04 Michael Albinus + + Adaot tramp-tests.el + + * test/lisp/net/tramp-tests.el (ert-remote-temporary-file-directory): + Ensure that it is expanded. + +2026-05-04 Michael Albinus + + * admin/notes/documentation: Recommend not using "it's". + +2026-05-04 João Távora + + Jsonrpc: add new tests using Python subprocesses + + Most of these tests are for the scontrol/"anxious continuation" + mechanism (bug#80623) + + The new ERT tests use Python subprocesses via stdin/stdout pipe as + JSONRPC endpoints. A shared framing library lives in + jsonrpc-resources/common.py. + + * test/lisp/jsonrpc-tests.el (jsonrpc--test-dir): New constant. + (jsonrpc--with-python-fixture): New macro. + (scontrol-remote-during-sync-1) + (scontrol-remote-during-sync-2) + (scontrol-anxious-nested) + (scontrol-remote-error) + (shutdown-clean-after-notification): New tests. + + * test/lisp/jsonrpc-resources/common.py: New file. + + * test/lisp/jsonrpc-resources/server-remote-during-sync-1.py: New file. + + * test/lisp/jsonrpc-resources/server-remote-during-sync-2.py: New file. + + * test/lisp/jsonrpc-resources/server-anxious-nested.py: New file. + + * test/lisp/jsonrpc-resources/server-remote-error.py: New file. + + * test/lisp/jsonrpc-resources/server-harakiri.py: New file. + +2026-05-04 João Távora + + Jsonrpc: rework sync request handling (bug#80623) + + When the remote endpoint is handling a local request 'LR' it can + sometimes make a remote sync request 'RR' as part of its handling. Some + endpoints (like Go's gopls) wait for Emacs's reply to 'RR' before + responding to 'LR'. Others (like Julia's JETLS) respond to 'LR' + immediately, and only then wait for Emacs's reply to 'RR'. Both + approaches are valid. However, in the latter case, the handling of 'RR' + (which could well be waiting for user input from the minibuffer to + complete) is vulnerable to 'throw' from process filters handling (which + is just what happens when the endpoints replies to 'LR'), so if that + happens it will unexpectedly be aborted when the reply to 'LR' comes in, + suprising the user and causing a spurious -32603 reply to be sent. + + To solve this problem, this commit first refactors the sync + request/anxious queue handling and replace plain integer keys of the + rebaptized "scontrol" alist with structured (:local ID) / (:remote ID) + pairs, using `equal' for comparisons. This is to introduce some + clarity/sanity into this somewhat hairy code. + + Then, the 'RR' situation is fixed: we push a (:remote ID) entry onto the + top of the 'jsonrpc-connection--control' stack and only then call + rdispatcher. Any 'LR' reply arriving during dispatch is deferred as an + "anxious" continuation rather than firing its `throw' immediately. When + rdispatcher is done, we call jsonrpc--continue at a safe point, this + will run any "anxious" continuations. + + * lisp/jsonrpc.el (jsonrpc-connection): Rename -sync-request-alist to + -scontrol; accessor from jsonrpc--sync-request-alist to + jsonrpc--scontrol; update docstring for new key structure. + + (jsonrpc-connection-receive): Update with-slots binding to scontrol. + Tighten anxious check to match (:local ID) keys with `equal'. In + remote-request branch, push (:remote ID) entry before rdispatcher and + call jsonrpc--continue after jsonrpc--reply. + + (jsonrpc-request): Pass (:local ID) to jsonrpc--continue. + + (jsonrpc--continue): Use jsonrpc--scontrol; change `=' to `equal' in + sanity check. + p + (jsonrpc--async-request-1): Push (:local ID) entry. + + (jsonrpc--log-event): Use jsonrpc--scontrol. + +2026-05-04 Dmitry Gutov + + Re-add a call to clear_under_internal_border in clear_garbaged_frames + + * src/xdisp.c (clear_garbaged_frames): Re-add the call to + clear_under_internal_border, reverting that part of commit + a6a3b32208c5 as not essential to the fix (bug#80662). + +2026-05-03 Philip Kaludercic + + Ensure package archives are loaded for 'package-isolate' + + * lisp/emacs-lisp/package.el (package-isolate): Use + 'package--archive-contents' instead of the actual variable, to + ensure that we load the archive contents if missing. This is + likely the case if 'package-isolate' is the first package + function invoked during a session. + +2026-05-03 Philip Kaludercic + + Add for to 'html-tag-alist' and 'html-tag-help' + + * lisp/textmodes/sgml-mode.el (html-tag-alist): Add very basic skeleton. + (html-tag-help): Add description. + +2026-05-03 Philip Kaludercic + + Add for
to 'html-tag-alist' and 'html-tag-help' + + * lisp/textmodes/sgml-mode.el (html-tag-alist): Add skeleton. + (html-tag-help): Add description. + +2026-05-03 Philip Kaludercic + + Prevent indentation within whitespace sensitive HTML tags + + * lisp/textmodes/sgml-mode.el (sgml-whitespace-sensitive-tags): + Add new variable. + (sgml-calculate-indent): Check if in the context of a tag + specified by 'sgml-whitespace-sensitive-tags'. + (html-mode): Set 'sgml-whitespace-sensitive-tags' to not adjust + the indentation within
 and