From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: dancol@dancol.org Newsgroups: gmane.emacs.devel Subject: Re: Variable-width font indentation (was: What improvements would be truly useful?) Date: Mon, 5 Mar 2018 11:32:30 -0800 Message-ID: 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> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Trace: blaine.gmane.org 1520278252 29362 195.159.176.226 (5 Mar 2018 19:30:52 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 5 Mar 2018 19:30:52 +0000 (UTC) User-Agent: SquirrelMail/1.4.23 [SVN] Cc: emacs-devel@gnu.org, raeburn@raeburn.org, dancol@dancol.org, rms@gnu.org, eggert@cs.ucla.edu To: "Eli Zaretskii" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Mar 05 20:30:48 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 1esvoj-00061A-NI for ged-emacs-devel@m.gmane.org; Mon, 05 Mar 2018 20:30:37 +0100 Original-Received: from localhost ([::1]:51195 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1esvqm-0004QK-Bk for ged-emacs-devel@m.gmane.org; Mon, 05 Mar 2018 14:32:44 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:53497) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1esvqe-0004Pr-4p for emacs-devel@gnu.org; Mon, 05 Mar 2018 14:32:37 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1esvqd-0006E3-4O for emacs-devel@gnu.org; Mon, 05 Mar 2018 14:32:36 -0500 Original-Received: from dancol.org ([2600:3c01::f03c:91ff:fedf:adf3]:40786) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1esvqa-00069K-0O; Mon, 05 Mar 2018 14:32:32 -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:MIME-Version:Cc:To:From:Subject:Date:References:In-Reply-To:Message-ID; bh=IQsA/2z3l5lqaBR5Ry2Byf+IM0I6/yHd2oksBP3qwqk=; b=U4enkacmqdWjAimB1G/Jv3EmQsdiPaTxu+Wl1ZBXv35cHSWHQaV+gdQN1ZCVEB35kAa+IKdmJInfa7QwTuySIdwD3cwx5JLuYAXzUFtjePxTJDr7BGj5/r1j6AnUDBx69HIExr1UG0IBwJyukC94ovBwebKg0RAIaWFoY9K3sAAV3LrNcW6DArGXWCxsJW1HL7b7dSuTlsyb5cen/a9p/Jr9lWG2qQNrDNWPvhUgatbAdd7dvGr7tAB7QHldKPrTbKDP3gdxETkxAXMhr0hXAN3wo/Zv9EbfAr5q19Bi5nqczWtMlksiAys4UHXqqX0xH6VKZqzLV2tkarQxQh6f6Q==; Original-Received: from localhost ([127.0.0.1] helo=dancol.org) by dancol.org with esmtp (Exim 4.84_2) (envelope-from ) id 1esvqY-0005Kq-RI; Mon, 05 Mar 2018 11:32:30 -0800 Original-Received: from 127.0.0.1 (SquirrelMail authenticated user dancol) by dancol.org with HTTP; Mon, 5 Mar 2018 11:32:30 -0800 In-Reply-To: <83vaeas8uz.fsf@gnu.org> X-Priority: 3 (Normal) Importance: Normal 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:223294 Archived-At: >> From: Richard Stallman >> Date: Mon, 05 Mar 2018 08:11:38 -0500 >> Cc: eggert@cs.ucla.edu, dancol@dancol.org, emacs-devel@gnu.org >> >> Changing Emacs to handle indentation and alignment with >> variable-width fonts would be an important and useful change. >> Certain kinds of use would make sense, which currently don't. > > This has come up several times, and I think I asked at least once what > does it need to entail. It would be helpful to have the answer to > that, which will have to be the result of looking at the relevant Lisp > code and figuring out which primitives/subroutines will need to be > taught fractional column values. > > Emacs already knows how to align text at pixel resolution (which is > easy to express in fractions of the width of the default face's font), > and in fact already does so when it displays TAB characters on GUI > frames. We have the 'space' display property to do the same with > characters other than a TAB. > > So what else is needed? Can someone who is familiar with indent.el > please tell? Well, say you want to align the following code: 1: void foo(int a, 2: int b) 3: { 4: ... How is any generic indentation system supposed to know that the "i" on line 2 is supposed to line up with the "i" on line 1? You'd need to communicate all indentation intent to the generic system in the form of positions relative to some anchor. (Presumably, it could cache pixel offsets per-line.) While that's doable, it's a ton of work, and I don't think it's worthwhile.