From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Paul Eggert Newsgroups: gmane.emacs.devel Subject: Re: Variable-width font indentation Date: Mon, 5 Mar 2018 18:04:05 -0800 Organization: UCLA Computer Science Department Message-ID: <1ebcaf39-fc03-b178-d45b-e99bf3e94172@cs.ucla.edu> 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> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Trace: blaine.gmane.org 1520301747 3497 195.159.176.226 (6 Mar 2018 02:02:27 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Tue, 6 Mar 2018 02:02:27 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 To: =?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 03:02:22 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 1et1vj-0007vF-Qu for ged-emacs-devel@m.gmane.org; Tue, 06 Mar 2018 03:02:15 +0100 Original-Received: from localhost ([::1]:52522 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1et1xl-00068B-2K for ged-emacs-devel@m.gmane.org; Mon, 05 Mar 2018 21:04:21 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:34634) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1et1xe-00067z-B8 for emacs-devel@gnu.org; Mon, 05 Mar 2018 21:04:15 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1et1xZ-0001Dn-EA for emacs-devel@gnu.org; Mon, 05 Mar 2018 21:04:14 -0500 Original-Received: from zimbra.cs.ucla.edu ([131.179.128.68]:34714) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1et1xZ-0001DO-83 for emacs-devel@gnu.org; Mon, 05 Mar 2018 21:04:09 -0500 Original-Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id EB2F6161645; Mon, 5 Mar 2018 18:04:06 -0800 (PST) Original-Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id xxfj_oqivzWG; Mon, 5 Mar 2018 18:04:06 -0800 (PST) Original-Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 1DB38161668; Mon, 5 Mar 2018 18:04:06 -0800 (PST) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Original-Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id dT_bshtxf2WT; Mon, 5 Mar 2018 18:04:06 -0800 (PST) Original-Received: from Penguin.CS.UCLA.EDU (Penguin.CS.UCLA.EDU [131.179.64.200]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 03F21161645; Mon, 5 Mar 2018 18:04:06 -0800 (PST) In-Reply-To: <087fdedd-a7c5-f7f6-f3a5-b1700fb6e516@gmail.com> Content-Language: en-US X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 131.179.128.68 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:223316 Archived-At: On 03/05/2018 05:40 PM, Cl=C3=A9ment 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-pit= ch-indent, and then M-x variable-pitch-mode. > > I do agree that it doesn't look too bad, and presumably a C implementat= ion 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=20 533 had the wrong indent, presumably since the "user-error" on the=20 previous line was in a fatter-than usual font). The biggest trickier=20 minor glitch was that indenting of #if and #else subparts were=20 annoyingly different because the "#" violates the usual indentation=20 rule. Personally I've always thought that we should indent "#" like=20 anything else -- the only reason we don't is that it didn't work with=20 K&R C and so we got used to bad style -- but even if we stick with the=20 bad "#if" indenting it still looks pretty reasonable.