unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: sbaugh@catern.com
Cc: emacs-devel@gnu.org
Subject: Re: Horizontal centering in the display engine
Date: Wed, 14 Apr 2021 18:52:43 +0300	[thread overview]
Message-ID: <83fszszwvo.fsf@gnu.org> (raw)
In-Reply-To: <87fszsvqfe.fsf@catern.com> (sbaugh@catern.com)

> From: sbaugh@catern.com
> Date: Wed, 14 Apr 2021 11:25:41 -0400
> 
> > You want the display engine to evaluate the function call for you?
> > That's not possible at the moment, the expression language accepted by
> > :align-to is somewhat limited.  It can automatically react to changes
> > in a variable's value, but in that case it must be the same variable
> > for all the lines, and that contradicts what you want to do.
> 
> Yes, that makes sense.  So I'm asking about how difficult it would be to
> add a new element to the :align-to expression language, one which
> specifies the width of the current line.

I don't quite see how to implement this, while keeping the existing
design of the display code.  The problem here is that the length of
the text on a line is known only when the entire line has been laid
out.  But the display code must work correctly even when only part of
the line is being processed: it is sometimes invoked in the middle of
a line, and doesn't get to the end of a line before it's expected to
produce the results.  E.g., the code that supports cursor motion needs
to be able to work like that, and there are some other important use
cases which need that.

In general, the display code examines the text one character at a
time, and makes its layout decisions on the spot.  Thus, features that
require some kind of overall view of the line aren't easy to
implement.



  reply	other threads:[~2021-04-14 15:52 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-13 18:25 Horizontal centering in the display engine sbaugh
2021-04-13 18:39 ` Eli Zaretskii
2021-04-13 19:28   ` sbaugh
2021-04-13 19:43     ` Eli Zaretskii
2021-04-13 20:49       ` sbaugh
2021-04-14  6:56         ` Eli Zaretskii
2021-04-14 13:28           ` sbaugh
2021-04-14 13:42             ` Yuan Fu
2021-04-14 14:04             ` Stefan Monnier
2021-04-14 15:22               ` sbaugh
2021-04-14 14:42             ` Eli Zaretskii
2021-04-14 15:25               ` sbaugh
2021-04-14 15:52                 ` Eli Zaretskii [this message]
2021-04-14  8:28         ` martin rudalics
  -- strict thread matches above, loose matches on Subject: below --
2021-04-15  5:13 Paul W. Rankin via Emacs development discussions.
2021-04-15  7:04 ` Eli Zaretskii
2021-04-15 11:39   ` Paul W. Rankin via Emacs development discussions.
2021-04-15 12:43     ` Stefan Monnier
2021-04-15 13:05       ` Paul W. Rankin via Emacs development discussions.

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=83fszszwvo.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=sbaugh@catern.com \
    /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).