From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Ingo Lohmar Newsgroups: gmane.emacs.devel Subject: :extend t inheritance Date: Wed, 23 Oct 2019 22:34:05 +0200 Message-ID: <87zhhrmcaq.fsf@kenko.localhost.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="165417"; mail-complaints-to="usenet@blaine.gmane.org" To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Oct 23 22:38:08 2019 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1iNNOP-000gnM-PF for ged-emacs-devel@m.gmane.org; Wed, 23 Oct 2019 22:38:06 +0200 Original-Received: from localhost ([::1]:47301 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iNNOO-0003v0-3Y for ged-emacs-devel@m.gmane.org; Wed, 23 Oct 2019 16:38:04 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:39183) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iNNN6-0003hP-Ie for emacs-devel@gnu.org; Wed, 23 Oct 2019 16:36:46 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iNNN5-00008w-4X for emacs-devel@gnu.org; Wed, 23 Oct 2019 16:36:44 -0400 Original-Received: from mout01.posteo.de ([185.67.36.65]:57940) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iNNN4-00008R-LE for emacs-devel@gnu.org; Wed, 23 Oct 2019 16:36:43 -0400 Original-Received: from submission (posteo.de [89.146.220.130]) by mout01.posteo.de (Postfix) with ESMTPS id 5544516017A for ; Wed, 23 Oct 2019 22:35:38 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1571862939; bh=VUH7eMUUqkyMaB3GznmnCSWD3lS4NwM515TdEFZofdY=; h=From:To:Subject:Date:From; b=leFsHODE7NWcbb5aZMflWXWLH9jgIgWxqyZ+hVd+R+o+D7EvKxXD8Wht9hX5dRor2 f7Wv0CsCffDohm1kcDmj+5suWI9dbCALTcR8f7QVReDSTnoHKNVZYcmCl8BV4gJh6/ blLNqBziQ4Cyf8Oubwn8J7jdzveLIAVF2XecGjO5oTNoccvVw7mbu+1d3Wavd5xYYC 2qlRGTt212+PusDvwNRqZtd1kTjAgV4kuxx1W86LjC7pU3Xm3TncjOwMe2MEoUTddn vxiv0SzfudJMKkBZ9DPEiL0jp/pucT0RA9aXppAIrShaPhdOova09m9k8aI2rvZgOg h/XLXCQexVYXw== Original-Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 46z2Cd4mkXz6tmH for ; Wed, 23 Oct 2019 22:34:05 +0200 (CEST) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 185.67.36.65 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 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:241369 Archived-At: I am messing around with the face :extend attribute and I am wondering about sth. The elisp manual says The value should be =E2=80=98t=E2=80=99 to display the empty space bet= ween end of line and edge of the window using this face, or =E2=80=98nil=E2=80=99 = to not use this face for the space between the end of the line and the edge of the window. When Emacs merges several faces for displaying the empty space beyond end of line, only those faces with =E2=80=98:extend= =E2=80=99 non-=E2=80=98nil=E2=80=99 will be merged. I briefly read the original discussion of this feature, but did not find a reason for this peculiar behavior when it comes to inheritance; if there was a reason given, could someone point me to it? Background: I manage all faces without themes on my own, and I rely heavily on inheritance. As it stands now, IIUC (and according to some tests), I have to specify :extend t on ~30 faces (mostly diff, ediff, smerge, magit-ediff and -blame etc) that all derive from 3 or 4 base faces. It seems to me that this renders the whole point of inheritance moot. My natural reaction would have been to specify :extend t on some base faces, and for faces that inherit from them, explicitly say :extend nil only for those faces for which I do not want that extension. Isn't that at least as flexible, and more in the spirit of inheriting attributes?