* lisp/emacs-lisp/package-activate.el (package--suggestion-applies-p):
The file name associated with a buffer is a better match for
entries in 'auto-mode-alist', so we use that instead of the
buffer name that can have additional noise to make the name unique.
* lisp/emacs-lisp/package-activate.el
(package-autosuggest-style): Remove option 'once' and defer to
new user option.
(package-autosuggest-once): Add new option.
(package--suggestion-applies-p)
(package--autosuggest-after-change-mode): Respect new user option.
* lisp/emacs-lisp/package-activate.el (package-autosuggest-mode):
Add :initialize property to minor mode definition as recommended
in (elisp) Variable Definitions.
It is both simpler to code and marginally more general (allows
spaces in arguments).
* lisp/textmodes/yaml-ts-mode.el (yaml-ts-mode-yamllint-options): Use
a list.
(yaml-ts-mode-flymake): Adjust accordingly.
* test/lisp/vc/vc-git-tests.el (vc-git-test-branch-remotes):
The 'unset' subcommand to 'git config' was introduced in git 2.46; use
the '--unset' option instead.
* lisp/emacs-lisp/package.el (package--autosuggest-database):
Add new variable.
(package--autosuggest-find-candidates): Load the contents of the
database from 'data-directory' if necessary, and store them in
the new variable.
* lisp/emacs-lisp/package.el (package--autosugest-prompt):
Adjust message to indicate that no changes have yet occurred.
Co-Developed-By: Jens Schmidt <jschmidt4gnu@vodafonemail.de>
* lisp/emacs-lisp/package.el (package--autosugest-prompt): Go
through all suggestions for the same package and mention why a
package suggestion was relevant.
* src/xdisp.c (move_it_vertically_backward): Zero out cached value
of line height, to avoid using stale and incorrect values.
(try_window_reusing_current_matrix): Fix conditions for changes in
tab-line height.
Reported by Michael Heerdegen <michael_heerdegen@mailbox.org> in
https://lists.gnu.org/archive/html/help-gnu-emacs/2026-01/msg00163.html
This improves the scrolling a little bit, but doesn't solve the
problem entirely.
* lisp/emacs-lisp/package.el (package--autosugest-line-format):
Insert a space before the mode-line hint.
(package--autosuggest-after-change-mode): Add hint to 'mode-name'.
* lisp/progmodes/elisp-mode.el (elisp-byte-code-syntax-propertize):
Reset point to just after the start of the previous match so that we
don't skip past the end of the lazy string, which can happen if it's
zero-length; that could lead to an infinite loop.
macOS 26 introduced new event processing behavior that causes scrolling
lag and input handling problems in Emacs. This patch disables two
features via NSUserDefaults when built against the macOS 26 SDK:
- NSEventConcurrentProcessingEnabled
- NSApplicationUpdateCycleEnabled
This fix is based on the equivalent patch in emacs-mac by Mitsuharu
Yamamoto. See: https://bitbucket.org/mituharu/emacs-mac/commits/e52ebfd
* src/nsterm.m (ns_term_init): Disable problematic event processing
when built for macOS 26+. (Bug#80268)
This option controls the format of the help-echo when hovering
over the time display in mode line. (Bug#80143)
* lisp/time.el (display-time-help-echo-format): Add option.
(display-time-string-forms): Use it.
* etc/NEWS (Time): Announce the new option.
This function will truncate a string on a pixelwise basis in a
work buffer and using a binary search rather than brute force.
* lisp/emacs-lisp/subr-x.el (work-buffer--prepare-pixelwise):
New defun helper function.
(string-pixel-width): Use the helper function.
(truncate-string-pixelwise): New defun.
* test/lisp/misc-tests.el (misc-test-truncate-string-pixelwise):
(misc-test-truncate-string-pixelwise-unicode): New test.
* doc/lispref/display.texi (Size of Displayed Text): Document
the function.
* etc/NEWS: Announce the function.
CUA is not necessarily used together with `pixel-scroll-precision-mode'.
Make `pixel-scroll-interpolate-down' and `pixel-scroll-interpolate-up'
independent and avoid loading cua-base.
* lisp/pixel-scroll.el (pixel-scroll-interpolate-up)
(pixel-scroll-interpolate-down): Do not use `cua-scroll-down' and
`cua-scroll-up'; replace them with inline code. (Bug#80245)
Some XWayland setups only report DPI changes through
GDK xsettings, so Emacs missed DPI updates there.
Recognize the GDK DPI and scaling settings and use
them to compute the effective DPI.
* src/xsettings.c (parse_settings): Recognize
Gdk/UnscaledDPI and Gdk/WindowScalingFactor.
Use them to compute DPI when present.
* lisp/vc/vc.el (vc--incoming-revision): Signal an error instead
of returning nil on a cache hit (bug#80270).
(vc--outgoing-base-mergebase): Simplify, given that
vc--incoming-revision now handles the error case.