mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-23 07:19:15 +00:00
Allow to disable the DWIMish behavior of 'x' in package menu
* lisp/emacs-lisp/package.el (package-menu-use-current-if-no-marks): New defcustom. (package-menu-execute): Use it. (Bug#62563) * etc/NEWS: Announce the new option.
This commit is contained in:
parent
08104c0150
commit
afc1f32935
4
etc/NEWS
4
etc/NEWS
@ -1886,7 +1886,9 @@ These commands can be useful if the ".elc" files are out of date
|
||||
+++
|
||||
*** New DWIM action on 'x' in "*Packages*" buffer.
|
||||
If no packages are marked, 'x' will install the package under point if
|
||||
it isn't already, and remove it if it is installed.
|
||||
it isn't already, and remove it if it is installed. Customize the new
|
||||
option 'package-menu-use-current-if-no-marks' to the nil value to get
|
||||
back the old behavior of signaling an error in that case.
|
||||
|
||||
+++
|
||||
*** New command 'package-vc-install'.
|
||||
|
@ -3313,6 +3313,18 @@ Values can be interactively added to this list by typing
|
||||
:version "25.1"
|
||||
:type '(repeat (regexp :tag "Hide packages with name matching")))
|
||||
|
||||
(defcustom package-menu-use-current-if-no-marks t
|
||||
"Whether \\<package-menu-mode-map>\\[package-menu-execute] in package menu operates on current package if none are marked.
|
||||
|
||||
If non-nil, and no packages are marked for installation or
|
||||
deletion, \\<package-menu-mode-map>\\[package-menu-execute] will operate on the current package at point,
|
||||
see `package-menu-execute' for details.
|
||||
The default is t. Set to nil to get back the original behavior
|
||||
of having `package-menu-execute' signal an error when no packages
|
||||
are marked for installation or deletion."
|
||||
:version "29.1"
|
||||
:type 'boolean)
|
||||
|
||||
(defun package-menu--refresh (&optional packages keywords)
|
||||
"Re-populate the `tabulated-list-entries'.
|
||||
PACKAGES should be nil or t, which means to display all known packages.
|
||||
@ -3943,7 +3955,8 @@ invocations."
|
||||
;; Nothing marked.
|
||||
(unless (or delete-list install-list)
|
||||
;; Not on a package line.
|
||||
(unless (tabulated-list-get-id)
|
||||
(unless (and (tabulated-list-get-id)
|
||||
package-menu-use-current-if-no-marks)
|
||||
(user-error "No operations specified"))
|
||||
(let* ((id (tabulated-list-get-id))
|
||||
(status (package-menu-get-status)))
|
||||
|
Loading…
Reference in New Issue
Block a user