From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Lars Ingebrigtsen Newsgroups: gmane.emacs.devel Subject: Re: Variable pitch text filling Date: Sat, 27 Nov 2021 09:04:53 +0100 Message-ID: <87h7byrplm.fsf@gnus.org> References: <87ilwft1ph.fsf@gnus.org> <837dcv2c2c.fsf@gnu.org> <875ysft0l3.fsf@gnus.org> <835yse3n01.fsf@gnu.org> <87lf1ars0f.fsf@gnus.org> <83czmm11t0.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="35967"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) Cc: emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Nov 27 09:06:04 2021 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mqsii-0009Af-MS for ged-emacs-devel@m.gmane-mx.org; Sat, 27 Nov 2021 09:06:04 +0100 Original-Received: from localhost ([::1]:34534 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mqsih-0002pw-Nf for ged-emacs-devel@m.gmane-mx.org; Sat, 27 Nov 2021 03:06:03 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:55170) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mqshj-00023K-7U for emacs-devel@gnu.org; Sat, 27 Nov 2021 03:05:03 -0500 Original-Received: from [2a01:4f9:2b:f0f::2] (port=49516 helo=quimby.gnus.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mqshh-00065Z-4V; Sat, 27 Nov 2021 03:05:02 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=0aHyMWFM94gRxWMX4WRzW5yBaoneurDCNHMB/eMZGic=; b=bQEwnvE+ITrWJJP3zronB+I/r0 rqg1ojfSDoA+6EttvaH4kEsI0a1g1SIhkmFZxZ6WweKYnPMdTsAuIeAzoBDNhLPz/XWwg8UHIf045 WJ9ZQBRMkukSmLsuMGBoY6KMwuTnRVaMXDzooGQPK3cSry1Abua48CyqMKQKFA/cF1tM=; Original-Received: from [84.212.220.105] (helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mqshb-0003kd-Ts; Sat, 27 Nov 2021 09:04:58 +0100 Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAABGdBTUEAALGPC/xhBQAAACBj SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAGFBMVEV9fmOGhYlNTUx2 dhCCgRWAfhOvx8b///8EnAsbAAAAAWJLR0QHFmGI6wAAAAd0SU1FB+ULGwc0Jhb9oZEAAAGsSURB VDjLdZJbkuMgDEUFU9XfwArgUvnvQbCBuLKBxux/KyORdAd73DeOLesg9MBkvDfOeSJ5+pfUICIn f0PfcvNuPM0lbl4Hkf9FJ2CugfPJmUvgUkhnEGRpoPg/sEnhNSDnL4GBDMBegATyFJJbgCN4GyPB 2JDgfZLCBQQbIqyFNYgKjOwJI8BCZRGD3G2SLAEhkXn6nwyEiBiD/Cj++KMToMtSEJPE8Q0wwXwo sO+9NMcE0QqQamf4M0pDnKYjyEHOvFN/vdcKgKo5DBcx+RMxi5G5yHiYPmFj+xLQFELBV/xwmQpY lDtzUYPnq6SixvvG3Iaodx5D/bIK1LDd1N9H51XEKFm8U4t/UJVCtvryt5+wRnwH7vmhCVYJkALv eJTGJ6A9F9Ryk4i2gj9zFBXo7RBEPSNDr8oNC5IGc9aJ4MYV2wr2nFGkhMZ1rYC4yqTKXtB6le0W 0HYBTWZZ8glIx5v0v8lWBzAnqifSdpzB4L4h93KsSme+j54fteQDGC/1VnK/AkNa3d7jojEW0uex vpIvQOu7Alpee4N3Ejl5Hoc+nh9P4/Vz+AcsorMXoWMPvwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAy MS0xMS0yN1QwNzo1MjozOCswMDowMDVF4j0AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjEtMTEtMjdU MDc6NTI6MzgrMDA6MDBEGFqBAAAAAElFTkSuQmCC X-Now-Playing: Joni Mitchell's _The Hissing Of Summer Lawns_: "The Boho Dance" In-Reply-To: <83czmm11t0.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 27 Nov 2021 09:43:23 +0200") X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a01:4f9:2b:f0f::2 (failed) Received-SPF: pass client-ip=2a01:4f9:2b:f0f::2; envelope-from=larsi@gnus.org; helo=quimby.gnus.org X-Spam_score_int: -35 X-Spam_score: -3.6 X-Spam_bar: --- X-Spam_report: (-3.6 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 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-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:280304 Archived-At: Eli Zaretskii writes: >> That'd probably be more efficient, but some cursory testing seems to >> indicate that putting a min-width on every char in a pretty big buffer >> works fine. > > I don't like such an implementation. It's a kludge at best, IMO. > Please let's not go that way. Yes, I was pondering other solutions for several different, but somewhat related, use cases. 1) We want to display the "-" wider in the variable-pitch mode line 2) In the justification case, we want to add some blank pixels more free-form 3) A much-requested feature is to be able to "snap" characters to an integer multiple of the standard font (in a fixed-width buffer). (Mostly relevant for people that mix fonts, like CJK and roman.) All three of these are essentially the same: Add some pixels to the glyphs in a region. So we could do just that. I.e., not a complex display spec, but a simpler char-based one, for instance `char-spacing', that could have values: 1) 1.0, to be at least 1 normal character wide 2) 3, to add three blank pixels to the end 3) `grid', to add enough blank pixels to have a width that's an integer multiple of the normal character width So standard-mode-line-format would have (list :propertize (list "" 'mode-line-mule-info 'mode-line-client 'mode-line-modified 'mode-line-remote) 'display '(min-width (5.0)) 'char-spacing 1.0) while inter-character justification would use 'char-spacing 1 to add an extra pixel after all the chars on the line, for instance. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no