From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: Variable-width font indentation Date: Tue, 06 Mar 2018 18:47:43 +0200 Message-ID: <83371drw0g.fsf@gnu.org> References: <87inaiss6l.fsf@web.de> <6FCF6ACA-4F29-4B6B-BE9D-D7130C6E9495@gnu.org> <87fu5moe4c.fsf@web.de> <877eqyocro.fsf@web.de> <83zi3uz4nb.fsf@gnu.org> <0b1dd3fa-e0b0-ed20-a256-dd92d1c1826f@dancol.org> <8bc3c4c7-dfc7-987a-95e7-bd309e2326c6@cs.ucla.edu> <03118DC0-39DA-4AB5-980E-A33809B9A5EE@raeburn.org> <83vaeas8uz.fsf@gnu.org> <83lgf6s3aa.fsf@gnu.org> <8b94336f-1bb4-84ab-263b-af5ba40bfca4@cs.ucla.edu> <673d6612-f0d4-5d34-c6ee-a276dbba3068@cs.ucla.edu> <087fdedd-a7c5-f7f6-f3a5-b1700fb6e516@gmail.com> <1ebcaf39-fc03-b178-d45b-e99bf3e94172@cs.ucla.edu> <428aac15-f216-61ea-3d28-7211e7fc8cfd@gmail.com> Reply-To: Eli Zaretskii NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: blaine.gmane.org 1520355020 5794 195.159.176.226 (6 Mar 2018 16:50:20 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Tue, 6 Mar 2018 16:50:20 +0000 (UTC) Cc: eggert@cs.ucla.edu, emacs-devel@gnu.org To: =?utf-8?Q?Cl=C3=A9ment?= Pit-Claudel Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Mar 06 17:50:16 2018 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1etFmi-0006xv-9g for ged-emacs-devel@m.gmane.org; Tue, 06 Mar 2018 17:49:52 +0100 Original-Received: from localhost ([::1]:56887 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1etFok-0000Ru-Vl for ged-emacs-devel@m.gmane.org; Tue, 06 Mar 2018 11:51:59 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:41758) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1etFkw-0007D7-KL for emacs-devel@gnu.org; Tue, 06 Mar 2018 11:48:08 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1etFko-0000Kj-9v for emacs-devel@gnu.org; Tue, 06 Mar 2018 11:48:02 -0500 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:51128) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1etFko-0000KO-6K; Tue, 06 Mar 2018 11:47:54 -0500 Original-Received: from [176.228.60.248] (port=1916 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1etFkn-0006jE-Kl; Tue, 06 Mar 2018 11:47:54 -0500 In-reply-to: <428aac15-f216-61ea-3d28-7211e7fc8cfd@gmail.com> (message from =?utf-8?Q?Cl=C3=A9ment?= Pit-Claudel on Mon, 5 Mar 2018 22:36:55 -0500) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:223343 Archived-At: > From: Clément Pit-Claudel > Date: Mon, 5 Mar 2018 22:36:55 -0500 > > * I'm not aware of a way to get a specified space whose width equals that of a particular string, without measuring the string beforehand. Is there a way? What do you mean by "measuring the string"? Calculating its width? In your implementation you used 'length', which is definitely not TRT, especially with variable-width fonts. I think you can find something to help you out in shr.el. One other possibility is to use font-get-glyphs, but I'm not sure it will help in this case. And I still think that for programming modes, what we need is to substitute tab-width and column by suitably computed number of pixels, perhaps derived from the width of some character. Other than that, the indentation code should "just work", as long as it uses :align-to to get to a given pixel coordinate.