unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Juri Linkov <juri@linkov.net>
Cc: orontee@gmail.com, emacs-devel@gnu.org
Subject: Re: Fix width tabs
Date: Fri, 04 Nov 2022 10:07:53 +0200	[thread overview]
Message-ID: <83r0yj5ehy.fsf@gnu.org> (raw)
In-Reply-To: <86tu3fnor9.fsf@mail.linkov.net> (message from Juri Linkov on Fri, 04 Nov 2022 09:48:58 +0200)

> From: Juri Linkov <juri@linkov.net>
> Cc: emacs-devel@gnu.org
> Date: Fri, 04 Nov 2022 09:48:58 +0200
> 
> >> Firefox choose to change the foreground color on tabs end to make names
> >> easier to read.  I guess it isn't supported by Emacs. So I use to set
> >> tab-bar-tab-name-function to tab-bar-tab-name-truncated and
> >> tab-bar-tab-name-ellipsis to t.  It helps distinguish the separation
> >> between tab names.  Is it expected for the truncation to not applying
> >> anymore with the code you sent?
> >
> > But using a faded foreground color like in Firefox is
> > the right thing to do.  After adding this to the end
> > produces such nice look where tab names are fading to the right:
> 
> This feature is pushed now enabled by default.

Thanks.  However, I have problems with the documentation of this
feature:

  (defcustom tab-bar-fixed-width t
    "Automatically resize tabs on the tab bar to the fixed width.
  This variable is intended to solve two problems.  When switching buffers
  on the current tab, the tab changes its name to buffer names of
  various lengths, thus resizing the tab and shifting the tab positions
  on the tab bar.  But with the fixed width, the size of the tab name
  doesn't change when the tab name changes, thus keeping the fixed
  tab bar layout.  The second problem solved by this variable is to prevent
  wrapping the long tab bar to the second line, thus keeping the height of
  the tab bar always fixed to one line.

  The maximum tab width is defined by the variable `tab-bar-fixed-width-max'."

This begs the question: what is the fixed width to which the tabs are
resized? if it's "fixed", then the value is known in advance, right?
Moreover, if the tab sizes are fixed, why does the doc string say
"automatically resize"? "resizing" is the antithesis of "fixed width".
Can you explain in plain words what this option does, when it is
non-nil?  (There's a hint to that in the doc string of
tab-bar-fixed-width-max, but that's not the right place for this
information.)  Also, what does it do when it's nil?

The style of the doc string is also problematic: we shouldn't describe
in a doc string of user option what problems it solves.  Instead, we
should tell what is the behavior for each valid value of the option;
the judgment of what is a "problem" and what isn't is left to the
user, because the needs of users may differ, and what is a "problem"
for some is a "solution" to others.  That's why we have user options
to begin with.

The NEWS entry is also problematic, basically for the same reason.

We should fix this.



  reply	other threads:[~2022-11-04  8:07 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-17 21:31 Fix width tabs Matthias Meulien
2022-02-18  7:49 ` Juri Linkov
2022-02-18 14:45   ` Matthias Meulien
2022-02-19 17:05     ` Juri Linkov
2022-02-21  8:30       ` Juri Linkov
2022-02-21 12:38         ` Matthias Meulien
2022-02-22 17:18           ` Juri Linkov
2022-10-27  7:40         ` Juri Linkov
2022-10-30 19:50           ` Matthias Meulien
2022-11-02 18:01             ` Juri Linkov
2022-11-04  7:48               ` Juri Linkov
2022-11-04  8:07                 ` Eli Zaretskii [this message]
2022-11-05 17:12                   ` Juri Linkov
2022-11-05 17:28                     ` Eli Zaretskii
2022-11-05 18:20                       ` Juri Linkov
2022-11-05 17:56                     ` tomas
2022-11-05 18:17                       ` Juri Linkov
2022-11-06 10:59                     ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=83r0yj5ehy.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=juri@linkov.net \
    --cc=orontee@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).