emacs-devel
[Top][All Lists]
Advanced

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

Re: Yanking isearch to highlight-regexp


From: Juri Linkov
Subject: Re: Yanking isearch to highlight-regexp
Date: Mon, 30 Jun 2008 22:59:14 +0300
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (x86_64-pc-linux-gnu)

>> The following patch creates a new variable `face-name-history' and
>> adds it to face-reading commands (most important is `read-face-name'
>> that is used by many other commands).
>
> OK.

Done.

>> ***************
>> *** 1227,1233 ****
>>   this regular expression.  When called interactively with a prefix
>>   arg, prompt for a regular expression."
>>     (interactive (list (and current-prefix-arg
>> !                           (read-string "List faces matching regexp: "))))
>>     (let ((all-faces (zerop (length regexp)))
>>      (frame (selected-frame))
>>      (max-length 0)
>> --- 1235,1241 ----
>>   this regular expression.  When called interactively with a prefix
>>   arg, prompt for a regular expression."
>>     (interactive (list (and current-prefix-arg
>> !                           (read-regexp "List faces matching regexp"))))
>>     (let ((all-faces (zerop (length regexp)))
>>      (frame (selected-frame))
>>      (max-length 0)
>
> This is part of the other patch, isn't it?

Yes, this is not related to the face history, but an attempt to use
`read-regexp' where it makes sense.

I now noticed that `read-regexp' doesn't provide backward compatible
behavior for `keep-lines' and other commands.  It puts the last history
element in parens as the default value.  I don't know why users insist
on this behavior for `occur' since the last history is easy available
via M-p.  But at least I propose to keep old and different behavior
for `occur' vs `keep-lines' and friends.

The patch below adds a new argument `default' to `read-regexp'
that is displayed in parens, and in `occur-read-primary-args' sets it
to `(car regexp-history)'.

A slightly different case is hi-lock.  It used to put the last regexp
from the history as initial input.  But since using initial input is
deprecated, this patch also sets the new `default' arg to
`(car regexp-history)' for hi-lock commands as well.

Index: lisp/replace.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/replace.el,v
retrieving revision 1.273
diff -c -r1.273 replace.el
*** lisp/replace.el     29 Jun 2008 16:09:08 -0000      1.273
--- lisp/replace.el     30 Jun 2008 19:54:43 -0000
***************
*** 522,536 ****
  Maximum length of the history list is determined by the value
  of `history-length', which see.")
  
! (defun read-regexp (prompt)
    "Read regexp as a string using the regexp history and some useful defaults.
! Prompt for a regular expression with PROMPT in the minibuffer.
! Provide the last element of the regexp history as the basic default,
! and return it on typing RET.  Additional defaults are the string
! at point, the last isearch regexp, the last isearch string, and the
! last replacement regexp.  Return the regexp as a string."
!   (let* ((default (car regexp-history))
!        (defaults
           (list (regexp-quote
                  (or (funcall (or find-tag-default-function
                                   (get major-mode 'find-tag-default-function)
--- 522,535 ----
  Maximum length of the history list is determined by the value
  of `history-length', which see.")
  
! (defun read-regexp (prompt &optional default)
    "Read regexp as a string using the regexp history and some useful defaults.
! Prompt for a regular expression with PROMPT (without a colon and
! space) in the minibuffer.  The optional string argument DEFAULT
! provides the basic default value, that is returned on typing RET.
! Additional defaults are the string at point, the last isearch regexp,
! the last isearch string, and the last replacement regexp."
!   (let* ((defaults
           (list (regexp-quote
                  (or (funcall (or find-tag-default-function
                                   (get major-mode 'find-tag-default-function)
***************
*** 1022,1028 ****
        (nreverse result))))
  
  (defun occur-read-primary-args ()
!   (list (read-regexp "List lines matching regexp")
        (when current-prefix-arg
          (prefix-numeric-value current-prefix-arg))))
  
--- 1021,1028 ----
        (nreverse result))))
  
  (defun occur-read-primary-args ()
!   (list (read-regexp "List lines matching regexp"
!                    (car regexp-history))
        (when current-prefix-arg
          (prefix-numeric-value current-prefix-arg))))

Index: lisp/hi-lock.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/hi-lock.el,v
retrieving revision 1.52
diff -c -r1.52 hi-lock.el
*** lisp/hi-lock.el     30 Jun 2008 19:36:38 -0000      1.52
--- lisp/hi-lock.el     30 Jun 2008 19:57:29 -0000
***************
*** 398,404 ****
  \(See info node `Minibuffer History'.)"
    (interactive
     (list
!     (hi-lock-regexp-okay (read-regexp "Regexp to highlight line"))
      (hi-lock-read-face-name)))
    (or (facep face) (setq face 'hi-yellow))
    (unless hi-lock-mode (hi-lock-mode 1))
--- 398,405 ----
  \(See info node `Minibuffer History'.)"
    (interactive
     (list
!     (hi-lock-regexp-okay
!      (read-regexp "Regexp to highlight line" (car regexp-history)))
      (hi-lock-read-face-name)))
    (or (facep face) (setq face 'hi-yellow))
    (unless hi-lock-mode (hi-lock-mode 1))
***************
*** 421,427 ****
  \(See info node `Minibuffer History'.)"
    (interactive
     (list
!     (hi-lock-regexp-okay (read-regexp "Regexp to highlight"))
      (hi-lock-read-face-name)))
    (or (facep face) (setq face 'hi-yellow))
    (unless hi-lock-mode (hi-lock-mode 1))
--- 422,429 ----
  \(See info node `Minibuffer History'.)"
    (interactive
     (list
!     (hi-lock-regexp-okay
!      (read-regexp "Regexp to highlight" (car regexp-history)))
      (hi-lock-read-face-name)))
    (or (facep face) (setq face 'hi-yellow))
    (unless hi-lock-mode (hi-lock-mode 1))
***************
*** 439,445 ****
     (list
      (hi-lock-regexp-okay
       (hi-lock-process-phrase
!       (read-regexp "Phrase to highlight")))
      (hi-lock-read-face-name)))
    (or (facep face) (setq face 'hi-yellow))
    (unless hi-lock-mode (hi-lock-mode 1))
--- 441,447 ----
     (list
      (hi-lock-regexp-okay
       (hi-lock-process-phrase
!       (read-regexp "Phrase to highlight" (car regexp-history))))
      (hi-lock-read-face-name)))
    (or (facep face) (setq face 'hi-yellow))
    (unless hi-lock-mode (hi-lock-mode 1))

-- 
Juri Linkov
http://www.jurta.org/emacs/




reply via email to

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