all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "otadmor ." <otadmor@gmail.com>
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: help-gnu-emacs@gnu.org
Subject: Re: Overlay after-string with cursor (Stefan Monnier)
Date: Mon, 12 Aug 2019 01:59:51 +0300	[thread overview]
Message-ID: <CAJd1wGLUe1L-V9_qFLLnchQ8C2ipwEhpM72RDf639=rU_nzBGg@mail.gmail.com> (raw)
In-Reply-To: <jwvpnlb8he7.fsf-monnier+Inbox@gnu.org>

On Mon, Aug 12, 2019 at 1:32 AM Stefan Monnier <monnier@iro.umontreal.ca> wrote:
>
> >> You can control where the cursor is displayed in the after-string, with
> >> the `cursor` property.  Doing in it such a way that it gives the
> >> illusion that you can put the cursor "wherever you want" can be a bit
> >> fiddly
> > As I understand, setting the cursor property allows me to put the
> > cursor only in one position inside my overlay.
>
> AFAIK the cursor is never at two places at the same time, so that's not
> a problem.
I might not understand the purpose of the 'cursor property. As I
understood it allows to put the cursor in a fixed position inside the
overlay.
I want the user to use the arrow keys to move it inside the overlay.
>
> > I want the user to be able to move the cursor inside the overlay when
> > using the after-string property.
>
> You can, by changing the `cursor` property whenever you want the cursor
> to change position.
Do I have to re-bind the key map of the overlay so it would accept the
arrow keys and change the 'cursor property accordingly?
It would be hard because this would not support, for example, page up
from outside the overlay into the overlay.
Should I do these calculations manually?
>
> >> so I think it's worth clarifying why exactly you want something
> >> like that, so as to be better decide how to attack the problem.
> > Im trying to implement something visually similar to what vimdiff has,
> > as in this URL:
> > https://www.thegeekstuff.com/2010/06/vimdiff-file-diff-tool/
> > In there, you can see the lines filled with "....................."
> > where there is no content in the line of the first file and there is
> > content in the matching line in the second file.
> > Hope this makes it clearer and that I managed to reply this thread correctly.
>
> That doesn't explain why you care about the cursor positioning in those
> spaces that don't correspond to any real line, so I'm afraid it doesn't
> make it clearer :-(
>
Generally it is easier for me (and other people I know) to understand
diffs when the lines in the files are "aligned" to each other. As the
diff become bigger there are more added spaces (empty lines), and the
more spaces it is harder to navigate inside the files diff. Using the
arrow keys makes the navigation easier. currently I have synchronized
both buffers (side A and side B, C and ancestor) to received the arrow
keys presses on the "ediff help buffer" (I have created a new
"ediff-operate-on-windows" to support this). The problem is that when
using the after-string (or display) property the cursor is stuck in
one location in the overlay and doesnt move inside it. The
synchronization is not working because of it.
I though of a different solution than using the after string. I can
really add the new empty lines into the buffer where there are diffs,
but this creates other issues when this buffer is saved or shown on a
different window. If only I was able to show a text in a buffer only
in one window this could also solve the problem (and actually treading
this as a text, unlike after-string). Adding the new lines the the
buffer solves the navigation problems.
>
>         Stefan
>


-- 
Gretz,
Ofir Tadmor

ICQ: 77685691
Mail: otadmor@gmail.com



  reply	other threads:[~2019-08-11 22:59 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-11 22:24 Overlay after-string with cursor (Stefan Monnier) otadmor .
2019-08-11 22:32 ` Stefan Monnier
2019-08-11 22:59   ` otadmor . [this message]
2019-08-12  9:25     ` Stefan Monnier
2019-08-12 10:03       ` otadmor .
2019-08-13  7:51         ` Stefan Monnier
2019-08-13 22:40           ` Stefan Monnier

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='CAJd1wGLUe1L-V9_qFLLnchQ8C2ipwEhpM72RDf639=rU_nzBGg@mail.gmail.com' \
    --to=otadmor@gmail.com \
    --cc=help-gnu-emacs@gnu.org \
    --cc=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.