unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Stephen Leake <stephen_leake@stephe-leake.org>
Cc: emacs-devel@gnu.org
Subject: Re: Variable-width font alignment
Date: Sat, 10 Mar 2018 10:56:50 +0200	[thread overview]
Message-ID: <83bmfwux4d.fsf@gnu.org> (raw)
In-Reply-To: <86h8pofiwm.fsf_-_@stephe-leake.org> (message from Stephen Leake on Sat, 10 Mar 2018 02:12:57 -0600)

> From: Stephen Leake <stephen_leake@stephe-leake.org>
> Date: Sat, 10 Mar 2018 02:12:57 -0600
> 
>             Trace                    => Verbosity > 1,
>             Put_Parse_Table          => Verbosity > 0,
>             Ignore_Unused_Tokens     => Verbosity > 1,
>             Ignore_Unknown_Conflicts => Verbosity > 1);
> 
> It seems to me that implementing this in a variable width font requires some
> sort of align-region-local tab setting, which is a change to current align
> algorithms (which just insert spaces).

Whatever we do to adapt indentation to variable-pitch fonts, we _must_
still begin by inserting spaces so that the same text looks aligned
with fixed-pitch fonts.  Otherwise, we will be unable to let other
people view our code/documents in other editors which use fixed-pitch
fonts, or even in Emacs with fixed-pitch fonts.

The features that align text when variable-pitch fonts are in use must
work _on_top_ of the "basic" alignment that just uses spaces and tabs
as we do today.

> One step in align.el `align-areas' computes an `align-column'. In
> variable-pitch-mode, we could convert that into a tab setting by
> computing the pixel column of that character column in the line with the
> least whitespace/longest text ("Ignore_Unknown_Conflicts =>" above).
> 
> I could try doing this. What is the best approach to implementing an
> align-region-local tab setting?

Any local change in whitespace width would need to use 'display' text
properties, such as '(space :width (N))'.  The problem with that is
that you cannot easily record this when you save the file, so these
properties will have to be recomputed anew each time the file is
visited.  Which will take us down the path of font-lock and JIT lock,
something that I'd like to avoid.  We could also record that in a
separate file, but I'm not sure such meta-data approach will be
acceptable.

Another idea would be to modify align-areas such that it attempts to
find an align-column that will align given text without changing the
width of space and tab, by looking for some kind of LCD for the widths
of the text strings involved in this.  Not sure if this is workable,
though.



  reply	other threads:[~2018-03-10  8:56 UTC|newest]

Thread overview: 196+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <87inaiss6l.fsf@web.de>
     [not found] ` <6FCF6ACA-4F29-4B6B-BE9D-D7130C6E9495@gnu.org>
     [not found]   ` <87fu5moe4c.fsf@web.de>
     [not found]     ` <877eqyocro.fsf@web.de>
     [not found]       ` <83zi3uz4nb.fsf@gnu.org>
2018-03-01 23:22         ` Let's make the GC safe and iterative (Was: Re: bug#30626) Daniel Colascione
2018-03-01 23:29           ` Paul Eggert
2018-03-05  6:31             ` Ken Raeburn
2018-03-05 13:11               ` What improvements would be truly useful? Richard Stallman
2018-03-05 14:02                 ` John Yates
2018-03-05 17:21                   ` Paul Eggert
2018-03-05 16:33                 ` Stefan Monnier
2018-03-05 17:32                 ` Rostislav Svoboda
2018-03-05 18:04                   ` Eli Zaretskii
2018-03-05 19:18                     ` Daniel Colascione
2018-03-05 20:00                       ` Eli Zaretskii
2018-03-05 23:05                       ` Richard Stallman
2018-03-05 23:16                         ` dancol
2018-03-06 20:54                           ` Richard Stallman
2018-03-06 21:15                             ` Daniel Colascione
2018-03-08  4:45                             ` Stefan Monnier
2018-03-08  9:16                               ` Jefferson Carpenter
2018-03-08  9:17                               ` Yuri Khan
2018-03-08 13:40                               ` Eli Zaretskii
2018-03-08 20:07                               ` Richard Stallman
2018-03-08 20:29                               ` Marcin Borkowski
2018-03-09  4:43                                 ` Stefan Monnier
2018-03-09 22:20                                   ` Richard Stallman
2018-03-09 22:42                                     ` Karl Fogel
2018-03-11 17:02                                   ` Marcin Borkowski
2018-03-06 20:01                         ` Marcin Borkowski
2018-03-06 20:32                           ` Eli Zaretskii
2018-03-06 20:41                             ` Marcin Borkowski
2018-03-07 17:13                               ` Eli Zaretskii
2018-03-07 18:30                                 ` Marcin Borkowski
2018-03-07 19:36                                   ` Eli Zaretskii
2018-03-07 20:49                                     ` Marcin Borkowski
2018-03-07 23:00                                 ` Richard Stallman
2018-03-09 10:56                             ` Phillip Lord
2018-03-09 13:53                               ` Eli Zaretskii
2018-03-10 16:02                                 ` Phillip Lord
2018-03-10 18:56                                   ` Eli Zaretskii
2018-03-09 22:20                               ` Richard Stallman
2018-03-06 15:48                       ` Dmitry Gutov
2018-03-05 19:05                   ` Aaron Ecay
2018-03-05 20:55                     ` Ricardo Wurmus
2018-03-05 23:05                   ` Richard Stallman
2018-03-09 11:02                     ` Phillip Lord
2018-03-09 22:20                       ` Richard Stallman
2018-03-10 20:23                         ` Phillip Lord
2018-03-11 23:26                           ` Richard Stallman
2018-03-05 17:57                 ` Variable-width font indentation (was: What improvements would be truly useful?) Eli Zaretskii
2018-03-05 19:32                   ` dancol
2018-03-05 19:49                     ` Variable-width font indentation Paul Eggert
2018-03-06 15:15                       ` Dmitry Gutov
2018-03-06 15:34                         ` Clément Pit-Claudel
2018-03-06 17:09                         ` Eli Zaretskii
2018-03-05 19:58                     ` Variable-width font indentation (was: What improvements would be truly useful?) Eli Zaretskii
2018-03-05 20:28                       ` Variable-width font indentation Clément Pit-Claudel
2018-03-05 22:30                         ` Paul Eggert
2018-03-05 22:53                           ` Daniel Colascione
2018-03-06  1:06                           ` Clément Pit-Claudel
2018-03-06  1:30                             ` Paul Eggert
2018-03-06  1:40                               ` Clément Pit-Claudel
2018-03-06  2:04                                 ` Paul Eggert
2018-03-06  3:36                                   ` Clément Pit-Claudel
2018-03-06 16:47                                     ` Eli Zaretskii
2018-03-06 19:50                                       ` Clément Pit-Claudel
2018-03-06  5:48                                   ` Daniel Colascione
2018-03-06 13:18                                     ` Clément Pit-Claudel
2018-03-06 16:36                                 ` Eli Zaretskii
2018-03-06 20:11                                   ` Clément Pit-Claudel
2018-03-06 20:40                                     ` Eli Zaretskii
2018-03-07 13:15                                       ` Clément Pit-Claudel
2018-03-07 18:26                                         ` Eli Zaretskii
2018-03-09 16:07                                           ` Clément Pit-Claudel
2018-03-07 22:13                                 ` Clément Pit-Claudel
2018-03-08 13:21                                   ` Eli Zaretskii
2018-03-08 14:05                                     ` Clément Pit-Claudel
2018-03-06 16:16                               ` Eli Zaretskii
2018-03-06 16:38                                 ` Daniel Colascione
2018-03-06 17:49                                   ` Eli Zaretskii
2018-03-06 17:55                                     ` dancol
2018-03-06 20:18                                       ` Eli Zaretskii
2018-03-06 20:20                                         ` Daniel Colascione
2018-03-06 18:53                                   ` Sam Steingold
2018-03-06 22:43                                     ` Ricardo Wurmus
2018-03-07 17:12                                     ` Eli Zaretskii
2018-03-07 19:38                                       ` Daniel Colascione
2018-03-07 20:11                                         ` Eli Zaretskii
2018-03-07 23:01                                         ` Richard Stallman
2018-03-08 12:33                                           ` Robert Pluim
2018-03-08 13:50                                             ` Eli Zaretskii
2018-03-08 15:15                                               ` Robert Pluim
2018-03-06 20:52                               ` Richard Stallman
2018-03-06  4:05                         ` Herring, Davis
2018-03-06 13:33                           ` Clément Pit-Claudel
2018-03-06 14:18                             ` Herring, Davis
2018-03-06 15:02                               ` Clément Pit-Claudel
2018-03-06 16:11                         ` Eli Zaretskii
2018-03-06 19:59                           ` Clément Pit-Claudel
2018-03-06 20:31                             ` Eli Zaretskii
2018-03-06 21:15                               ` Paul Eggert
2018-03-06 21:47                               ` Clément Pit-Claudel
2018-03-07 17:22                                 ` Eli Zaretskii
2018-03-07 18:27                                   ` Clément Pit-Claudel
2018-03-07 20:09                                     ` Eli Zaretskii
2018-03-07 20:32                                       ` Clément Pit-Claudel
2018-03-08 15:39                                         ` Eli Zaretskii
2018-03-08 16:30                                           ` Clément Pit-Claudel
2018-03-08 19:07                                             ` Eli Zaretskii
2018-03-08 19:55                                               ` Clément Pit-Claudel
2018-03-09  8:30                                                 ` Eli Zaretskii
2018-03-09 17:52                                                   ` Paul Eggert
2018-03-09 18:35                                                     ` Eli Zaretskii
2018-03-09 20:16                                                       ` Paul Eggert
2018-03-09 21:19                                                         ` Eli Zaretskii
2018-03-09 21:55                                                           ` Paul Eggert
2018-03-10  0:09                                                           ` James Cloos
2018-03-10  8:20                                                             ` Eli Zaretskii
2018-03-10 19:48                                                               ` James Cloos
2018-03-10 20:00                                                                 ` Eli Zaretskii
2018-03-10 22:18                                                                   ` James Cloos
2018-03-11  3:43                                                                     ` Eli Zaretskii
2018-03-09 19:48                                                   ` Clément Pit-Claudel
2018-03-09 21:18                                                     ` Eli Zaretskii
2018-03-09 22:54                                                       ` Clément Pit-Claudel
2018-03-10  8:04                                                         ` Eli Zaretskii
2018-03-10  4:27                                                     ` Yuri Khan
2018-03-10  8:39                                                       ` Eli Zaretskii
2018-03-10 11:42                                                         ` Yuri Khan
2018-03-10 14:28                                                           ` Eli Zaretskii
2018-03-10 13:49                                                       ` Clément Pit-Claudel
2018-03-08  4:50                                   ` Stefan Monnier
2018-03-08 13:44                                     ` Eli Zaretskii
2018-03-08 22:03                                       ` Paul Eggert
2018-03-09  8:34                                         ` Eli Zaretskii
2018-03-09 16:05                                           ` Clément Pit-Claudel
2018-03-09 16:21                                             ` Eli Zaretskii
2018-03-10  8:12                                               ` Variable-width font alignment Stephen Leake
2018-03-10  8:56                                                 ` Eli Zaretskii [this message]
2018-03-10 17:30                                                   ` Stephen Leake
2018-03-10 19:02                                                     ` Eli Zaretskii
2018-03-10  7:42                                           ` Variable-width font indentation Stephen Leake
2018-03-06 16:35                         ` Stefan Monnier
2018-03-06 19:59                           ` Clément Pit-Claudel
2018-03-05 23:05                   ` Variable-width font indentation (was: What improvements would be truly useful?) Richard Stallman
2018-03-06 16:04                     ` Variable-width font indentation Stefan Monnier
2018-03-06 17:43                       ` Eli Zaretskii
2018-03-06 18:14                         ` Stefan Monnier
2018-03-06 20:56                         ` Richard Stallman
2018-03-06 20:55                       ` Richard Stallman
2018-03-07  7:05                         ` Yuri Khan
2018-03-06 16:14                     ` Variable-width font indentation (was: What improvements would be truly useful?) Eli Zaretskii
2018-03-06 20:55                       ` Richard Stallman
2018-03-05 18:51                 ` What improvements would be truly useful? Daniele Nicolodi
2018-03-05 19:22                   ` Eli Zaretskii
2018-03-06  6:32                     ` Daniele Nicolodi
2018-03-06 16:52                       ` Eli Zaretskii
2018-03-06 17:01                         ` Daniel Colascione
2018-03-07  5:45                         ` Daniele Nicolodi
2018-03-07 17:45                           ` Eli Zaretskii
2018-03-07 17:49                             ` Daniele Nicolodi
2018-03-07 18:06                               ` Eli Zaretskii
2018-03-07 21:45                                 ` Philipp Stephani
2018-03-08 13:20                                   ` Eli Zaretskii
2018-03-08 16:24                                     ` Alan Third
2018-03-08 18:02                                       ` Daniel Colascione
2018-03-06  7:48                     ` Yuri Khan
2018-03-06 17:08                       ` Eli Zaretskii
2018-03-05 21:15                   ` Juri Linkov
2018-03-05 23:46                     ` Óscar Fuentes
2018-03-06  3:36                       ` Eli Zaretskii
2018-04-02 20:40                       ` Continuous image scrolling (was: What improvements would be truly useful?) Juri Linkov
2018-04-03  1:59                         ` Continuous image scrolling Óscar Fuentes
2018-04-03  7:01                           ` Eli Zaretskii
2018-04-03 19:59                           ` Juri Linkov
2018-04-03 20:20                             ` Drew Adams
2018-04-04 19:54                               ` Juri Linkov
2018-04-03 21:08                             ` Stefan Monnier
2018-04-03 21:57                             ` Clément Pit-Claudel
2018-04-04  6:27                               ` Eli Zaretskii
2018-04-04 19:50                               ` Juri Linkov
2018-04-05  6:04                                 ` Eli Zaretskii
2018-04-04 23:31                               ` Tak Kunihiro
2018-04-05  2:45                                 ` Clément Pit-Claudel
2018-04-05  3:54                                   ` Tak Kunihiro
2018-04-05 19:56                                     ` Clément Pit-Claudel
2018-04-05 22:59                                       ` Tak Kunihiro
2018-04-06  4:36                                         ` Clément Pit-Claudel
2018-04-06  9:35                                           ` Tak Kunihiro
2018-04-04 19:19                           ` John Wiegley
2018-03-05 22:09                   ` What improvements would be truly useful? John Wiegley
2018-03-05 23:04                     ` daniel sutton
2018-03-06 20:51                     ` Richard Stallman
2018-03-08 11:44                 ` Toon Claes
2018-03-08 20:08                   ` Richard Stallman
2018-03-12 21:53                   ` Dmitry Gutov
2018-03-01 23:38           ` Let's make the GC safe and iterative Stefan Monnier
2018-03-02  0:05             ` Daniel Colascione
2018-03-02 13:47               ` 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

  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=83bmfwux4d.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=stephen_leake@stephe-leake.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).