unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "Clément Pit-Claudel" <cpitclaudel@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: emacs-devel@gnu.org
Subject: Re: Unicode combining characters
Date: Tue, 25 May 2021 15:30:21 -0400	[thread overview]
Message-ID: <3e40bcd1-3d04-23c0-37a7-6a283ca4e3e4@gmail.com> (raw)
In-Reply-To: <83cztebqtl.fsf@gnu.org>

On 5/25/21 2:39 PM, Eli Zaretskii wrote:
>> From: Clément Pit-Claudel <cpitclaudel@gmail.com>
>> Date: Tue, 25 May 2021 14:15:33 -0400
>>
>> On 5/25/21 1:24 PM, Eli Zaretskii wrote:
>>>> From: Anand Tamariya <atamariya@gmail.com>
>>>> Date: Tue, 25 May 2021 21:26:44 +0530
>>>>
>>>> Hindi Devanagari script has lot of unicode combining characters which results in misalignment in a
>>>> rectangular overlay for constant number of characters (screenshot ) 
>>>> What would be a recommended way to tackle this in Emacs?
>>>
>>> Use align-to 'space' display spec and/or the window-text-pixel-size
>>> function, which will account for the actual size of the text on
>>> display. 
>>
>> Will this work? The misaligned specs are already part of a replacing dipsplay spec, so the additional align-to would be ignored, no?
> 
> I don't understand, but maybe you know about the particular use case
> more than I do.  I just mentioned two devices that can be accurate to
> 1 pixel wrt to the X coordinate.
> 
>> (IIRC, there is no way to say "replace this text by this string followed by this specified space; it's one or the other, right?)
> 
> Again, I don't think I follow.  If you have "this text", you can
> calculate its width on display, and then know how many pixels of white
> space you will need after "this string" replaces that text.  So,
> unless I'm missing something, specifying the space width is redundant,
> and actually makes a solvable problem unsolvable.

Based on the screenshot this is an issue with Company.  Company displays its "pop-ups" by putting a replacing 'display property on the text following the point (and on the next few lines).  So if the buffer contains

ABC XYZ DEF GHI
JKL MNO PQR STU

and the point is after XYZ, then company puts a replacing display spec from " DEF" to "STU".
To display completions "XYZ1233" and "XYZ456", the replacing display spec contains "123| GHI\nJKL XYZ456| STU", so the final display is

ABC XYZ123| GHI
JKL XYZ456| STU

The OP's issue is that "123" and "456" don't have the same length.  As far as I know, there is no way to add extra space after 123 or 456 so that they reach the same X coordinate, given that they are already part of a display spec.

Clément.



  reply	other threads:[~2021-05-25 19:30 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-25 15:56 Unicode combining characters Anand Tamariya
2021-05-25 17:22 ` Stefan Monnier
2021-05-25 17:24 ` Eli Zaretskii
2021-05-25 18:15   ` Clément Pit-Claudel
2021-05-25 18:39     ` Eli Zaretskii
2021-05-25 19:30       ` Clément Pit-Claudel [this message]
2021-05-25 19:44         ` Eli Zaretskii
2021-05-26  9:51   ` Anand Tamariya
2021-05-26 10:04     ` Joost Kremers
2021-05-26 12:54     ` Eli Zaretskii
2021-05-26 17:14       ` Eli Zaretskii
2021-05-27  7:00         ` Anand Tamariya
2021-05-27  9:40           ` Eli Zaretskii
2021-05-27 10:34             ` Basil L. Contovounesios
2021-05-27 12:30               ` Eli Zaretskii
2021-05-27 13:27             ` Anand Tamariya
2021-05-27 13:44               ` Eli Zaretskii

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=3e40bcd1-3d04-23c0-37a7-6a283ca4e3e4@gmail.com \
    --to=cpitclaudel@gmail.com \
    --cc=eliz@gnu.org \
    --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).