all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Stefan Monnier <monnier@iro.umontreal.ca>
Subject: Re: Browse skeleton positions
Date: Sun, 19 Oct 2003 23:36:08 GMT	[thread overview]
Message-ID: <jwvbrscddd6.fsf-monnier+gnu.emacs.help@vor.iro.umontreal.ca> (raw)
In-Reply-To: 877k32jumc.fsf@newsguy.com

Stefan> Maybe it would be better to just use (point) instead, and when
Stefan> you do `next' or `prev', go through the list looking for the
Stefan> nearest marker in the requested direction ?

> Hmmmm.  Again, interesting suggestion, but the behavior could be
> significantly different in case there are multiple overlapping skeletons.

Darn!

Stefan> As for the behavior, the above has the nasty side effect that
Stefan> just loading "skelposn" into your Emacs will cause all your
Stefan> skeleton positions to accumulate in the form of markers (at
Stefan> least until you finally call skeleton-position-exit which will
Stefan> likely be never if you don't actually use skelposn).  This can
Stefan> lead to a significant slowdown because of the way markers are
Stefan> implemented.

> Note the kill-buffer-hook.

But that's too late.  The hook is actually pretty useless because
you're kill markers that will be killed by `kill-buffer' anyway
and you're setting variables to nil which will be destroyed by
`kill-buffer' as well.

> Won't do.  Much editing can happen between inserting the skeleton and
> starting to browse, and then the positions will be all wrong.  In
> particular, I fully intend to keep _multiple_ preceding skeletons'
> positions available until explicitly discarded.

Well, then.  Maybe the "many markers" will not be a real problem (it
typically only shows up once you have hundreds of markers in the current
buffer, so maybe it won't affect your code in practice).  Otherwise, you
might want to put an upper-limit, maybe using a ring.

Stefan> How about a less in-your-face mode that lets you edit the text
Stefan> at the same time as you navigate between the different markers ?

> But then you'd need more complicated, harder to type (and to retype, in
> particular) keybindings.  This is a general dilemma which I have
> resolved for myself in favor of special modes like this one.  See also
> wmanip.el which I have posted some time ago, similar idea.

You could maybe have an alternate minor mode, providing the
same bindings but under a prefix key, so users can choose between
the two styles.


        Stefan

  reply	other threads:[~2003-10-19 23:36 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <87vfqnygi7.fsf@newsguy.com>
2003-10-17 20:42 ` Browse skeleton positions Stefan Monnier
2003-10-18 17:58   ` Ian Zimmerman
2003-10-19 23:36     ` Stefan Monnier [this message]
2003-10-30 23:57       ` Ian Zimmerman
2003-10-31 17:28         ` Stefan Monnier
2003-11-02 16:10           ` Ian Zimmerman
2003-11-11 17:49             ` Ian Zimmerman

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=jwvbrscddd6.fsf-monnier+gnu.emacs.help@vor.iro.umontreal.ca \
    --to=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 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.