##// END OF EJS Templates
help: refactor extensions listing, and show enabled ones in the dedicated topic
Cédric Duval -
r8864:cad6370a default
parent child Browse files
Show More
@@ -1483,18 +1483,10 b' def help_(ui, name=None, with_version=Fa'
1483 1483 else:
1484 1484 ui.write(' %-*s %s\n' % (m, f, h[f]))
1485 1485
1486 exts = list(extensions.extensions())
1487 if exts and name != 'shortlist':
1488 ui.write(_('\nenabled extensions:\n\n'))
1489 maxlength = 0
1490 exthelps = []
1491 for ename, ext in exts:
1492 doc = (gettext(ext.__doc__) or _('(no help text available)'))
1493 ename = ename.split('.')[-1]
1494 maxlength = max(len(ename), maxlength)
1495 exthelps.append((ename, doc.splitlines(0)[0].strip()))
1496 for ename, text in exthelps:
1497 ui.write(_(' %s %s\n') % (ename.ljust(maxlength), text))
1486 if name != 'shortlist':
1487 exts, maxlength = help.enabledextensions()
1488 ui.write(help.extensionslisting(_('enabled extensions:'),
1489 exts, maxlength))
1498 1490
1499 1491 if not ui.quiet:
1500 1492 addglobalopts(True)
@@ -98,6 +98,33 b' def additionalextensions():'
98 98
99 99 return exts, maxlength
100 100
101 def enabledextensions():
102 '''Return the list of enabled extensions, and max name length'''
103 enabled = list(extensions.extensions())
104 exts = {}
105 maxlength = 0
106
107 if enabled:
108 exthelps = []
109 for ename, ext in enabled:
110 doc = (gettext(ext.__doc__) or _('(no help text available)'))
111 ename = ename.split('.')[-1]
112 maxlength = max(len(ename), maxlength)
113 exts[ename] = doc.splitlines(0)[0].strip()
114
115 return exts, maxlength
116
117 def extensionslisting(header, exts, maxlength):
118 '''Return a text listing of the given extensions'''
119 result = ''
120
121 if exts:
122 result += '\n%s\n\n' % header
123 for name, desc in sorted(exts.iteritems()):
124 result += ' %s %s\n' % (name.ljust(maxlength), desc)
125
126 return result
127
101 128 def topicextensions():
102 129 doc = _(r'''
103 130 Mercurial has an extension mechanism for adding new features.
@@ -109,11 +136,11 b' def topicextensions():'
109 136 foo =
110 137 ''')
111 138
139 exts, maxlength = enabledextensions()
140 doc += extensionslisting(_('enabled extensions:'), exts, maxlength)
141
112 142 exts, maxlength = additionalextensions()
113 if exts:
114 doc += _('\nnon-enabled extensions:\n\n')
115 for name, desc in sorted(exts.iteritems()):
116 doc += ' %s %s\n' % (name.ljust(maxlength), desc)
143 doc += extensionslisting(_('non-enabled extensions:'), exts, maxlength)
117 144
118 145 return doc
119 146
General Comments 0
You need to be logged in to leave comments. Login now