unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#18131: 24.4.50; View-search-... skips all matches between (point) and edge of window
@ 2014-07-28 18:06 Dima Kogan
       [not found] ` <handler.18131.B.14065708586384.ack@debbugs.gnu.org>
  2016-02-23 12:26 ` bug#18131: 24.4.50; View-search-... skips all matches between (point) and edge of window Lars Ingebrigtsen
  0 siblings, 2 replies; 5+ messages in thread
From: Dima Kogan @ 2014-07-28 18:06 UTC (permalink / raw)
  To: 18131

[-- Attachment #1: Type: text/plain, Size: 617 bytes --]

Hi.

The emacs view-mode has navigation with 'n' and 'p' keys to navigate by
searching (like isearch, but with fewer keystrokes and very similar to
less and vi).

I just discovered that unlike less and vi, this view-mode navigation
doesn't hit all the matches, but rather skips the ones between (point)
and the edge of the window. This ensures that any matches that are
visible by the user (but not highlighted by view-mode) are skipped.

This clearly was a design choice, rather than a bug. However, the
documentation doesn't mention this, and I think it is counterintuitive.
Attaching a very simple patch to fix.



[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-View-search-.-now-hit-all-the-matches-regardless-of-.patch --]
[-- Type: text/x-diff, Size: 1034 bytes --]

From ed227e61fe92c54c18542455448ed7f28d0c9e77 Mon Sep 17 00:00:00 2001
From: Dima Kogan <dima@secretsauce.net>
Date: Mon, 28 Jul 2014 11:05:00 -0700
Subject: [PATCH] View-search-... now hit all the matches, regardless of window
 position

Prior to this patch anything between (point) and the edge of the window was
skipped. This was counterintuitive (not what less or vim do) and was not
mentioned in the documentation
---
 lisp/view.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lisp/view.el b/lisp/view.el
index 9f914b0..498a434 100644
--- a/lisp/view.el
+++ b/lisp/view.el
@@ -960,7 +960,7 @@ for highlighting the match that is found."
      (t (error "No previous View-mode search")))
     (save-excursion
       (if end (goto-char (if (< times 0) (point-max) (point-min)))
-	(move-to-window-line (if (< times 0) 0 -1)))
+	(forward-char (if (< times 0) -1 1)))
       (if (if no (view-search-no-match-lines times regexp)
 	    (re-search-forward regexp nil t times))
 	  (setq where (point))))
-- 
2.0.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* bug#18131: patch update
       [not found] ` <handler.18131.B.14065708586384.ack@debbugs.gnu.org>
@ 2014-07-28 18:26   ` Dima Kogan
  0 siblings, 0 replies; 5+ messages in thread
From: Dima Kogan @ 2014-07-28 18:26 UTC (permalink / raw)
  To: 18131

[-- Attachment #1: Type: text/plain, Size: 67 bytes --]

I jumped the gun with that patch a bit. Here's an updated version


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-View-search-.-now-hit-all-the-matches-regardless-of-.patch --]
[-- Type: text/x-diff, Size: 1034 bytes --]

From 5c300c00db8de26074b7b537e1cebde19a5574e7 Mon Sep 17 00:00:00 2001
From: Dima Kogan <dima@secretsauce.net>
Date: Mon, 28 Jul 2014 11:05:00 -0700
Subject: [PATCH] View-search-... now hit all the matches, regardless of window
 position

Prior to this patch anything between (point) and the edge of the window was
skipped. This was counterintuitive (not what less or vim do) and was not
mentioned in the documentation
---
 lisp/view.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lisp/view.el b/lisp/view.el
index 9f914b0..698a73c 100644
--- a/lisp/view.el
+++ b/lisp/view.el
@@ -960,7 +960,7 @@ for highlighting the match that is found."
      (t (error "No previous View-mode search")))
     (save-excursion
       (if end (goto-char (if (< times 0) (point-max) (point-min)))
-	(move-to-window-line (if (< times 0) 0 -1)))
+	(forward-line (if (< times 0) -1 1)))
       (if (if no (view-search-no-match-lines times regexp)
 	    (re-search-forward regexp nil t times))
 	  (setq where (point))))
-- 
2.0.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* bug#18131: 24.4.50; View-search-... skips all matches between (point) and edge of window
  2014-07-28 18:06 bug#18131: 24.4.50; View-search-... skips all matches between (point) and edge of window Dima Kogan
       [not found] ` <handler.18131.B.14065708586384.ack@debbugs.gnu.org>
@ 2016-02-23 12:26 ` Lars Ingebrigtsen
  2016-12-25  6:43   ` Dima Kogan
  1 sibling, 1 reply; 5+ messages in thread
From: Lars Ingebrigtsen @ 2016-02-23 12:26 UTC (permalink / raw)
  To: Dima Kogan; +Cc: 18131

Dima Kogan <dima@secretsauce.net> writes:

> The emacs view-mode has navigation with 'n' and 'p' keys to navigate by
> searching (like isearch, but with fewer keystrokes and very similar to
> less and vi).
>
> I just discovered that unlike less and vi, this view-mode navigation
> doesn't hit all the matches, but rather skips the ones between (point)
> and the edge of the window. This ensures that any matches that are
> visible by the user (but not highlighted by view-mode) are skipped.
>
> This clearly was a design choice, rather than a bug. However, the
> documentation doesn't mention this, and I think it is counterintuitive.
> Attaching a very simple patch to fix.

[...]

> -	(move-to-window-line (if (< times 0) 0 -1)))

If this was a design choice, then we should perhaps ask the person who
designed it what it's all about...  which isn't easy in this instance,
since this is very old code.

Does anybody have an opinion here?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#18131: 24.4.50; View-search-... skips all matches between (point) and edge of window
  2016-02-23 12:26 ` bug#18131: 24.4.50; View-search-... skips all matches between (point) and edge of window Lars Ingebrigtsen
@ 2016-12-25  6:43   ` Dima Kogan
  2019-06-25 22:50     ` Lars Ingebrigtsen
  0 siblings, 1 reply; 5+ messages in thread
From: Dima Kogan @ 2016-12-25  6:43 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 18131

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Dima Kogan <dima@secretsauce.net> writes:
>
>> The emacs view-mode has navigation with 'n' and 'p' keys to navigate by
>> searching (like isearch, but with fewer keystrokes and very similar to
>> less and vi).
>>
>> I just discovered that unlike less and vi, this view-mode navigation
>> doesn't hit all the matches, but rather skips the ones between (point)
>> and the edge of the window. This ensures that any matches that are
>> visible by the user (but not highlighted by view-mode) are skipped.
>>
>> This clearly was a design choice, rather than a bug. However, the
>> documentation doesn't mention this, and I think it is counterintuitive.
>> Attaching a very simple patch to fix.
>
> [...]
>
>> -	(move-to-window-line (if (< times 0) 0 -1)))
>
> If this was a design choice, then we should perhaps ask the person who
> designed it what it's all about...  which isn't easy in this instance,
> since this is very old code.
>
> Does anybody have an opinion here?

Can we revisit this? I think view-mode behaving like 'less' does would
be an improvement.





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#18131: 24.4.50; View-search-... skips all matches between (point) and edge of window
  2016-12-25  6:43   ` Dima Kogan
@ 2019-06-25 22:50     ` Lars Ingebrigtsen
  0 siblings, 0 replies; 5+ messages in thread
From: Lars Ingebrigtsen @ 2019-06-25 22:50 UTC (permalink / raw)
  To: Dima Kogan; +Cc: 18131

Dima Kogan <dima@secretsauce.net> writes:

>>> -	(move-to-window-line (if (< times 0) 0 -1)))
>>
>> If this was a design choice, then we should perhaps ask the person who
>> designed it what it's all about...  which isn't easy in this instance,
>> since this is very old code.
>>
>> Does anybody have an opinion here?
>
> Can we revisit this? I think view-mode behaving like 'less' does would
> be an improvement.

After playing with it a bit, I think you're right -- the current
behaviour seems really unobvious.  I've applied your patch to the trunk.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-06-25 22:50 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-07-28 18:06 bug#18131: 24.4.50; View-search-... skips all matches between (point) and edge of window Dima Kogan
     [not found] ` <handler.18131.B.14065708586384.ack@debbugs.gnu.org>
2014-07-28 18:26   ` bug#18131: patch update Dima Kogan
2016-02-23 12:26 ` bug#18131: 24.4.50; View-search-... skips all matches between (point) and edge of window Lars Ingebrigtsen
2016-12-25  6:43   ` Dima Kogan
2019-06-25 22:50     ` Lars Ingebrigtsen

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).