git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Felipe Contreras <felipe.contreras@gmail.com>
To: "Jeff King" <peff@peff.net>,
	"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Cc: "brian m. carlson" <sandals@crustytoothpaste.net>,
	Felipe Contreras <felipe.contreras@gmail.com>,
	git@vger.kernel.org, Junio C Hamano <gitster@pobox.com>,
	"Randall S. Becker" <rsbecker@nexbridge.com>
Subject: Re: [PATCH] help: colorize man pages
Date: Wed, 19 May 2021 06:45:17 -0500	[thread overview]
Message-ID: <60a4fa4dc7701_86a820896@natae.notmuch> (raw)
In-Reply-To: <YKTkIgdJgBomzieH@coredump.intra.peff.net>

Jeff King wrote:
> On Wed, May 19, 2021 at 11:26:12AM +0200, Ævar Arnfjörð Bjarmason wrote:
> 
> > > There's a big difference between Git coloring a Git UI, like a diff, and
> > > Git coloring a separate program that already has sensible, standard
> > > defaults.  A user who has not configured any color settings would
> > > probably not want Git to render manual pages one way, cargo to render
> > > manual pages a second way, and still other programs to render manual
> > > pages in other, incompatible ways.  We need to consider not only the
> > > impact that our decisions have in a vacuum, but what results similar
> > > decisions from other projects would produce in the software ecosystem as
> > > a whole.
> > >
> > > Would you consider various projects coloring their respective manual
> > > pages differently to be a desirable state of affairs?
> > 
> > I think it's an important distinction that we're not coloring any manual
> > pages, it's a question of whether we invoke "man" invoked by "git help
> > <whatever>" with the exact same paramaters/options a user would get with
> > "man git-<whatever>".
> > 
> > Right now our documentation seems to suggest that we won't do any such
> > magic, but you can also set man.viewer to e.g. invoke a web browser or
> > something instead of man(1).
> > 
> > I don't think it's confusing in that context if we learn to do some "man
> > with fancy on top" in this mode.
> 
> I agree that we could explain it as "man with fancy on top". But it
> makes me wonder: why is this Git's responsibility to do the fancy at
> all?

It is not.

Just like it is not git's responsibility to display diffs in color.

But it's a nice thing to do.

> I.e., if you want colorized manpages, why don't you configure man to do
> so?

Because this has nothing to do with man.

In the default mode man just takes the output of groff, and passes it to
a pager. That's it.

It doesn't know anything of colors. That's between groff and less.

> Sure, it's a bit of a pain to do so since it involves setting a
> bunch of obscure environment variables.

The environment variables are for less, not man.

If you export those variables into your environment, you could
potentially mess up the output of some programs when viewed through
less.

That's why in my tip I set the variables only for man, inside a man
function wrap: man () { FOO=1 command man "$@"; }

> But if that's what you want, wouldn't you want it for all manpages,
> whether you ran "git help log" or "man git-log" or "man ls"?

How? (without messing up the environment for other programs that use a
pager)

> This seems like a "man" feature and not a "git" feature.

man does not care. It can do many things, dumping data onto a pager is
just one of them.

Where does LESS_TERMCAP_* affect `man -Hchromium git`? For more read man man.

> And arguably some of it is really a "less" feature

It's *all* a less feature.

> (it is trying to set "standout" mode for its prompt, so configuring
> "so" and "se" termcap entries is just reinterpreting that. If you
> like, wouldn't you want it on for all "less" invocations?).

I don't.

Rendering things correctly on a terminal is tricky enough as it is, I
would like to hedge such kinds of changes inside a controlled
environment.

Which is exactly what my patch does.

-- 
Felipe Contreras

  reply	other threads:[~2021-05-19 11:45 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-18  1:01 Felipe Contreras
2021-05-18  1:19 ` brian m. carlson
2021-05-18  3:22   ` Felipe Contreras
2021-05-18 23:49     ` brian m. carlson
2021-05-19  1:08       ` Junio C Hamano
2021-05-19  2:07         ` brian m. carlson
2021-05-19  6:09           ` Junio C Hamano
2021-05-19  8:41             ` Ævar Arnfjörð Bjarmason
2021-05-19 10:36               ` Felipe Contreras
2021-05-21  0:58               ` brian m. carlson
2021-05-21 18:09                 ` Felipe Contreras
2021-05-21 19:48                   ` Igor Djordjevic
2021-05-21 21:20                     ` Felipe Contreras
2021-05-21 22:10                       ` Igor Djordjevic
2021-05-21 23:04                         ` Felipe Contreras
2021-05-22 18:38                           ` Igor Djordjevic
2021-05-22 21:48                             ` Felipe Contreras
2021-05-23 11:25                               ` Igor Djordjevic
2021-05-23 14:48                                 ` Felipe Contreras
2021-05-21 22:47                     ` Igor Djordjevic
2021-05-21 23:32                     ` Junio C Hamano
2021-05-19  9:26       ` Ævar Arnfjörð Bjarmason
2021-05-19 10:10         ` Jeff King
2021-05-19 11:45           ` Felipe Contreras [this message]
2021-05-19 11:19         ` Felipe Contreras
2021-05-19 12:21           ` Felipe Contreras
2021-05-20  1:55         ` brian m. carlson
2021-05-20  2:23           ` Junio C Hamano
2021-05-20  3:05             ` Felipe Contreras
2021-05-20  3:28               ` Junio C Hamano
2021-05-20  3:48                 ` Felipe Contreras
2021-05-20  2:45           ` Felipe Contreras
2021-05-19 10:25       ` Felipe Contreras

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

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

  git send-email \
    --in-reply-to=60a4fa4dc7701_86a820896@natae.notmuch \
    --to=felipe.contreras@gmail.com \
    --cc=avarab@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=peff@peff.net \
    --cc=rsbecker@nexbridge.com \
    --cc=sandals@crustytoothpaste.net \
    --subject='Re: [PATCH] help: colorize man pages' \
    /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

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 NNTP newsgroup(s).