[PATCH] ui: add new config option for help text width

Martijn Pieters mj at zopatista.com
Wed May 4 15:26:34 EDT 2016


LGTM, I like!

On 4 May 2016 at 18:20, Jun Wu <quark at fb.com> wrote:
> # HG changeset patch
> # User Jun Wu <quark at fb.com>
> # Date 1462382304 -3600
> #      Wed May 04 18:18:24 2016 +0100
> # Node ID c891c0570b6908c2818019b2ff9ea9351b202091
> # Parent  caf1203f9ba10faa91abd6e0aacf50935e29d52b
> ui: add new config option for help text width
>
> Before this patch, when printing help text using `hg help`, or `hg log -h`,
> the output will wrap at 78 chars even if the user has a bigger terminal width
> and there is no config option to change it, making the experience different
> from the commonly used `man` tool.
>
> This patch introduces a new config option `ui.textwidth`, which replaces the
> hardcoded number. It's set to 78 by default to maintain compatibility. When
> set to 0, `hg help` will behave more like `man`.
>
> diff --git a/mercurial/commands.py b/mercurial/commands.py
> --- a/mercurial/commands.py
> +++ b/mercurial/commands.py
> @@ -4570,7 +4570,10 @@
>      Returns 0 if successful.
>      """
>
> -    textwidth = min(ui.termwidth(), 80) - 2
> +    textwidth = ui.configint('ui', 'textwidth', 78)
> +    termwidth = ui.termwidth() - 2
> +    if textwidth <= 0 or termwidth < textwidth:
> +        textwidth = termwidth
>
>      keep = opts.get('system') or []
>      if len(keep) == 0:
> diff --git a/mercurial/help/config.txt b/mercurial/help/config.txt
> --- a/mercurial/help/config.txt
> +++ b/mercurial/help/config.txt
> @@ -1737,6 +1737,13 @@
>      large organisation with its own Mercurial deployment process and crash
>      reports should be addressed to your internal support.
>
> +``textwidth``
> +    Maximum width of help text. A longer line generated by ``hg help`` or
> +    ``hg subcommand --help`` will be broken after white space to get this
> +    width or the terminal width, whichever comes first.
> +    A non-positive value will disable this and the terminal width will be
> +    used. (default: 78)
> +
>  ``timeout``
>      The timeout used when a lock is held (in seconds), a negative value
>      means no timeout. (default: 600)
> diff --git a/tests/test-help.t b/tests/test-help.t
> --- a/tests/test-help.t
> +++ b/tests/test-help.t
> @@ -429,6 +429,22 @@
>     -h --help              display help and exit
>        --hidden            consider hidden changesets
>
> +Test the textwidth config option
> +
> +  $ hg root -h  --config ui.textwidth=50
> +  hg root
> +
> +  print the root (top) of the current working
> +  directory
> +
> +      Print the root directory of the current
> +      repository.
> +
> +      Returns 0 on success.
> +
> +  (some details hidden, use --verbose to show
> +  complete help)
> +
>  Test help option with version option
>
>    $ hg add -h --version
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel



-- 
Martijn Pieters


More information about the Mercurial-devel mailing list