From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Juri Linkov Newsgroups: gmane.emacs.devel Subject: Re: [PATCH] tab-line-alternate-colors Date: Mon, 14 Dec 2020 21:37:27 +0200 Organization: LINKOV.NET Message-ID: <87360847c8.fsf@mail.linkov.net> References: <87360autpy.fsf@alphapapa.net> <87mtyiqfzv.fsf@mail.linkov.net> <87tusqt3yr.fsf@alphapapa.net> <87wnxl760u.fsf@mail.linkov.net> <87h7opt3a4.fsf@alphapapa.net> <87blewpwf5.fsf@mail.linkov.net> <878sa0u2hn.fsf@alphapapa.net> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="14367"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (x86_64-pc-linux-gnu) Cc: emacs-devel@gnu.org To: Adam Porter Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Dec 14 20:59:33 2020 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 1kou0L-0003fB-62 for ged-emacs-devel@m.gmane-mx.org; Mon, 14 Dec 2020 20:59:33 +0100 Original-Received: from localhost ([::1]:38670 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kou0K-0005zx-8M for ged-emacs-devel@m.gmane-mx.org; Mon, 14 Dec 2020 14:59:32 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:37754) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1koty9-0003sB-Ka for emacs-devel@gnu.org; Mon, 14 Dec 2020 14:57:17 -0500 Original-Received: from relay12.mail.gandi.net ([217.70.178.232]:53347) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1koty8-0002k4-4H for emacs-devel@gnu.org; Mon, 14 Dec 2020 14:57:17 -0500 Original-Received: from mail.gandi.net (m91-129-99-98.cust.tele2.ee [91.129.99.98]) (Authenticated sender: juri@linkov.net) by relay12.mail.gandi.net (Postfix) with ESMTPSA id 23A11200004; Mon, 14 Dec 2020 19:57:12 +0000 (UTC) In-Reply-To: <878sa0u2hn.fsf@alphapapa.net> (Adam Porter's message of "Mon, 14 Dec 2020 04:05:24 -0600") Received-SPF: pass client-ip=217.70.178.232; envelope-from=juri@linkov.net; helo=relay12.mail.gandi.net X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, 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.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-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:260832 Archived-At: >> 1. add tab-line-tab-face-default to tab-line-tab-face-functions by default. >> >> 2. remove tab-line-tab-face-default and leave its code in tab-line-format-template >> as before, with a supposition that it should be sufficient to customize >> tab-line-tab-face-functions to post-process its output face. >> >> What variant would you prefer? > > Hmm, I'm not sure which is best. #1 might be the cleanest in theory, > but it would seem to conflate the two types of functions: the initial > face-determining function and the face-modifying functions. So that > variant would seem to require one of two approaches: a) require the > function tab-line-tab-face-default to be first in the list of functions > (which would be error-prone), or b) modify the function > tab-line-tab-face-default to work as a face-modifier so it could work > regardless of its position in the list (and it would need to be able to > start from a nil face, which might be awkward). > > OTOH, #2 would minimize the diff from master and avoid the problems that > #1 would seem to present. > > So I suppose I would choose variant #2, although I don't have a strong > preference, and I might be overlooking something that would make #1 a > better choice. > > WDYT? Thanks. The only drawback of #2 is that when the user wants to completely override all default faces, then calculating the default faces is unnecessary, but its performance overhead is negligible. For more optimization we could try also to add more args to the face-returning functions, such args as 'selected-p', but OTOH, maybe 'selected-p' is not needed in tab-line-tab-face-inactive-alternating, because it can just check if the arg 'face' from the previous function is not 'tab-line-tab-current'.