mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-26 07:33:47 +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.
|
*** New DWIM action on 'x' in "*Packages*" buffer.
|
||||||
If no packages are marked, 'x' will install the package under point if
|
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'.
|
*** New command 'package-vc-install'.
|
||||||
|
@ -3313,6 +3313,18 @@ Values can be interactively added to this list by typing
|
|||||||
:version "25.1"
|
:version "25.1"
|
||||||
:type '(repeat (regexp :tag "Hide packages with name matching")))
|
: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)
|
(defun package-menu--refresh (&optional packages keywords)
|
||||||
"Re-populate the `tabulated-list-entries'.
|
"Re-populate the `tabulated-list-entries'.
|
||||||
PACKAGES should be nil or t, which means to display all known packages.
|
PACKAGES should be nil or t, which means to display all known packages.
|
||||||
@ -3943,7 +3955,8 @@ invocations."
|
|||||||
;; Nothing marked.
|
;; Nothing marked.
|
||||||
(unless (or delete-list install-list)
|
(unless (or delete-list install-list)
|
||||||
;; Not on a package line.
|
;; 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"))
|
(user-error "No operations specified"))
|
||||||
(let* ((id (tabulated-list-get-id))
|
(let* ((id (tabulated-list-get-id))
|
||||||
(status (package-menu-get-status)))
|
(status (package-menu-get-status)))
|
||||||
|
Loading…
Reference in New Issue
Block a user