From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Adam Porter Newsgroups: gmane.emacs.devel Subject: Re: [PATCH] tab-line: New tab-line-tab-face-modified face Date: Fri, 24 Sep 2021 17:13:20 -0500 Message-ID: <87k0j5bp1b.fsf@alphapapa.net> References: <87bl4id10a.fsf@alphapapa.net> <87pmsyo4uz.fsf@mail.linkov.net> <87tuiabgb5.fsf@alphapapa.net> <87pmsyj9dh.fsf@mail.linkov.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="6761"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Sep 25 00:14:49 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 1mTtSz-0001Xa-4c for ged-emacs-devel@m.gmane-mx.org; Sat, 25 Sep 2021 00:14:49 +0200 Original-Received: from localhost ([::1]:44798 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mTtSx-0001QE-HI for ged-emacs-devel@m.gmane-mx.org; Fri, 24 Sep 2021 18:14:47 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:44484) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mTtRm-0000Tt-Rj for emacs-devel@gnu.org; Fri, 24 Sep 2021 18:13:36 -0400 Original-Received: from ciao.gmane.io ([116.202.254.214]:50630) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mTtRl-0001gR-2m for emacs-devel@gnu.org; Fri, 24 Sep 2021 18:13:34 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1mTtRi-000AWB-Pv for emacs-devel@gnu.org; Sat, 25 Sep 2021 00:13:30 +0200 X-Injected-Via-Gmane: http://gmane.org/ Received-SPF: pass client-ip=116.202.254.214; envelope-from=ged-emacs-devel@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.248, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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:275433 Archived-At: Juri Linkov writes: >>>> Spending some more time using Emacs 28.0.50 with tab-bar and tab-line, I >>>> found myself missing the ability to look at a tab-line tab and know >>>> whether its buffer is modified (e.g. after using >>>> `xref-query-replace-in-results' on some project buffers). >>>> >>>> This patch adds a face for modified, file-backed buffers. I chose to >>>> inherit from the font-lock-doc-face, as it seems readable and intuitive >>>> with the default theme. It seems to make the tab-line much more useful, >>>> and more in line with what users will probably expect from having used >>>> other editors' GUIs. >>> >>> Thanks, a modified buffer needs to be indicated somehow, >>> but all other editors' GUIs display ‘*’ at the beginning >>> of the modified buffer's name. >> >> Some do, yes, but I've used some that change the appearance of the text >> in the tab's name, e.g. making it bold, italic, etc. We already use >> italic for non-file-backed buffers, and bold seems, well, too bold, IMHO >> (and it may change the width of the tab with proportional fonts), so >> changing the color seems reasonable. >> >> I'm not opposed to optionally adding an asterisk to the name, but that >> would change the width of the tab as soon as a user types into a buffer, >> which doesn't seem like a good default to me. > > I see another problem with an asterisk: many buffers already have an asterisk > as the first character of their buffer names, so it will be indistinguishable > from the modified status. Yes, good point. > But why font-lock-doc-face? Have you tried to change tab background color? > I guess this would be more visually pleasing. Or maybe not. This needs > more experimentation. Because in the default theme, it results in text that's a dark red, which is easily distinguished against the default tab background color, while still being readable (IMHO). It reminds me of other editors I've used that use the red color to indicate a modified tab, so I think it should be somewhat familiar to users. And by using a "font-lock-" face, it will be themed automatically by common third-party themes; while that doesn't guarantee it will look good with any theme by default, it should help. A background color could be used as well, but I think that would be too jarring; we already have an option to alternate the background color to help distinguish tabs, which results in alternating shades of gray in the default theme, which are already a bit high-contrast (subtler shades of gray would be better, IMHO). Having some of the tabs be, e.g. a red background color, would be off-putting to users, IMO; I guess they might prefer to disable the feature entirely in that case. I also feel like a changed background color ought to be reserved for something more urgent, like a tab that "requires attention", similar to how desktop environments or MS-Windows highlight tabs that are trying to get the user's attention due to an error or notification. Having said that, it doesn't matter to me what the default face is. If there's a better foreground color, or a good background color, or some other face attribute that would be a better default, let's use that.