unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [PATCH] Add history to Custom commands
@ 2022-01-20 22:42 Ivan Sokolov
  2022-01-21  9:57 ` Lars Ingebrigtsen
  0 siblings, 1 reply; 7+ messages in thread
From: Ivan Sokolov @ 2022-01-20 22:42 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 7 bytes --]

Subj.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-cus-edit.el-add-history-when-possible.patch --]
[-- Type: text/x-patch, Size: 2790 bytes --]

From ea2238e6506406419140be48f820d010cb906528 Mon Sep 17 00:00:00 2001
From: Ivan Sokolov <ivan-p-sokolov@ya.ru>
Date: Fri, 21 Jan 2022 01:39:40 +0300
Subject: [PATCH] cus-edit.el: add history when possible

---
 lisp/cus-edit.el | 33 ++++++++++++++++++++++-----------
 1 file changed, 22 insertions(+), 11 deletions(-)

diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el
index 3e350c611a..88e75c3273 100644
--- a/lisp/cus-edit.el
+++ b/lisp/cus-edit.el
@@ -464,6 +464,15 @@ custom-field-keymap
 
 ;;; Utilities.
 
+(defvar custom-mode-history nil
+  "History for `customize-mode'.")
+
+(defvar custom-group-history nil
+  "History of custom groups input.")
+
+(defvar custom-variable-history nil
+  "History of custom variables input.")
+
 (defun custom-split-regexp-maybe (regexp)
   "If REGEXP is a string, split it to a list at `\\|'.
 You can get the original back from the result with:
@@ -477,15 +486,16 @@ custom-split-regexp-maybe
 (defun custom-variable-prompt ()
   "Prompt for a custom variable, defaulting to the variable at point.
 Return a list suitable for use in `interactive'."
-   (let* ((v (variable-at-point))
-	  (default (and (symbolp v) (custom-variable-p v) (symbol-name v)))
-	  (enable-recursive-minibuffers t)
-	  val)
-     (setq val (completing-read (format-prompt "Customize variable" default)
-		                obarray 'custom-variable-p t nil nil default))
-     (list (if (equal val "")
-	       (if (symbolp v) v nil)
-	     (intern val)))))
+  (let* ((v (variable-at-point))
+	 (default (and (symbolp v) (custom-variable-p v) (symbol-name v)))
+	 (enable-recursive-minibuffers t)
+	 val)
+    (setq val (completing-read (format-prompt "Customize variable" default)
+		               obarray 'custom-variable-p t nil
+                               'custom-variable-history default))
+    (list (if (equal val "")
+	      (if (symbolp v) v nil)
+	    (intern val)))))
 
 (defvar custom-actioned-widget nil
   "Widget for which to show the menu of available actions.
@@ -1128,7 +1138,8 @@ customize-mode
 	 (completing-read (format-prompt "Mode" (and group major-mode))
 			  obarray
 			  'custom-group-of-mode
-			  t nil nil (if group (symbol-name major-mode))))))))
+			  t nil 'customize-mode-history
+                          (if group (symbol-name major-mode))))))))
   (customize-group (custom-group-of-mode mode)))
 
 (defun customize-read-group ()
@@ -1139,7 +1150,7 @@ customize-read-group
                        (or (and (get symbol 'custom-loads)
                                 (not (get symbol 'custom-autoload)))
                            (get symbol 'custom-group)))
-                     t)))
+                     t nil 'customize-group-history)))
 
 ;;;###autoload
 (defun customize-group (&optional group other-window)
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH] Add history to Custom commands
  2022-01-20 22:42 [PATCH] Add history to Custom commands Ivan Sokolov
@ 2022-01-21  9:57 ` Lars Ingebrigtsen
  2022-01-21 10:21   ` Ivan Sokolov
  0 siblings, 1 reply; 7+ messages in thread
From: Lars Ingebrigtsen @ 2022-01-21  9:57 UTC (permalink / raw)
  To: Ivan Sokolov; +Cc: emacs-devel

Ivan Sokolov <ivan-p-sokolov@ya.ru> writes:

> Subj.

I'm not sure whether it makes sense to have separate histories for these
commands -- it's nice if you're expected to customise the same things
several times, but not if you have the things in the general history.

So I don't know.  Any opinions?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Add history to Custom commands
  2022-01-21  9:57 ` Lars Ingebrigtsen
@ 2022-01-21 10:21   ` Ivan Sokolov
  2022-01-21 17:57     ` Stefan Monnier
  0 siblings, 1 reply; 7+ messages in thread
From: Ivan Sokolov @ 2022-01-21 10:21 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> I'm not sure whether it makes sense to have separate histories for these
> commands -- it's nice if you're expected to customise the same things
> several times, but not if you have the things in the general history.

Maybe I was too hasty with this patch. I was using customize-variable
instead of revert-buffer, which is unavailable for Custom buffers, and
some other commands without dedicated history variables. All of the
above has led to massive abuse of M-p.



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Add history to Custom commands
  2022-01-21 10:21   ` Ivan Sokolov
@ 2022-01-21 17:57     ` Stefan Monnier
  2022-01-22  1:52       ` Ivan Sokolov
  0 siblings, 1 reply; 7+ messages in thread
From: Stefan Monnier @ 2022-01-21 17:57 UTC (permalink / raw)
  To: Ivan Sokolov; +Cc: Lars Ingebrigtsen, emacs-devel

> Maybe I was too hasty with this patch. I was using customize-variable
> instead of revert-buffer, which is unavailable for Custom buffers, and
[...]

Maybe a more direct fix is to improve Custom so it does provide a proper
`revert-buffer-function`?


        Stefan




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Add history to Custom commands
  2022-01-21 17:57     ` Stefan Monnier
@ 2022-01-22  1:52       ` Ivan Sokolov
  2022-01-22  3:47         ` Stefan Monnier
  0 siblings, 1 reply; 7+ messages in thread
From: Ivan Sokolov @ 2022-01-22  1:52 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Lars Ingebrigtsen, emacs-devel

Stefan Monnier <monnier@iro.umontreal.ca> writes:

> Maybe a more direct fix is to improve Custom so it does provide a proper
> `revert-buffer-function`?

That was the idea, but turns out that you had already done it last July.



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Add history to Custom commands
  2022-01-22  1:52       ` Ivan Sokolov
@ 2022-01-22  3:47         ` Stefan Monnier
  2022-01-22  8:48           ` Ivan Sokolov
  0 siblings, 1 reply; 7+ messages in thread
From: Stefan Monnier @ 2022-01-22  3:47 UTC (permalink / raw)
  To: Ivan Sokolov; +Cc: Lars Ingebrigtsen, emacs-devel

Ivan Sokolov [2022-01-22 04:52:54] wrote:
> Stefan Monnier <monnier@iro.umontreal.ca> writes:
>> Maybe a more direct fix is to improve Custom so it does provide a proper
>> `revert-buffer-function`?
> That was the idea, but turns out that you had already done it last July.

Hmm... too bad I didn't notify myself when I did.
Oh, I see I did it while I was masquerading as Lars,
that explains it ;-)


        Stefan




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Add history to Custom commands
  2022-01-22  3:47         ` Stefan Monnier
@ 2022-01-22  8:48           ` Ivan Sokolov
  0 siblings, 0 replies; 7+ messages in thread
From: Ivan Sokolov @ 2022-01-22  8:48 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Lars Ingebrigtsen, emacs-devel

[-- Attachment #1: Type: text/plain, Size: 293 bytes --]

On January 22, 2022 3:47:44 AM UTC, Stefan Monnier <monnier@iro.umontreal.ca> wrote:

>Hmm... too bad I didn't notify myself when I did.
>Oh, I see I did it while I was masquerading as Lars,
>that explains it ;-)

Oof, I double checked who I was replying from two people and still missed

[-- Attachment #2: Type: text/html, Size: 361 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2022-01-22  8:48 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-20 22:42 [PATCH] Add history to Custom commands Ivan Sokolov
2022-01-21  9:57 ` Lars Ingebrigtsen
2022-01-21 10:21   ` Ivan Sokolov
2022-01-21 17:57     ` Stefan Monnier
2022-01-22  1:52       ` Ivan Sokolov
2022-01-22  3:47         ` Stefan Monnier
2022-01-22  8:48           ` Ivan Sokolov

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).