all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Drew Adams <drew.adams@oracle.com>
To: "Clément Pit-Claudel" <cpitclaudel@gmail.com>,
	"Dmitry Gutov" <dgutov@yandex.ru>,
	"Vladimir Sedach" <vas@oneofus.la>
Cc: emacs-devel@gnu.org
Subject: RE: next-error use cases
Date: Sat, 23 May 2020 08:29:34 -0700 (PDT)	[thread overview]
Message-ID: <b545d4cc-481b-43a8-b221-368af98fa1e1@default> (raw)
In-Reply-To: <152f1200-a2d0-e137-418f-18ceb14fbbe3@gmail.com>

> Hopefully the following isn't too silly.  Right now we use C-x ` for
> two fairly different purposes:
> 
> 1. We have a list of locations (typically lines and columns), and we
> want jump from one to the next, opening files and buffers as needed
> (that's the grep, occur, and compilation-mode cases).
> 2. We have a buffer with interesting locations, and we want to cycle
> through them (that's the flyspell, flymake, flycheck cases).
> 
> This sounds quite similar to what happens with the global and the 
> local mark rings, actually.  To cycle through marks in the current 
> buffer you use C-u C-SPC; to cycle through global marks you use
> C-x C-SPC.  So I wonder if it would make sense to have C-x ` cycle 
> through locations that come from "location lists" (grep) and
> having, say, C-c ` cycle through locations that come from the
> current buffer (flyspell).
> 
> That doesn't fully solve the problem of picking which location
> list to cycle through, but it eliminates the confusion between
> local and global locations (as a logical consequence, I imagine
> C-c ` in a location list would most of the time just move to the
> next line, though in an occur or grep buffer with multiple lines
> of context it would jump to the next match)

Sorry to barge in here, especially having not read
the thread till here.

Just thought I'd mention what I do in Bookmark+ and
zones.el, in this regard.  There too you can cycle
among things: bookmarks, buffer zones (regions/areas).

In each case, you can have a list of same-buffer
thingies to cycle among or a list of multiple-buffer
thingies to cycle among.

In each case, there are default lists of same-buffer
and multiple-buffer thingies, and you can define
other, named lists.

In each case, it's easy to switch among such lists.
For navigation purposes (such lists/sets can be used
for other purposes too), call them "navigation lists".

So in each case there are various ways to choose a
navigation list, to make it current.

In the case of Bookmark+:

* You can pick a set of bookmarks that are all of a
  given type (e.g. Info, Dired, EWW)

* You can pick them by picking a bookmark-list bookmark.

* You can pick them by choosing the current bookmark
  list (as displayed: sorted, respecting omissions etc.).

* You can use the currently defined global bookmark
  list (ignoring what's in the displayed bookmark list).

* There are separate keys for cycling among bookmarks
  for the current file/buffer and for cycling among
  another chosen navigation list.  IOW, you can do the
  former without unchoosing the current navigation list.

In the case of zones.el, you choose a zone-set variable.
Such a variable can be buffer-local, so its zones are
only for the current buffer, or it can be global, i.e.,
across buffers.

So the ways of picking navigation lists are different
for bookmarks and zones, as they should be.  As I said,
such sets serve other purposes, besides just navigation,
and those purposes are very different for zones and
bookmarks.

Likewise, the keys for cycling are different for zones
and bookmarks.  The keys for each fit in with the other
keys (other zone keys, other bookmark keys).

Dunno whether this info helps at all, either as food
for thought (e.g., generalizing the view) or as an
argument that it does not necessarily make sense to
search for a single way to use such things (e.g. single
set of cycling keys, or even similar cycling keys).

Note: "not necessarily".  Other things being equal, of
course it helps users if the same or similar keys do
the same or similar things in different contexts.  But
other things might well not be equal (they are not
equal in the case of zones and bookmarks).  Different
kinds of thing-sets offer different possibilities.

Bookmark+ description of this:

https://www.emacswiki.org/emacs/BookmarkPlus#CyclingNavlist

zones.el description:

https://www.emacswiki.org/emacs/Zones



  parent reply	other threads:[~2020-05-23 15:29 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-07 21:47 next-error use cases Juri Linkov
2018-04-08 13:48 ` Eli Zaretskii
2018-04-08 19:56   ` Juri Linkov
2018-04-08 20:26     ` Clément Pit-Claudel
2018-04-08 20:35       ` Dmitry Gutov
2018-04-10  4:19         ` Stephen Leake
2018-04-10 14:28           ` Drew Adams
2018-04-09  2:24       ` Eli Zaretskii
2018-04-08 20:36   ` Dmitry Gutov
2018-04-09 14:48     ` Eli Zaretskii
2018-04-09 18:44       ` Charles A. Roelli
2018-04-09 20:47         ` Juri Linkov
2018-04-10  4:24           ` Stephen Leake
2018-04-10 20:06             ` Juri Linkov
     [not found]               ` <86woxe1l0l.fsf@stephe-leake.org>
2018-04-11  7:29                 ` Dmitry Gutov
2018-04-11 20:46                   ` Juri Linkov
2018-04-12 15:31                     ` Stephen Leake
2018-04-12 15:25                   ` Stephen Leake
2018-04-12 16:51                     ` Dmitry Gutov
2018-04-13 16:22                       ` Stephen Leake
2018-04-13 16:26                         ` Dmitry Gutov
2018-04-10 23:06       ` Dmitry Gutov
2018-04-12 20:27 ` Juri Linkov
2018-04-13  7:45   ` Eli Zaretskii
2018-04-13 19:48     ` Juri Linkov
2020-05-19  1:10       ` Dmitry Gutov
2020-05-19 22:12         ` Juri Linkov
2020-05-21  1:57           ` Dmitry Gutov
2020-05-21 20:33             ` Vladimir Sedach
2020-05-21 21:02               ` Stefan Monnier
2020-05-21 21:53               ` Dmitry Gutov
2020-05-21 22:06                 ` Juri Linkov
2020-05-21 22:49                   ` Dmitry Gutov
2020-05-22  1:31                     ` Clément Pit-Claudel
2020-05-22 19:10                       ` Vladimir Sedach
2020-05-23  1:22                         ` Clément Pit-Claudel
2020-05-23  1:27                           ` Dmitry Gutov
     [not found]                             ` <b386929f-4412-860d-343f-a728d6d7e816@gmail.com>
     [not found]                               ` <c6c941bb-a160-f767-b266-6a17f4b4c2ca@yandex.ru>
     [not found]                                 ` <152f1200-a2d0-e137-418f-18ceb14fbbe3@gmail.com>
2020-05-23 15:29                                   ` Drew Adams [this message]
2020-05-24  1:36                                   ` Dmitry Gutov
2020-05-24  1:41                                     ` Clément Pit-Claudel
2020-05-24 14:25                                       ` Dmitry Gutov
2020-05-22 23:50                       ` Dmitry Gutov
2020-05-23  1:25                         ` Clément Pit-Claudel
2020-05-23  1:29                           ` Dmitry Gutov

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

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

  git send-email \
    --in-reply-to=b545d4cc-481b-43a8-b221-368af98fa1e1@default \
    --to=drew.adams@oracle.com \
    --cc=cpitclaudel@gmail.com \
    --cc=dgutov@yandex.ru \
    --cc=emacs-devel@gnu.org \
    --cc=vas@oneofus.la \
    /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 external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.