From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Drew Adams" Newsgroups: gmane.emacs.devel Subject: RE: facemenu-unlisted-faces Date: Fri, 14 Jul 2006 08:06:24 -0700 Message-ID: References: <878xmx9gwk.fsf@catnip.gol.com> NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Trace: sea.gmane.org 1152889619 15284 80.91.229.2 (14 Jul 2006 15:06:59 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Fri, 14 Jul 2006 15:06:59 +0000 (UTC) Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Jul 14 17:06:56 2006 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by ciao.gmane.org with esmtp (Exim 4.43) id 1G1PFg-0001pT-4b for ged-emacs-devel@m.gmane.org; Fri, 14 Jul 2006 17:06:48 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1G1PFd-0004Df-Ek for ged-emacs-devel@m.gmane.org; Fri, 14 Jul 2006 11:06:45 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1G1PFS-0004DM-RB for emacs-devel@gnu.org; Fri, 14 Jul 2006 11:06:34 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1G1PFS-0004D8-A0 for emacs-devel@gnu.org; Fri, 14 Jul 2006 11:06:34 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1G1PFS-0004D3-4a for emacs-devel@gnu.org; Fri, 14 Jul 2006 11:06:34 -0400 Original-Received: from [141.146.126.228] (helo=agminet01.oracle.com) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_3DES_EDE_CBC_SHA:24) (Exim 4.52) id 1G1PHS-0003XR-Lr for emacs-devel@gnu.org; Fri, 14 Jul 2006 11:08:38 -0400 Original-Received: from rgmsgw301.us.oracle.com (rgmsgw301.us.oracle.com [138.1.186.50]) by agminet01.oracle.com (Switch-3.1.7/Switch-3.1.7) with ESMTP id k6EF6WsB014400 for ; Fri, 14 Jul 2006 10:06:32 -0500 Original-Received: from dradamslap (dhcp-amer-csvpn-gw2-141-144-72-67.vpn.oracle.com [141.144.72.67]) by rgmsgw301.us.oracle.com (Switch-3.1.7/Switch-3.1.7) with SMTP id k6EF6UXN030504 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NO) for ; Fri, 14 Jul 2006 09:06:31 -0600 Original-To: X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook IMO, Build 9.0.6604 (9.0.2911.0) In-Reply-To: <878xmx9gwk.fsf@catnip.gol.com> X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1807 Importance: Normal X-Brightmail-Tracker: AAAAAQAAAAI= X-Brightmail-Tracker: AAAAAQAAAAI= X-Whitelist: TRUE X-Whitelist: TRUE X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:57014 Archived-At: > IOW, the usefulness you describe for face `fixed-pitch' is an > argument for its existence as a face, but as a *constant* face. > Since it is specifically intended to have a constant appearance > (its particular appearance is its raison d'etre), changing its > appearance should somehow be discouraged or prevented. That doesn't make the least bit of sense -- 90% of the _reason_ for having a face like `fixed-pitch' is so that the user can change it! In a very narrow way (see below). 99.99% of the definition of this face is *not* intended to be changed by users or code. There are various place in emacs that want a fixed-pitch font: by inheriting from `fixed-pitch', there's no need for the user to customize all those faces if he wants to change which fixed-pitch font gets used in general; he can just customize `fixed-pitch'. I already mentioned the advantage of inheritance from `fixed-pitch'. That's part of the "argument for its existence as a face". The same advantage is present, however, if you inherit from a constant face. Anyway, you raise a good point, even if it is a nuance. Face `fixed-pitch' is a bit different from faces such as `bold'. In the case of `fixed-pitch', the intention is not that the face definition (and its appearance) remain 100% constant, but that it remain constant *except* for the :font-family attribute, and for the :font-family, the intention is that only a fixed-pitch family be allowed. IOW, you can substitute a different fixed-pitch font family for Courier, but that's the only way you're supposed to change the definition of `fixed-pitch'. It's intended to be a very constant face, but there is a tiny exception. We're far from being able to specify fine-grained constraints like that, alas. Which do you think is more important, 1) the fact that the face is (intended to be) essentially constant (all attributes except :font-family, and even that is restricted), or 2) the fact that some variability is allowed? Would you toss it in the `dired-flagged' camp or the `bold' (face) camp - `defface' or `defconst-face'? I'd say, given the lack of a mechanism to precisely state and control the intention, that the best solution is to use an analog of `defconst', and to express the particular exceptions (your nuance) in the doc string. There is a world of difference between the intention behind `fixed-pitch' and the intention behind `dired-flagged'. There is less difference between face `fixed-pitch and a face such as `bold' that is intended to remain 100% constant. `fixed-pitch' is a face whose meaning, like that of face `bold', is based on its appearance, not on its use. Its appearance is (intended to be) essentially constant.