unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Juri Linkov <juri@jurta.org>
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: David Koppelman <koppel@ece.lsu.edu>, emacs-devel@gnu.org
Subject: Re: Yanking isearch to highlight-regexp
Date: Mon, 30 Jun 2008 22:59:14 +0300	[thread overview]
Message-ID: <87bq1ihey5.fsf@jurta.org> (raw)
In-Reply-To: <jwvd4lz4tzq.fsf-monnier+emacs@gnu.org> (Stefan Monnier's message of "Sun, 29 Jun 2008 21:01:14 -0400")

>> 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	other threads:[~2008-06-30 19:59 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-06-14 16:57 Yanking isearch to highlight-regexp Lennart Borgman (gmail)
2008-06-14 21:42 ` Mathias Dahl
2008-06-14 21:50   ` Stefan Monnier
2008-06-14 21:54     ` Mathias Dahl
2008-06-15  0:32       ` Juri Linkov
2008-06-15  0:08     ` Lennart Borgman (gmail)
2008-06-15  0:33       ` Juri Linkov
2008-06-15  1:48       ` Stefan Monnier
2008-06-15  9:47         ` Lennart Borgman (gmail)
2008-06-15 20:48           ` Juri Linkov
2008-06-15 21:10             ` Lennart Borgman (gmail)
2008-06-15 22:54               ` Juri Linkov
2008-06-15 23:09                 ` Lennart Borgman (gmail)
2008-06-16  9:34                   ` Juri Linkov
2008-06-16 11:13                     ` Lennart Borgman
2008-06-16 21:48                       ` Juri Linkov
2008-06-16 18:50             ` David Koppelman
2008-06-16 19:08               ` Lennart Borgman (gmail)
2008-06-16 21:50               ` Juri Linkov
2008-06-17 18:50                 ` David Koppelman
2008-06-24 23:09                   ` Juri Linkov
2008-06-25  1:43                     ` Stefan Monnier
2008-06-25 20:32                       ` Juri Linkov
2008-06-25 22:16                         ` Miles Bader
2008-06-25 22:22                           ` Lennart Borgman (gmail)
2008-06-25 22:58                             ` Miles Bader
2008-06-27 23:15                           ` Global keymaps [was: Yanking isearch to highlight-regexp] Juri Linkov
2008-06-27 23:20                             ` Lennart Borgman (gmail)
2008-06-27 23:32                               ` Juri Linkov
2008-06-28  0:28                             ` Global keymaps Miles Bader
2008-06-28  1:25                               ` Stefan Monnier
2008-06-28 19:45                               ` Juri Linkov
2008-06-28 22:51                                 ` Stefan Monnier
2008-06-29 16:17                                   ` Juri Linkov
2008-06-29 18:03                                     ` Stefan Monnier
2008-06-29 19:28                                       ` Juri Linkov
2008-06-29 20:03                                         ` Stefan Monnier
2008-06-29 20:52                                           ` Juri Linkov
2008-06-29 21:24                                             ` Lennart Borgman (gmail)
2008-06-30  1:00                                               ` Stefan Monnier
2008-06-28 22:02             ` Yanking isearch to highlight-regexp Juri Linkov
2008-06-28 22:23               ` Stefan Monnier
2008-06-29 16:19                 ` Juri Linkov
2008-06-29 18:07                   ` Stefan Monnier
2008-06-29 19:29                     ` Juri Linkov
2008-06-29 20:05                       ` Stefan Monnier
2008-06-29 20:55                         ` Juri Linkov
2008-06-30  1:01                           ` Stefan Monnier
2008-06-30 19:59                             ` Juri Linkov [this message]
2008-07-01 21:34                               ` Grep key bindings (was: Yanking isearch to highlight-regexp) Juri Linkov
2008-07-01 21:44                                 ` Grep key bindings Miles Bader
2008-07-01 21:54                                   ` Juri Linkov
2008-07-01 22:11                                     ` Miles Bader
2008-07-02 22:42                                       ` Juri Linkov
2008-07-03  6:53                                         ` joakim
2008-07-03  7:07                                           ` Miles Bader
2008-07-03 13:18                                         ` Ted Zlatanov
2008-07-03 22:06                                           ` Stefan Monnier
2008-07-03 14:50                                         ` Dan Nicolaescu
2008-07-03 15:37                                       ` Phil Jackson
2008-07-03 16:59                                         ` Drew Adams
2008-07-04 10:46                                       ` Eli Zaretskii
2008-07-04 10:59                                         ` Miles Bader
2008-07-30 17:49                               ` Yanking isearch to highlight-regexp Juri Linkov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87bq1ihey5.fsf@jurta.org \
    --to=juri@jurta.org \
    --cc=emacs-devel@gnu.org \
    --cc=koppel@ece.lsu.edu \
    --cc=monnier@iro.umontreal.ca \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).