unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: "Clément Pit-Claudel" <cpitclaudel@gmail.com>
Cc: eggert@cs.ucla.edu, emacs-devel@gnu.org
Subject: Re: Variable-width font indentation
Date: Tue, 06 Mar 2018 18:11:45 +0200	[thread overview]
Message-ID: <838tb5rxoe.fsf@gnu.org> (raw)
In-Reply-To: <ffd4e6b9-81dd-2492-5f7a-24b4762b29f8@gmail.com> (message from Clément Pit-Claudel on Mon, 5 Mar 2018 15:28:05 -0500)

> From: Clément Pit-Claudel <cpitclaudel@gmail.com>
> Date: Mon, 5 Mar 2018 15:28:05 -0500
> Cc: Paul Eggert <eggert@cs.ucla.edu>
> 
> On 2018-03-05 14:58, Eli Zaretskii wrote:
> > How does it know that today, when we only support well the
> > fixed-pitch fonts?  Or are you talking about a different problem?
> 
> A different problem, IIUC.  The problem is the following:
> 
> Assume you wrote the following C code, then changed to variable-pitch:
> 
> void pr () {
>   printf ("hello, world\n");
> }
> 
> int main (int argc, 
>           char** argv) {
>   pr ();
>   return 0;
> }
> 
> Depending on which font you use (and the width of a space in that font), the `char** argv' part will move right or left, instead of remaining aligned.  The usual solution is to proceed as Paul suggested:
> 
> > It assumes the input is fixed-width, and that leading white space is
> > intended to indent with respect to previous lines.
> 
> IOW, you scale the spaces preceding `char** argv' to make the `c' of `char' line up with the `i' of int.

I think I'm still missing something, because I don't understand why we
need to invent/use a strategy different from what we do now in code
indentation.  All we need to do to extend the existing machinery to
variable-pitch fonts is (1) to replace current-column with a function
that returns floats instead of integers (or teach current-column do
that given some optional argument), and (b) place a 'space' display
property on the leading whitespace with an :align-to attribute
computed to align the first non-white character at the "column number"
returned as result of (a) above.  All the rest is already in place,
right?

Also note that Richard was specifically talking about text modes, not
about programming modes.  Indentation in text modes has a slightly
different goal.



  parent reply	other threads:[~2018-03-06 16:11 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 [this message]
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
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=838tb5rxoe.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=cpitclaudel@gmail.com \
    --cc=eggert@cs.ucla.edu \
    --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).