comparison mercurial/help.py @ 8864:cad6370a15cb

help: refactor extensions listing, and show enabled ones in the dedicated topic
author C?dric Duval <cedricduval@free.fr>
date Sat, 20 Jun 2009 20:55:49 +0200
parents 7b19c3c0172b
children 37d8a5ddd499
comparison
equal deleted inserted replaced
8863:7b19c3c0172b 8864:cad6370a15cb
96 if len(name) > maxlength: 96 if len(name) > maxlength:
97 maxlength = len(name) 97 maxlength = len(name)
98 98
99 return exts, maxlength 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 def topicextensions(): 128 def topicextensions():
102 doc = _(r''' 129 doc = _(r'''
103 Mercurial has an extension mechanism for adding new features. 130 Mercurial has an extension mechanism for adding new features.
104 131
105 To enable an extension "foo" bundled with Mercurial, create an 132 To enable an extension "foo" bundled with Mercurial, create an
107 134
108 [extensions] 135 [extensions]
109 foo = 136 foo =
110 ''') 137 ''')
111 138
139 exts, maxlength = enabledextensions()
140 doc += extensionslisting(_('enabled extensions:'), exts, maxlength)
141
112 exts, maxlength = additionalextensions() 142 exts, maxlength = additionalextensions()
113 if exts: 143 doc += extensionslisting(_('non-enabled extensions:'), exts, maxlength)
114 doc += _('\nnon-enabled extensions:\n\n')
115 for name, desc in sorted(exts.iteritems()):
116 doc += ' %s %s\n' % (name.ljust(maxlength), desc)
117 144
118 return doc 145 return doc
119 146
120 helptable = ( 147 helptable = (
121 (["dates"], _("Date Formats"), 148 (["dates"], _("Date Formats"),