From 15839ea11879fb651314c2d45ea4558c5735dcb6 Mon Sep 17 00:00:00 2001 From: Thierry Volpiatto Date: Tue, 12 Dec 2023 10:48:00 +0100 Subject: [PATCH 3/3] Allow users overriding register-use-preview behavior This allows a more precise configuration if needed. For example if one have register-use-preview == nil and want a confirmation when overwriting a register he can use: (cl-defmethod register-command-info :after ((_command (eql copy-to-register))) (make-register-preview-info :types '(all) :msg "Copy to register `%s'" :act 'set)) which disable the no confirmation when overwriting with such setting of register-use-preview. This is done by calling cl-call-next-method. * lisp/register.el (register-command-info): Call next method where needed. --- lisp/register.el | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/lisp/register.el b/lisp/register.el index 8dbddf1bc9a..2bb476cb34c 100644 --- a/lisp/register.el +++ b/lisp/register.el @@ -228,59 +228,68 @@ SMATCH accept a boolean value to say if command accept non matching register." :msg "Append to register `%s'" :act 'modify :noconfirm (memq register-use-preview '(nil never)) - :smatch t)) + :smatch t) + (cl-call-next-method)) (cl-defmethod register-command-info ((_command (eql prepend-to-register))) (make-register-preview-info :types '(string number) :msg "Prepend to register `%s'" :act 'modify :noconfirm (memq register-use-preview '(nil never)) - :smatch t)) + :smatch t) + (cl-call-next-method)) (cl-defmethod register-command-info ((_command (eql increment-register))) (make-register-preview-info :types '(string number) :msg "Increment register `%s'" :act 'modify :noconfirm (memq register-use-preview '(nil never)) - :smatch t)) + :smatch t) + (cl-call-next-method)) (cl-defmethod register-command-info ((_command (eql copy-to-register))) (make-register-preview-info :types '(all) :msg "Copy to register `%s'" :act 'set - :noconfirm (memq register-use-preview '(nil never)))) + :noconfirm (memq register-use-preview '(nil never))) + (cl-call-next-method)) (cl-defmethod register-command-info ((_command (eql point-to-register))) (make-register-preview-info :types '(all) :msg "Point to register `%s'" :act 'set - :noconfirm (memq register-use-preview '(nil never)))) + :noconfirm (memq register-use-preview '(nil never))) + (cl-call-next-method)) (cl-defmethod register-command-info ((_command (eql number-to-register))) (make-register-preview-info :types '(all) :msg "Number to register `%s'" :act 'set - :noconfirm (memq register-use-preview '(nil never)))) + :noconfirm (memq register-use-preview '(nil never))) + (cl-call-next-method)) (cl-defmethod register-command-info ((_command (eql window-configuration-to-register))) (make-register-preview-info :types '(all) :msg "Window configuration to register `%s'" :act 'set - :noconfirm (memq register-use-preview '(nil never)))) + :noconfirm (memq register-use-preview '(nil never))) + (cl-call-next-method)) (cl-defmethod register-command-info ((_command (eql frameset-to-register))) (make-register-preview-info :types '(all) :msg "Frameset to register `%s'" :act 'set - :noconfirm (memq register-use-preview '(nil never)))) + :noconfirm (memq register-use-preview '(nil never))) + (cl-call-next-method)) (cl-defmethod register-command-info ((_command (eql copy-rectangle-to-register))) (make-register-preview-info :types '(all) :msg "Copy rectangle to register `%s'" :act 'set :noconfirm (memq register-use-preview '(nil never)) - :smatch t)) + :smatch t) + (cl-call-next-method)) (defun register-preview-forward-line (arg) "Move to next or previous line in register preview buffer. -- 2.34.1