From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Daniel Colascione Newsgroups: gmane.emacs.devel Subject: Re: Variable-width font indentation Date: Mon, 5 Mar 2018 21:48:01 -0800 Message-ID: <58111853-4042-8838-55df-488a6458fed7@dancol.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> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Trace: blaine.gmane.org 1520315193 15819 195.159.176.226 (6 Mar 2018 05:46:33 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Tue, 6 Mar 2018 05:46:33 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 To: Paul Eggert , =?UTF-8?Q?Cl=c3=a9ment_Pit-Claudel?= , emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Mar 06 06:46:29 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 1et5QY-0002Ic-VW for ged-emacs-devel@m.gmane.org; Tue, 06 Mar 2018 06:46:19 +0100 Original-Received: from localhost ([::1]:53642 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1et5Sb-0000GI-B0 for ged-emacs-devel@m.gmane.org; Tue, 06 Mar 2018 00:48:25 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:43434) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1et5SS-0000Fx-0P for emacs-devel@gnu.org; Tue, 06 Mar 2018 00:48:17 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1et5SN-0004fm-4u for emacs-devel@gnu.org; Tue, 06 Mar 2018 00:48:16 -0500 Original-Received: from dancol.org ([2600:3c01::f03c:91ff:fedf:adf3]:49874) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1et5SM-0004fY-Rj for emacs-devel@gnu.org; Tue, 06 Mar 2018 00:48:11 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=dancol.org; s=x; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:MIME-Version:Date:Message-ID:From:References:To:Subject; bh=WYU5wEIaLFZt4eOFhSRfPzWI09ULTW1epGfhkiK6FZQ=; b=cBCiJDOVUCQ8PNDyLT8hSpUWlWJTOcqozEEO255e9VaS9Il5Zr/9FsywFxTylEBg6Ut9Mf9F1IEueQOQGSVAVA/vzD/dnuFbN8mw5Pqoo3hM+NvHAtt+IZbVwgFeRMXg4ubeALaxTK3uabsumXWc4h+i3QXzH6yFU/ViPzKHp7m4UdeUBnw53qIGCPfrJ4PajCcLKthZGEJyeA+qnKig95Wk6jrbgA1jBwx1EeJXEIBnNVDhnLzIjstWI2gHGzk5mzePzp/V2bCkaCJpPA1h6m/QRaHCLKo4N2t9xyU0XeHL07W8qtbuqPbrjI42UW11T7Mk/2muvnn6j8SPL31jDA==; Original-Received: from [172.92.145.124] (helo=[192.168.86.27]) by dancol.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1et5SK-0000Ev-Qw; Mon, 05 Mar 2018 21:48:08 -0800 In-Reply-To: <1ebcaf39-fc03-b178-d45b-e99bf3e94172@cs.ucla.edu> Content-Language: en-US X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2600:3c01::f03c:91ff:fedf:adf3 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:223321 Archived-At: On 03/05/2018 06:04 PM, Paul Eggert wrote: > On 03/05/2018 05:40 PM, Clément Pit-Claudel wrote: >> I've tested it on two files: src/termcap.c and lisp/dabbrev.el.  To >> try it out, open one of these files in emacs -Q, then run M-x >> ~/variable-pitch-indent, and then M-x variable-pitch-mode. >> >> I do agree that it doesn't look too bad, and presumably a C >> implementation of the algorithm above would be very fast, since it >> could build the "spine" above during redisplay. > > Thanks, that was fast! Yes, it should work fast. > > I saw one easily-fixable minor glitch (on my screen lisp/dabbr.el line > 533 had the wrong indent, presumably since the "user-error" on the > previous line was in a fatter-than usual font). Right. Given sufficiently divergent character widgets, it'd be possible to trick the eye into thinking two blocks of code at semantically different indentation levels are in fact at different levels, or vice versa. IMHO, that's dangerous. I'd rather whitelist modes where the indentation machinery can reliably provide robust alignment-versus-indentation information.