Commit graph

10666 commits

Author SHA1 Message Date
Basil L. Contovounesios
8d356c55ad Tweak recent error descriptor changes
* etc/NEWS: Fix capitalization and markup.
* lisp/emacs-lisp/ert.el (ert--should-error-handle-error): Prefer
any over cl-some where either will do.
* lisp/epa-file.el (epa-file--find-file-not-found-function):
Reindent.
(epa-file--error-add-context): Use correct variables.  Add
docstring.
* lisp/ffap.el (ffap-machine-p):
* lisp/gnus/nnmaildir.el (nnmaildir--emlink-p): Prefer
string-equal-ignore-case over case fiddling.
* lisp/gnus/gnus-search.el (gnus-search-run-query): Fix typo in
error re-signaling.
* lisp/ibuffer.el (ibuffer-confirm-operation-on): Prefer string
search over regexp matching where either will do.
* test/lisp/vc/vc-tests/vc-tests.el
(vc-test--run-maybe-unsupported-function): Pacify unused
condition-case error variable warnings (bug#72212).
2026-03-11 16:05:04 -04:00
Stefan Monnier
9348c19b82 Use single-arg form of signal to re-throw an error
* lisp/vc/smerge-mode.el (smerge-extend):
* lisp/vc/diff-mode.el (diff-beginning-of-file-and-junk):
* lisp/transient.el (transient--with-emergency-exit):
* lisp/textmodes/tex-mode.el (latex-forward-sexp):
* lisp/tar-mode.el (tar-mode):
* lisp/savehist.el (savehist--reload):
* lisp/progmodes/octave.el (inferior-octave-resync-dirs):
* lisp/progmodes/js.el (js--re-search-forward):
* lisp/plstore.el (plstore--decrypt):
* lisp/net/dbus.el (dbus-ignore-errors, dbus-register-signal)
(dbus-handle-event):
* lisp/mouse.el (mouse-drag-track, mouse-drag-region-rectangle):
* lisp/minibuffer.el (completion-pcm--find-all-completions):
* lisp/mail/rfc2231.el (rfc2231-parse-string):
* lisp/mail/rfc2047.el (rfc2047-encode-region):
* lisp/jit-lock.el (jit-lock-fontify-now):
* lisp/international/ja-dic-utl.el (skkdic-lookup-key):
* lisp/gnus/nnselect.el (nnselect-generate-artlist):
* lisp/gnus/mml-sec.el (mml-secure-epg-encrypt, mml-secure-epg-sign):
* lisp/gnus/mail-source.el (mail-source-fetch-pop)
(mail-source-check-pop):
* lisp/gnus/gnus-art.el (gnus-article-read-summary-keys):
* lisp/files.el (basic-save-buffer-2, files--ensure-directory)
(files--force, copy-directory):
* lisp/eshell/esh-io.el (eshell-output-object-to-target):
* lisp/epa.el (epa-decrypt-file, epa-verify-file, epa-sign-file)
(epa-encrypt-file, epa-decrypt-region, epa-verify-region)
(epa-sign-region, epa-encrypt-region, epa-delete-keys)
(epa-export-keys, epa-insert-keys):
* lisp/emacs-lisp/package.el (package--unless-error):
* lisp/emacs-lisp/multisession.el (multisession--read-file-value):
* lisp/emacs-lisp/lisp.el (up-list-default-function):
* lisp/desktop.el (desktop-kill):
* lisp/calendar/time-date.el (date-to-time):
* lisp/calendar/appt.el (appt-display-message):
* lisp/calc/calc.el (calc-do):
* lisp/bookmark.el (bookmark-handle-bookmark):
* src/fileio.c (report_file_errno):
* lisp/vc/vc.el (vc-checkout, vc-pull): Use `(signal err)` instead
of `(signal (car err) (cdr err))`.
2026-03-10 10:48:22 -04:00
Stefan Monnier
08e109d45a Use the new error API functions
* lisp/epa-file.el (epa-file--find-file-not-found-function):
Use `error-slot-value` and `error-data`.
(epa-file-insert-file-contents): Use `error-has-type-p`,
`error-slot-value`, and `error-data`.

* lisp/jka-compr.el (jka-compr-insert-file-contents):
Use `error-has-type-p` and `error-slot-value` as well as new
re-signaling form of `signal`.

* lisp/simple.el (minibuffer-error-function): Use `error-has-type-p`.

* lisp/startup.el (startup--load-user-init-file):
Use `error-message-string`.
(command-line): Use `error-has-type-p` and `error-message-string`.

* lisp/type-break.el (type-break-demo-life):
Use `error-message-string`.

* lisp/emacs-lisp/bytecomp.el (batch-byte-compile-file):
Use `error-message-string` and `error-has-type-p`.

* lisp/emacs-lisp/edebug.el (edebug-safe-eval, edebug-report-error)
(edebug-eval-expression):
* lisp/emacs-lisp/debug.el (debugger-eval-expression):
Use `error-message-string`.

* lisp/emacs-lisp/ert.el (ert--should-error-handle-error):
Use `error-has-type-p` and `error-type`.

* lisp/net/sasl.el (sasl-error): Use `define-error`.

* lisp/net/tramp-compat.el (tramp-error-type-p): New function.
(tramp-permission-denied, tramp-compat-permission-denied): Use it.

* lisp/progmodes/elisp-mode.el (elisp-completion-at-point):
Use `error-type-p`.

* lisp/xt-mouse.el (turn-on-xterm-mouse-tracking-on-terminal)
(turn-off-xterm-mouse-tracking-on-terminal): Use `error-slot-value`.

* lisp/simple.el (next-line, previous-line): Remove useless
`condition-case` handler, and hence the whole `condition-case`, and
then simplify.

* lisp/gnus/nnrss.el (nnrss-insert): Use `with-demoted-errors`.

* lisp/gnus/nnmaildir.el (nnmaildir--emlink-p, nnmaildir--enoent-p)
(nnmaildir--eexist-p): Use `error-has-type-p`.
(nnmaildir--new-number, nnmaildir-request-set-mark): Use single-arg
`signal`.

* lisp/ffap.el (ffap-machine-p): Use `error-slot-value`.

* lisp/emacs-lisp/comp.el (comp--native-compile):
Use `error-has-type-p` as well as single-arg `signal`.

* lisp/net/ange-ftp.el (ange-ftp-hook-function): Use single-arg
`signal`.

* lisp/ebuff-menu.el (electric-buffer-menu-looper): Use `error-has-type-p`.
* lisp/progmodes/ebrowse.el (ebrowse-electric-list-looper):
Use `error-has-type-p`.
(ebrowse-electric-position-looper): Make it an alias of
`ebrowse-electric-list-looper`.

* lisp/ibuffer.el (ibuffer-confirm-operation-on):
* lisp/ls-lisp.el (ls-lisp--insert-directory):
* lisp/gnus/gnus-search.el (gnus-search-run-query):
* lisp/mail/mail-extr.el (mail-extr-safe-move-sexp):
* lisp/net/dbus.el (dbus-set-property):
* lisp/net/eudc-export.el (eudc-bbdbify-phone):
* lisp/net/imap.el (imap-fetch-safe):
* lisp/vc/vc.el (vc-root-dir): Use `error-slot-value` and
single-arg `signal` to re-signal.
2026-03-10 10:48:21 -04:00
Stefan Monnier
3118a8c8b1 Error handling clarifications found during error-API
* lisp/simple.el (next-line, previous-line): Remove useless
`condition-case` handler, and hence the whole `condition-case`, and
then simplify.

* lisp/emacs-lisp/comp.el (comp--error-add-context): New function.
(comp--native-compile): Use it.

* lisp/gnus/nnrss.el (nnrss-insert): Use `with-demoted-errors`.
2026-03-10 00:10:36 -04:00
Stefan Monnier
d6fa21c1f5 cl-seq.el: Prefer :test to :if
* lisp/emacs-lisp/cl-seq.el (cl-remove-if, cl-remove-if-not)
(cl-delete-if, cl-delete-if-not, cl-substitute-if)
(cl-substitute-if-not, cl-nsubstitute-if, cl-nsubstitute-if-not)
(cl-find-if, cl-find-if-not, cl-position-if, cl-position-if-not)
(cl-count-if, cl-count-if-not, cl-member-if, cl-member-if-not)
(cl-assoc-if, cl-assoc-if-not, cl-rassoc-if, cl-rassoc-if-not)
(cl-subst-if, cl-subst-if-not, cl-nsubst-if, cl-nsubst-if-not):
Prefer the Common Lisp standard `:test` to the cl-lib specific `:if`.
2026-03-08 14:20:44 -04:00
Eli Zaretskii
a9eac78e23 Improve documentation of 'define-keymap'
* lisp/emacs-lisp/shortdoc.el (keymaps): Add example for adding
key bindings to an existing keymap.
* lisp/keymap.el (define-keymap): Doc fix.  (Bug#80556)
2026-03-07 10:55:23 +02:00
Sean Whitton
7d63d267f2 Rename 'any' to 'member-if' and deprecate 'cl-member-if'
* lisp/subr.el (any): Rename from this ...
(member-if): ... to this.  All uses changed.
(any): New function alias.
* lisp/emacs-lisp/cl-seq.el (cl-member-if): Mark obsolete.
* lisp/obsolete/cl.el (member-if): Delete obsolete function
alias.
* doc/lispref/lists.texi (List Elements):
* doc/misc/cl.texi (Lists as Sets):
* etc/NEWS: Document the change.
2026-03-04 14:43:05 +00:00
Mattias Engdegård
7eba545a4e Revert "Rename 'any' to 'member-if' and deprecate 'cl-member-if'"
This reverts commit 2bdf15f6d8.

There is no consensus for this change.
2026-03-03 17:21:35 +01:00
Sean Whitton
2bdf15f6d8 Rename 'any' to 'member-if' and deprecate 'cl-member-if'
* lisp/subr.el (any): Rename from this ...
(member-if): ... to this.  All uses changed.
Implement '&key KEY-FN' for backwards compatibility.
(any): New function alias.
* lisp/emacs-lisp/cl-seq.el (cl-member-if): Make an alias for
'member-if'.
* lisp/obsolete/cl.el (member-if): Delete obsolete function
alias.
* doc/lispref/lists.texi (List Elements):
* doc/misc/cl.texi (Lists as Sets):
* etc/NEWS: Document the change.
2026-03-03 13:57:07 +00:00
Mattias Engdegård
423a8b7fd8 Simplify some overly defensive compiler macros
* lisp/emacs-lisp/bytecomp.el (bytecomp--check-eq-args)
(bytecomp--check-memq-args, bytecomp--char-before)
(bytecomp--backward-char, bytecomp--backward-word):
Don't bother with malformed calls; macroexp--compiler-macro won't call
the handler unless the arity matches.
2026-03-02 21:36:26 +01:00
Mattias Engdegård
e96bb822e3 Don't complain on compiler-macro arity mismatch
* lisp/emacs-lisp/macroexp.el (macroexp--compiler-macro):
Don't warn if calling the compiler-macro handler elicits an arity error.

This helps in two ways: no messy wrong-number-of-arguments errors during
macro-expansion, only the actual warnings emitted by the compiler, and
compiler-macros no longer need to be written defensively to avoid such
errors.
2026-03-02 21:36:19 +01:00
Mattias Engdegård
460e438356 Implement string> as a compiler macro instead of an optimisation
This doesn't affect the generated code.

* lisp/subr.el (string-greaterp): Add compiler macro.
* lisp/emacs-lisp/byte-opt.el (byte-optimize-string-greaterp): Remove.
2026-02-28 16:37:38 +01:00
Mattias Engdegård
9d9f7b2c48 ; Don't set properties on function aliases
We look for properties on the aliased functions as well so there is no
need for them on the aliases themselves (unless we want the alias to
have different semantics but that's not the case for these).

* lisp/emacs-lisp/byte-opt.el: Don't set compilation-related properties
on 'string=', 'string>', 'not' or 'wholenump'.
(byte-optimize-null): Rename from 'byte-optimize-not'.
2026-02-28 16:37:37 +01:00
Mattias Engdegård
b85d853e50 Eliminate double arity warnings
Calls to some functions, such as 'cdr' and '%', would generate two
slightly different complaints if given the wrong number of arguments.

* lisp/emacs-lisp/bytecomp.el (byte-compile-subr-wrong-args): Remove.
Calls are replaced with 'byte-compile-normal-call'.
2026-02-28 16:37:37 +01:00
Richard Lawrence
a9a03cf35e Fix (or ...) patterns in 'cond*'/'match*'
This fixes Bug#80121.
* lisp/emacs-lisp/cond-star.el (cond*-subpat): Add missing reference to
'expression' when clearing multiple backtrack aliases.
2026-02-28 15:43:55 +02:00
Philip Kaludercic
91c8c0cc98
Fix prompting of packages for 'package-report-bug'
* lisp/emacs-lisp/package.el (package--query-desc): Load
'package-alist' if this hasn't already occurred.
(package-report-bug): Drop unnecessary ALIST argument when
invoking 'package--query-desc'.
2026-02-28 10:50:55 +01:00
Philip Kaludercic
4b253c39b1
Improve 'package-report-bug' robustness
* lisp/emacs-lisp/package.el (package-maintainers): Add
fallbacks if a package doesn't list a single maintainer.
(package-report-bug): Check if "emacs-devel@gnu.org" is listed
as a maintainer, in which case the message is redirected to
bug-gnu-emacs@gnu.org and the X-Debbugs-CC header is set.

(Bug#80478)
2026-02-28 10:50:55 +01:00
Philip Kaludercic
24b922dec1
; Update "Maintainers" header for compat.el 2026-02-28 10:50:55 +01:00
Philip Kaludercic
668c42c4ac
Allow more fine configuration of package retention
* lisp/emacs-lisp/package.el (package-upgrade-keep-previous):
Rename user option to 'package-retention-policy'.
(package--policy-type): New constant for policy types.
(package-retention-policy): New option.
(package-review-policy): Use new type constant.
(package--review-p): Rename and generalise to
'package-matches-selector-p'.
(package-matches-selector-p): New function.
(package-upgrade, package-menu--mark-upgrades-1): Respect
'package-retention-policy'.
* doc/emacs/package.texi (Package Installation): Document new option.
* etc/NEWS: Update NEWS entry.  (Bug#79957)
2026-02-28 10:50:55 +01:00
Philip Kaludercic
e744e8a7a7
Indicate if 'package-isolate' had to download a package
* lisp/emacs-lisp/package.el (package-isolate): Change
formatting to indicate dependencies to include a note if the
package was downloaded in a temporary directory.
2026-02-28 10:50:55 +01:00
Philip Kaludercic
356d74b943
Fix 'package-isolate' in combination with quickload
* lisp/emacs-lisp/package.el (package-isolate): Call
'package--activate-all' directly, to ensure that all the package
directories are properly loaded.
2026-02-28 10:50:55 +01:00
Philip Kaludercic
33c63d24de
; Prevent 'package-isolate' from creating cyclic lists
* lisp/emacs-lisp/package.el (package-isolate): Do not use
destructive 'mapcan' to create a list of dependencies, as
'package-desc-reqs' doesn't return a fresh list.
2026-02-28 10:50:55 +01:00
Jeremy Bryant
0ca7040096
Add option to keep previous package versions on upgrade
This change adds a conditional to keep old package versions on upgrade.
This allows users to keep running multiple Emacsen without a package
upgrade in one Emacs breaking another running Emacs.

* lisp/emacs-lisp/package.el (package-upgrade-keep-previous):
New boolean user option.
(package-upgrade): Use it.
(package-menu--mark-upgrades-1): Use it.
(package-menu--find-upgrades): Make consistent with new option.
* etc/NEWS: Announce it.

(Bug#79957)
2026-02-28 10:50:55 +01:00
Mattias Engdegård
c7595cbc02 Upgrade 'equal' from side-effect-free to error-free
* lisp/emacs-lisp/byte-opt.el (side-effect-free-fns)
(side-effect-and-error-free-fns): 'equal' and
'equal-including-properties' no longer signal 'circular-list'; while
they do error on very deep structures, that is more of a resource limit
so let's overlook that.
2026-02-26 10:44:28 +01:00
Mattias Engdegård
e0381f24f6 Simplify peephole optimisation rule
* lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode):
Remove some obsolete dynamic variable optimisations that no longer
improve any code.  Fix broken logging (thanks Pip).
2026-02-26 10:44:28 +01:00
Michael Albinus
5b7593598c Make ert more robust
* lisp/emacs-lisp/ert.el (ert-run-test): Check, that `begin-marker'
is still valid.  The *Messages* buffer could have been deleted
during test run.
2026-02-25 13:02:04 +01:00
Mattias Engdegård
2505af27c6 Compare circular lists in 'equal' without error (bug#80456)
* src/lisp.h (FOR_EACH_TAIL_INTERNAL): Divvy up the code into...
(FOR_EACH_TAIL_BASIC, FOR_EACH_TAIL_STEP_CYCLEP): ...these macros,
so that they can be used in more flexible ways.
* src/fns.c (internal_equal_1): Detect circular lists and call...
(internal_equal_cycle): ...this function that keeps comparing
but now detecting cycles in the other argument.

* lisp/emacs-lisp/testcover.el (testcover-after):
Remove unnecessary error handling.
* test/src/fns-tests.el (test-cycle-equal): Adapt and extend.
* test/lisp/emacs-lisp/testcover-resources/testcases.el
(testcover-testcase-cyc1): Remove case that no longer applies.

* doc/lispref/objects.texi (Equality Predicates): Update.
* etc/NEWS: Announce.
2026-02-24 12:47:52 +01:00
Sean Whitton
1197ccf993 ; pp-eval-expression: Restore binding deactivate-mark to nil.
See bug#80236.
2026-02-24 09:08:24 +00:00
Sean Whitton
078b66bd67 ; Fix last change. 2026-02-23 13:14:49 +00:00
Jacob S. Gordon
69f3428e9d New prefix argument for pp-eval-expression
* lisp/emacs-lisp/pp.el (pp-eval-expression): New optional
argument INSERT-P.
* etc/NEWS: Announce change.
2026-02-23 13:11:19 +00:00
Mattias Engdegård
0f832ad8bf Optimise closed-over variables earlier
* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
Treat 'internal-get-closed-var' as a special form and delete it in
for-effect context.
2026-02-20 18:37:07 +01:00
Mattias Engdegård
90b9c61cc2 Remove two obsolete peephole optimisation rules
* lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode):
Remove two rules: the first could sometimes skip a varref in a loop;
this was useful before lexical binding but now just makes some code
slightly bigger.  The second rule attempted to move a conditional branch
from the top to the bottom of a loop but depended on the first to work.

Both were quite slow, easily measurable when compiling big files, and
arguably O(n³) which isn't very good for a peephole optimisation.
2026-02-20 18:37:07 +01:00
Sean Whitton
2bf2855b57 Restore 'cond' one element clauses to 'cond*'
* lisp/emacs-lisp/cond-star.el (cond*-non-exit-clause-p)
(cond*-non-exit-clause-substance): Treat only one element
clauses beginning with match*/pcase* pseudoforms as non-exit.
(cond*-convert-condition): Handle exiting clauses with only one
element, that is a regular Lisp expression.
(cond*):
* doc/lispref/control.texi (cond* Macro): Document the change.
2026-02-19 09:45:21 +00:00
Eshel Yaron
551231bb53
elisp-scope.el: Add variable value specifications
We add a symbol property 'elisp-scope-variable-spec', which
holds a specification for the values of a variable with that
property.  For example, (put 'foo '(symbol . face)) says
that the value of variable 'foo' is a face name.
This allows elisp-scope.el to analyze forms such as
(setq foo 'bar) and (let ((foo 'bar)) ...) more accurately.
This is also used for analyzing macros that let-bind (one of)
their arguments to a specific special variable, such as
'with-connection-local-application-variables'.

We initially add this new property to some common variables.

* lisp/emacs-lisp/elisp-scope.el: Add
'elisp-scope-variable-spec' property to
'coding-system-for-read/write' and 'major-mode'.
(elisp-scope--variable-spec): New defsubst.
(elisp-scope--let-1, elisp-scope-let*, elisp-scope-setq):
Use it.
* test/lisp/progmodes/elisp-mode-resources/semantic-highlighting.el:
Add test form.
2026-02-18 19:42:47 +01:00
Stefan Monnier
f4a1c00656 delsel.el: Improve the overlay for text replacement
* lisp/delsel.el (delete-selection-replacement-face): Delete var.
(delete-selection-replacement): New face, to replace it.
(delsel--replace-overlay, delsel--replace-text): Delete vars and ...
(delete-selection--replacement-text): ...use this single var instead.
(delete-selection--replacement-cursor): New function.
(delete-active-region): Use it with `cursor-sensor-mode` to avoid the
overlay lingering too long.
(delete-selection--replacement-text): New function extracted from
`delete-selection-repeat-replace-region`, with adjustments to account
for the above changes.
(delete-selection-repeat-replace-region): Use it.

* lisp/emacs-lisp/cursor-sensor.el (cursor-sensor--detect): Do use
`get-pos-property` when it works.  Fix the `missing-p` subfunction
so as not to get fooled by a missing property at END.
2026-02-14 16:55:06 -05:00
Philip Kaludercic
ee7c4ed5d8
Don't invoke Dired with -R when reviewing packages
* lisp/emacs-lisp/package.el (package-review): Remove
potentially unportable "-R" switch when calling 'dired'.
2026-02-14 16:29:33 +01:00
Philip Kaludercic
36f35a774b
; Remove 'package-vc-version' declaration 2026-02-14 16:29:33 +01:00
Philip Kaludercic
49c8dd44af
; Remove unnecessary 'inline' require from package.el
* lisp/emacs-lisp/package-activate.el (package-vc-p): Define
using a regular 'defun'.
2026-02-14 16:29:33 +01:00
Philip Kaludercic
d734b240fb
Do not upgrade VC packages using 'package-upgrade'
* lisp/emacs-lisp/package.el (package-upgrade): Trigger error
redirecting user to use 'package-vc-upgrade'.
(package--upgradeable-packages): Exclude VC packages from list
of "upgradable" packages.
2026-02-14 16:29:32 +01:00
Stéphane Marks
003962fa5f vtable fixes for tty rendering (bug#80312)
* lisp/emacs-lisp/vtable.el (vtable--insert-line): Do not
produce a divider after the final column.  This thinko is more
noticeable on a tty.
(vtable--insert-header-line): On a tty, nullify indicator
padding.
(vtable-tty-char-pixel-width): New defconst.
(vtable--compute-width): On a tty, adjust column width specified
in pixels down by a factor of 'vtable-tty-char-pixel-width'.
(vtable--alter-column-width): On a tty, adjust column width in
characters, otherwise in pixels.
2026-02-14 15:22:16 +02:00
Eli Zaretskii
187867f0a9 ; 'package--autosuggest-after-change-mode': Improve help-echo. 2026-02-14 08:52:00 +02:00
Philip Kaludercic
52b24ed7aa
Only check regular files for package metadata
* lisp/emacs-lisp/package.el (package-dir-info): Do not check
files that do not satisfy 'file-regular-p' when trying to find
the file with the package metadata.  (Bug#79742)
2026-02-13 22:47:59 +01:00
Philip Kaludercic
567155047c
Improve 'package-upgrade-all' robustness
* lisp/emacs-lisp/package.el (package-upgrade-all): Do not quit
because a single upgrade fails with an error.  (Bug#80357)
2026-02-13 22:23:01 +01:00
Philip Kaludercic
d092c8f63a
Fix 'help-echo' for package suggestions in mode line
* lisp/emacs-lisp/package-activate.el (package--autosugest-line-format):
Remove variable and function.
(package--autosuggest-after-change-mode): Inject upgrade prompt
using ':propertize'.  We can drop the condition testing if there
are any suggestions, as installing the package changes the major
mode and thus also 'mode-name'.
2026-02-13 22:01:35 +01:00
Philip Kaludercic
7470151179
Autoload 'diff-no-select'
* lisp/emacs-lisp/package.el (package-review): Remove
unnecessary 'require'.
* lisp/eshell/em-unix.el: Remove declaration.
* lisp/files.el (save-some-buffers-action-alist): Remove
unnecessary 'require'.
* lisp/vc/diff.el (diff-no-select): Autoload it.

(Bug#80288)
2026-02-13 19:53:12 +01:00
Sean Whitton
da16b48d8f * lisp/emacs-lisp/cond-star.el (cond*): New Edebug specification. 2026-02-13 13:36:50 +00:00
Eli Zaretskii
48525f500e ; Improve documentation of 'package-autosuggest-mode'
* lisp/emacs-lisp/package.el (package--autosuggest-install-and-enable)
(package--autosugest-prompt, package-autosuggest): Doc fixes.
* lisp/emacs-lisp/package-activate.el (package-autosuggest-style)
(package-autosuggest-once, package-autosuggest-mode)
(package--suggestion-applies-p)
(package--autosuggest-find-candidates)
(package--autosugest-line-format)
(package--autosuggest-after-change-mode): Fix doc strings and add
:version tags.

* etc/NEWS (bindings):
* doc/emacs/package.texi (Package Installation): Improve wording,
markup and indexing.
2026-02-13 09:39:02 +02:00
Philip Kaludercic
1e6d4f827c
Merge branch 'feature/package-autosuggest' 2026-02-12 23:08:42 +01:00
Philip Kaludercic
1b02bf1214
Ensure package contents for package suggestions
* lisp/emacs-lisp/package.el (package--autosugest-prompt): Query
archives if the package being described is not listed in
package-archive-contents'.
2026-02-12 18:24:47 +01:00
Philip Kaludercic
02af0e93a0
; Reset :initialize for 'package-autosuggest-mode'
* lisp/emacs-lisp/package-activate.el (package-autosuggest-mode):
We don't need a special initializer for the minor mode, if we
are not enabling the option OOTB.
2026-02-12 18:20:15 +01:00