[PATCH] ui: add new config option for help text width
Jun Wu
quark at fb.com
Wed May 4 17:20:14 UTC 2016
# 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
More information about the Mercurial-devel
mailing list