From: Drew Adams <drew.adams@oracle.com>
To: emacs-devel@gnu.org
Subject: RE: Overlay insertion types, markers, etc.
Date: Wed, 13 Nov 2019 07:36:14 -0800 (PST) [thread overview]
Message-ID: <4e3fe50d-5a72-41bf-8434-579406f4464c@default> (raw)
In-Reply-To: <20c74b83-6272-44e9-b4ac-829fd4cd0143@default>
ping.
I really would like to know about this,
if someone has an idea. Thx.
___
> From (elisp) `Overlays':
>
> "An overlay uses markers to record its beginning and end."
>
> 1. You can create an overlay with `make-overlay',
> passing it markers.
>
> But the insertion types of those markers are not used
> for that overlay. Instead, you can specify those types
> for the overlay as optional `make-overlay' args. By
> default, text you insert at the beginning, but not at
> the end, of the overlay is included in the (extended)
> overlay.
>
> First question:
>
> Why, if you pass markers, isn't the default to use
> the insertion types of those markers?
>
>
> 2. `make-overlay' seems to be the only way to specify
> the insertion types for an overlay. Is that right,
> or did I miss something? `move-overlay' doesn't let
> you specify them, nor does `copy-overlay'. (And I
> don't see this being handled by `overlay-put'' - they
> are not overlay properties.)
>
> There are hook properties `insert-in-front-hooks'
> and `insert-behind-hooks'. But that's not the same.
>
> Second question:
>
> Why isn't there (or is there?) a simple way to
> change the "marker insertion types" of an existing
> overlay?
>
> Suppose you want to copy an existing overlay and
> then change some things in the copy. You can't
> change the insertion types for it, right?
>
> I guess you need to use `make-overlay', specifying
> insertion types, and then explicitly copy everything
> else from the first overlay. Is that right?
>
>
> 3. Similarly, the default BUFFER for `make-overlay'
> is the current buffer, even if you pass markers.
>
> Third question (similar to the first):
>
> Why, if you pass markers to `make-overlay', and
> you don't pass arg BUFFER, isn't the default to
> use the buffer of those markers?
>
>
> 4. (Repeating) "An overlay uses markers to record
> its beginning and end."
>
> It seems that an overlay "uses markers" but those
> aren't the markers you passed to `make-overlay'.
> Is that right?
>
> Fourth question (also similar to the first):
>
> Can you retrieve the markers that are "used by"
> an overlay, i.e., as markers? I don't see that
> you can. (`overlay-start' and `overlay-end',
> for example, don't give you markers.) You can
> of course create suitable (but separate) markers.
>
> (elisp) `Managing Overlays' says, about
> `move-overlay':
>
> "This is the only valid way to change the endpoints
> of an overlay. Do not try modifying the markers in
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> the overlay by hand, as that fails to update other
> vital data structures and can cause some overlays
> to be lost."
>
> That makes me wonder. I don't even see how you
> could try to "modify the markers of the overlay"
> (with Lisp). How so? How to get those markers?
>
>
> I feel like I'm probably missing something here,
> but I don't notice it in the manual, doc strings,
> or Lisp code (only `remove-overlay' and
> `copy-overlay' are coded in Lisp, it seems).
>
> Do I understand the situation correctly? If so,
> what's the rationale for it? I'm guessing there
> are good reasons?
next prev parent reply other threads:[~2019-11-13 15:36 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-12 0:09 Overlay insertion types, markers, etc Drew Adams
2019-11-13 15:36 ` Drew Adams [this message]
2019-11-15 10:33 ` Eli Zaretskii
[not found] <<20c74b83-6272-44e9-b4ac-829fd4cd0143@default>
[not found] ` <<83lfsh2zvf.fsf@gnu.org>
2019-11-15 16:54 ` Drew Adams
2019-11-15 17:12 ` Eli Zaretskii
[not found] <<<20c74b83-6272-44e9-b4ac-829fd4cd0143@default>
[not found] ` <<<83lfsh2zvf.fsf@gnu.org>
[not found] ` <<a2de3d64-2fb6-41e4-aabe-0be2ec404478@default>
[not found] ` <<83v9rl12t1.fsf@gnu.org>
2019-11-15 17:32 ` Drew Adams
2019-11-17 2:15 ` Richard Stallman
2019-11-17 2:26 ` Drew Adams
2019-11-17 15:55 ` Stefan Monnier
2019-11-17 17:35 ` Drew Adams
2019-11-20 16:17 ` Richard Stallman
2019-11-20 17:33 ` Eli Zaretskii
2019-11-20 17:38 ` Drew Adams
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=4e3fe50d-5a72-41bf-8434-579406f4464c@default \
--to=drew.adams@oracle.com \
--cc=emacs-devel@gnu.org \
/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).