[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