From: Ergus <spacibba@aol.com>
To: "Basil L. Contovounesios" <contovob@tcd.ie>
Cc: Juri Linkov <juri@linkov.net>, emacs-devel@gnu.org
Subject: Re: isearch region or thing at point.
Date: Wed, 1 May 2019 02:13:10 +0200 [thread overview]
Message-ID: <20190501001310.xvneubg4rl7c5dit@Ergus> (raw)
In-Reply-To: <874l6f132f.fsf@tcd.ie>
Hi all!:
I have 3 questions before sending all the changes I propose:
1) I provided both cases, a function isearch-forward-region and
isearch-yank-region. One can be bind to M-s something and the other to
M-something once in isearch-mode-map. So the user will be not forced to
move to exit isearch if he is already there.
But on the other hand with the yank one the other does not offer any
real advantage as C-s M-w is not shorter than M-s M-w, bust a bit
easier to type, but not to remember.
I would like M-s M-(y?w) for the first and M-(y?w) for the second... but
I still find those a bit inconsistent (and long). What do you suggest?
2) A more theoretical:
Why the region-extract-function is not a normal function?
Why {when|if|and|...}-let macros are in such a special file and most of
the code don't use them? What's the problem with them?
3) What do you think is the right behavior in case isearch-string is not
empty?
Suppose you marked a region and then type: C-s letter, the cursor will
move to letter, but the actual active region will be from mark->letter.
Because in that case the point has already moved from it's initial
position, so the region is not the same than when it started.
1) Should the command do nothing in that case?
2) Or it must yank what used to be the initial region??
3) Something else?
Best,
Ergus.
On Wed, May 01, 2019 at 12:33:12AM +0100, Basil L. Contovounesios wrote:
>Ergus <spacibba@aol.com> writes:
>
>> On Tue, Apr 30, 2019 at 11:39:11PM +0100, Basil L. Contovounesios wrote:
>>>Ergus <spacibba@aol.com> writes:
>>>
>>>> (region-bounds)))
>>>> (contiguous (= (length bounds) 1)) ;; Region is contiguous
>>>
>>>Better to use the function region-noncontiguous-p.
>>>
>> I already had the bounds.. I didn't want to do the funcall again... but
>> I know it is probably not important.. I am just an obsessed.
>
>The higher-level and more flexible region-extract-function will handle
>this for you in any case.
>
>>>> (region-string (and (= (count-lines region-beg region-end) 1)
>>>> (buffer-substring-no-properties
>>>> region-beg region-end)))
>>>
>>>Why can't the region span multiple lines? Better to use
>>>region-extract-function for this, as it is more flexible.
>>>
>> I don't thing that searching multiple lines will be very useful in
>> practice and could potentially produce some corner cases. But I
>> will think about that a bit more.
>
>AFAIK, isearch is designed to work perfectly fine with multiple lines,
>and I use this feature a lot, especially in the context of lax
>whitespace matches in Info manuals, for example.
>
>Providing a dedicated region isearch command which is limited to a
>single line sounds hardly better than using isearch-yank-word-or-char or
>similar.
>
>>>> (isearch-yank-string region-string)
>>>>
>>>> (when-let (count (and arg (prefix-numeric-value arg)))
>>>> (isearch-repeat-forward count)))
>>>
>>>This can be simplified as per Noam's suggestion.
>> Yes, sorry, I was concerned if somehow the prefix could be non-nil, but
>> (prefix-numeric-value arg) could return nil... I don't really know the
>> fancy valued that prefix could potentially have. But probably there is
>> not any danger there.
>
>All potential prefix values are listed under (info "(elisp) Prefix
>Command Arguments"), and prefix-numeric-value is guaranteed to return an
>integer.
>
>Thanks,
>
>--
>Basil
>
next prev parent reply other threads:[~2019-05-01 0:13 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 [this message]
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
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=20190501001310.xvneubg4rl7c5dit@Ergus \
--to=spacibba@aol.com \
--cc=contovob@tcd.ie \
--cc=emacs-devel@gnu.org \
--cc=juri@linkov.net \
/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).