show: fix formatting of multiple commands
authorGregory Szorc <gregory.szorc@gmail.com>
Wed, 12 Apr 2017 20:28:44 -0700
changeset 31943 3e9f118cc834
parent 31942 bc0579a25f82
child 31944 99bc93147d87
show: fix formatting of multiple commands Because we're formatting to RST, short lines wrap and there needs to be an extra line break between paragraphs to prevent that. In addition, the indentation in the old code was a bit off. Refactor the code to a function (so we don't leak variables outside the module) and modify it so it renders more correctly.
hgext/show.py
tests/test-show.t
--- a/hgext/show.py	Wed Apr 12 18:42:20 2017 -0700
+++ b/hgext/show.py	Wed Apr 12 20:28:44 2017 -0700
@@ -71,7 +71,6 @@
        ``-T/--template``.
 
     List of available views:
-
     """
     if ui.plain() and not template:
         hint = _('invoke with -T/--template to control output format')
@@ -134,7 +133,15 @@
 # into core or when another extension wants to provide a view, we'll need
 # to do this more robustly.
 # TODO make this more robust.
-longest = max(map(len, showview._table.keys()))
-for key in sorted(showview._table.keys()):
-    cmdtable['show'][0].__doc__ += pycompat.sysstr(' %s   %s\n' % (
-        key.ljust(longest), showview._table[key]._origdoc))
+def _updatedocstring():
+    longest = max(map(len, showview._table.keys()))
+    entries = []
+    for key in sorted(showview._table.keys()):
+        entries.append(pycompat.sysstr('    %s   %s' % (
+            key.ljust(longest), showview._table[key]._origdoc)))
+
+    cmdtable['show'][0].__doc__ = pycompat.sysstr('%s\n\n%s\n    ') % (
+        cmdtable['show'][0].__doc__.rstrip(),
+        pycompat.sysstr('\n\n').join(entries))
+
+_updatedocstring()
--- a/tests/test-show.t	Wed Apr 12 18:42:20 2017 -0700
+++ b/tests/test-show.t	Wed Apr 12 20:28:44 2017 -0700
@@ -37,7 +37,7 @@
   
       List of available views:
   
-       bookmarks   bookmarks and their associated changeset
+      bookmarks   bookmarks and their associated changeset
   
   (use 'hg help -e show' to show help for the show extension)