diff -r 7b19c3c0172b -r cad6370a15cb mercurial/help.py --- a/mercurial/help.py Sat Jun 20 20:55:43 2009 +0200 +++ b/mercurial/help.py Sat Jun 20 20:55:49 2009 +0200 @@ -98,6 +98,33 @@ return exts, maxlength +def enabledextensions(): + '''Return the list of enabled extensions, and max name length''' + enabled = list(extensions.extensions()) + exts = {} + maxlength = 0 + + if enabled: + exthelps = [] + for ename, ext in enabled: + doc = (gettext(ext.__doc__) or _('(no help text available)')) + ename = ename.split('.')[-1] + maxlength = max(len(ename), maxlength) + exts[ename] = doc.splitlines(0)[0].strip() + + return exts, maxlength + +def extensionslisting(header, exts, maxlength): + '''Return a text listing of the given extensions''' + result = '' + + if exts: + result += '\n%s\n\n' % header + for name, desc in sorted(exts.iteritems()): + result += ' %s %s\n' % (name.ljust(maxlength), desc) + + return result + def topicextensions(): doc = _(r''' Mercurial has an extension mechanism for adding new features. @@ -109,11 +136,11 @@ foo = ''') + exts, maxlength = enabledextensions() + doc += extensionslisting(_('enabled extensions:'), exts, maxlength) + exts, maxlength = additionalextensions() - if exts: - doc += _('\nnon-enabled extensions:\n\n') - for name, desc in sorted(exts.iteritems()): - doc += ' %s %s\n' % (name.ljust(maxlength), desc) + doc += extensionslisting(_('non-enabled extensions:'), exts, maxlength) return doc