emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r116236: register preview fixes


From: Glenn Morris
Subject: [Emacs-diffs] trunk r116236: register preview fixes
Date: Sun, 02 Feb 2014 01:04:17 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 116236
revision-id: address@hidden
parent: address@hidden
fixes bug: http://debbugs.gnu.org/16595
committer: Glenn Morris <address@hidden>
branch nick: trunk
timestamp: Sat 2014-02-01 17:04:08 -0800
message:
  register preview fixes
  
  * doc/emacs/regs.texi (Registers): Mention previewing.
  
  * lisp/register.el (register-preview-default): New function,
  split from register-preview.
  (register-preview-function): Rename from register-preview-functions,
  make it not a hook.
  (register-preview): Use register-preview-function.
  (register-read-with-preview): Error on non-character event. 
  
  * etc/NEWS: Related markup.
modified:
  doc/emacs/ChangeLog            changelog-20091113204419-o5vbwnq5f7feedwu-6227
  doc/emacs/regs.texi            regs.texi-20091113204419-o5vbwnq5f7feedwu-6273
  etc/NEWS                       news-20100311060928-aoit31wvzf25yr1z-1
  lisp/ChangeLog                 changelog-20091113204419-o5vbwnq5f7feedwu-1432
  lisp/register.el               register.el-20091113204419-o5vbwnq5f7feedwu-104
=== modified file 'doc/emacs/ChangeLog'
--- a/doc/emacs/ChangeLog       2014-01-29 08:27:55 +0000
+++ b/doc/emacs/ChangeLog       2014-02-02 01:04:08 +0000
@@ -1,3 +1,7 @@
+2014-02-02  Glenn Morris  <address@hidden>
+
+       * regs.texi (Registers): Mention previewing.
+
 2014-01-29  Glenn Morris  <address@hidden>
 
        * killing.texi (Deletion): Mention cycle-spacing.

=== modified file 'doc/emacs/regs.texi'
--- a/doc/emacs/regs.texi       2014-01-01 07:43:34 +0000
+++ b/doc/emacs/regs.texi       2014-02-02 01:04:08 +0000
@@ -29,6 +29,15 @@
 Display a description of what register @var{r} contains.
 @end table
 
address@hidden register-preview-delay
address@hidden preview of registers
+  All of the commands that prompt for a register will display a
+``preview'' window that lists the existing registers (if there are
+any) after a short delay.  To change the length of the delay,
+customize @code{register-preview-delay}.  To prevent this display, set
+that option to @code{nil}.  You can explicitly request a preview
+window by pressing @kbd{C-h} or @key{F1}.
+
   @dfn{Bookmarks} record files and positions in them, so you can
 return to those positions when you look at the file again.  Bookmarks
 are similar in spirit to registers, so they are also documented in

=== modified file 'etc/NEWS'
--- a/etc/NEWS  2014-01-31 17:33:12 +0000
+++ b/etc/NEWS  2014-02-02 01:04:08 +0000
@@ -301,6 +301,7 @@
 
 ** Register changes
 
++++
 *** All interactive commands that read a register (`copy-to-register', etc.)
 now display a temporary window after `register-preview-delay' seconds
 that summarizes existing registers.  To disable this, set that option to nil.
@@ -930,7 +931,7 @@
 function-carrying place, such as process-filters or `<foo>-function' hooks.
 
 *** advice-add/advice-remove to add/remove a piece of advice on a named
-function,much like `defadvice' does.
+function, much like `defadvice' does.
 
 ** New package frameset.el.
 It provides a set of operations to save a frameset (the state of all

=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2014-02-01 17:06:08 +0000
+++ b/lisp/ChangeLog    2014-02-02 01:04:08 +0000
@@ -1,3 +1,12 @@
+2014-02-02  Glenn Morris  <address@hidden>
+
+       * register.el (register-preview-default): New function,
+       split from register-preview.
+       (register-preview-function): Rename from register-preview-functions,
+       make it not a hook.
+       (register-preview): Use register-preview-function.
+       (register-read-with-preview): Error on non-character event.  (Bug#16595)
+
 2014-02-01  Dmitry Gutov  <address@hidden>
 
        * progmodes/ruby-mode.el (ruby-smie--implicit-semi-p): Check for

=== modified file 'lisp/register.el'
--- a/lisp/register.el  2014-01-31 06:20:29 +0000
+++ b/lisp/register.el  2014-02-02 01:04:08 +0000
@@ -119,11 +119,21 @@
         (substring d (match-end 0))
       d)))
 
-(defvar register-preview-functions nil)
+(defun register-preview-default (r)
+  "Default function for the variable `register-preview-function'."
+  (format "%s %s\n"
+         (concat (single-key-description (car r)) ":")
+         (register-describe-oneline (car r))))
+
+(defvar register-preview-function #'register-preview-default
+  "Function to format a register for previewing.
+Takes one argument, a cons (NAME . CONTENTS) as found in `register-alist'.
+Returns a string.")
 
 (defun register-preview (buffer &optional show-empty)
   "Pop up a window to show register preview in BUFFER.
-If SHOW-EMPTY is non-nil show the window even if no registers."
+If SHOW-EMPTY is non-nil show the window even if no registers.
+Format of each entry is controlled by the variable 
`register-preview-function'."
   (when (or show-empty (consp register-alist))
     (with-temp-buffer-window
      buffer
@@ -132,14 +142,7 @@
      nil
      (with-current-buffer standard-output
        (setq cursor-in-non-selected-windows nil)
-       (mapc
-       (lambda (r)
-         (insert (or (run-hook-with-args-until-success
-                      'register-preview-functions r)
-                     (format "%s %s\n"
-                             (concat (single-key-description (car r)) ":")
-                             (register-describe-oneline (car r))))))
-       register-alist)))))
+       (insert (mapconcat register-preview-function register-alist ""))))))
 
 (defun register-read-with-preview (prompt)
   "Read and return an event, prompting with PROMPT, possibly showing a preview.
@@ -162,7 +165,8 @@
                       help-chars)
            (unless (get-buffer-window buffer)
              (register-preview buffer 'show-empty)))
-         last-input-event)
+         (if (characterp last-input-event) last-input-event
+           (error "Non-character input-event")))
       (and (timerp timer) (cancel-timer timer))
       (let ((w (get-buffer-window buffer)))
         (and (window-live-p w) (delete-window w)))


reply via email to

[Prev in Thread] Current Thread [Next in Thread]