unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "Basil L. Contovounesios" <contovob@tcd.ie>
To: Ergus <spacibba@aol.com>
Cc: Juri Linkov <juri@linkov.net>, emacs-devel@gnu.org
Subject: Re: isearch region or thing at point.
Date: Fri, 03 May 2019 17:28:16 +0100	[thread overview]
Message-ID: <87muk3bizj.fsf@tcd.ie> (raw)
In-Reply-To: <20190501112025.fnsynkbmkvllapyv@Ergus> (Ergus's message of "Wed,  1 May 2019 13:20:25 +0200")

Ergus <spacibba@aol.com> writes:

> Here is attached a patch with all my proposed changes to isearch.

Thanks, just some minor comments from me:

> @@ -267,6 +267,14 @@ of the current line to the search string.  If point is already at the
>  end of a line, it appends the next line.  With a prefix argument
>  @var{n}, it appends the next @var{n} lines.
>  
> +@kindex M-w @r{(Incremental search)}
> +@findex isearch-yank-region
> +  @kbd{M-w} (@code{isearch-yank-region}) appends the text in the
> +active region if @code{transient-mark-mode} is @code{non-nil}. This is

I think it is more common to talk about transient-mark-mode the mode,
not the variable. 

Emacs convention is to end all sentences with two spaces, see the
sentence-end-double-space setting in the repository's dir-locals-file.

> +an easy way to insert the text in the region without needing to exit
> +@code{isearch-mode}. The region is deactivated during the search, but
> +it is reactivated if the @code{isearch-cancel} is called.
> +
>  @kindex C-y @r{(Incremental search)}
>  @kindex M-y @r{(Incremental search)}
>  @kindex mouse-2 @r{in the minibuffer (Incremental search)}
> diff --git a/lisp/isearch.el b/lisp/isearch.el
> index 6280afebdc..78414dbfcd 100644
> --- a/lisp/isearch.el
> +++ b/lisp/isearch.el
> @@ -937,6 +940,8 @@ Each element is an `isearch--state' struct where the slots are
>  
>  (defvar isearch--saved-overriding-local-map nil)
>  
> +(defvar isearch--deactivated-mark nil)
> +

It's always nice to have docstrings.

>  ;; Minor-mode-alist changes - kind of redundant with the
>  ;; echo area, but if isearching in multiple windows, it can be useful.
>  ;; Also, clicking the mode-line indicator pops up
> @@ -1133,6 +1140,22 @@ positive, or search for ARGth symbol backward if ARG is negative."
>        (isearch-push-state)
>        (isearch-update)))))
>  
> +(defun isearch-forward-region (&optional arg)
> +  "Do incremental search forward for text in active region.
> +Like ordinary incremental search except that the text in the
> +active region is added to the search string initially
> +if`transient-mark-mode' is enabled.  See the command
    ^^^

Missing space.

> +`isearch-forward' for more information.
> +With a prefix argument, search for ARGth occurrence forward if
> +ARG is positive, or ARGth occurrence backward if ARG is
> +negative."
> +  (interactive "P")
> +  (isearch-forward nil 1)
> +  (isearch-yank-region)
> +  (when (and isearch--deactivated-mark
> +             arg)
> +    (isearch-repeat-forward (prefix-numeric-value arg))))
> +
>  \f
>  ;; isearch-mode only sets up incremental search for the minor mode.
>  ;; All the work is done by the isearch-mode commands.
> @@ -2446,6 +2473,27 @@ If search string is empty, just beep."
>    ;; then it "used" the mark which we should hence deactivate.
>    (when select-active-regions (deactivate-mark)))
>  
> +(defun isearch-yank-region ()
> +  "Pull current active region text into search string.
> +The text in the active region is added to the search string if
> +variable `transient-mark-mode' is non nil."

Ditto re: transient-mark-mode the mode, not variable.

Thanks,

-- 
Basil



  parent reply	other threads:[~2019-05-03 16:28 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-27  0:14 isearch region or thing at point Ergus
2019-04-27  2:15 ` Basil L. Contovounesios
2019-04-29  0:41   ` Ergus
2019-04-29  1:30     ` Ergus
2019-04-29  1:31     ` Ergus
2019-04-29 19:41     ` Juri Linkov
2019-04-29 20:50       ` Ergus
2019-04-30 15:39       ` Drew Adams
2019-04-30 16:57         ` Ergus
2019-04-30 19:58           ` Juri Linkov
2019-04-30 16:25       ` Ergus
2019-04-30 18:49         ` Noam Postavsky
2019-04-30 19:03           ` Ergus
2019-04-30 19:24             ` Noam Postavsky
2019-04-30 20:05               ` Ergus
2019-04-30 20:38                 ` Noam Postavsky
2019-04-30 22:39         ` Basil L. Contovounesios
2019-04-30 23:16           ` Ergus
2019-04-30 23:33             ` Basil L. Contovounesios
2019-05-01  0:13               ` Ergus
2019-05-01 20:57                 ` Juri Linkov
2019-05-03 16:27                 ` Basil L. Contovounesios
2019-05-01 11:20               ` Ergus
2019-05-01 14:33                 ` Drew Adams
2019-05-01 16:03                   ` Ergus
2019-05-01 16:25                     ` Drew Adams
2019-05-03 16:28                     ` Basil L. Contovounesios
2019-05-04  9:29                     ` Eli Zaretskii
2019-05-03 16:28                 ` Basil L. Contovounesios [this message]
2019-05-04  9:26                 ` Eli Zaretskii
2019-05-04 12:15                   ` Ergus
2019-05-04 14:17                     ` Drew Adams
2019-05-04 14:56                       ` Ergus
2019-05-04 15:24                         ` Drew Adams
2019-05-04 21:06                           ` Juri Linkov
2019-05-04 22:40                             ` Drew Adams
2019-05-06 19:41                               ` Juri Linkov
2019-05-07  2:56                                 ` Drew Adams
2019-05-07 19:56                                   ` Ergus

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=87muk3bizj.fsf@tcd.ie \
    --to=contovob@tcd.ie \
    --cc=emacs-devel@gnu.org \
    --cc=juri@linkov.net \
    --cc=spacibba@aol.com \
    /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).