[PATCH 2 of 4] help: refactor extensions listing, and show enabled ones in the dedicated topic
Dirkjan Ochtman
dirkjan at ochtman.nl
Sun Jun 21 05:35:41 CDT 2009
2009/6/20 Cédric Duval <cedricduval at free.fr>:
> # HG changeset patch
> # User Cédric Duval <cedricduval at free.fr>
> # Date 1245524149 -7200
> # Node ID 34c094dfd6a93a402269a5ee8e7aa0840d5365b8
> # Parent 9070fe33a459e01c57d45572ac246310e3e37b06
> help: refactor extensions listing, and show enabled ones in the dedicated topic
>
> diff --git a/mercurial/commands.py b/mercurial/commands.py
> --- a/mercurial/commands.py
> +++ b/mercurial/commands.py
> @@ -1473,18 +1473,10 @@
> else:
> ui.write(' %-*s %s\n' % (m, f, h[f]))
>
> - exts = list(extensions.extensions())
> - if exts and name != 'shortlist':
> - ui.write(_('\nenabled extensions:\n\n'))
> - maxlength = 0
> - exthelps = []
> - for ename, ext in exts:
> - doc = (gettext(ext.__doc__) or _('(no help text available)'))
> - ename = ename.split('.')[-1]
> - maxlength = max(len(ename), maxlength)
> - exthelps.append((ename, doc.splitlines(0)[0].strip()))
> - for ename, text in exthelps:
> - ui.write(_(' %s %s\n') % (ename.ljust(maxlength), text))
> + if name != 'shortlist':
> + exts, maxlength = help.enabledextensions()
> + ui.write(help.extensionslisting(_('enabled extensions:'),
> + exts, maxlength))
I prefer temporary variables over line wrapping.
>
> if not ui.quiet:
> addglobalopts(True)
> diff --git a/mercurial/help.py b/mercurial/help.py
> --- a/mercurial/help.py
> +++ b/mercurial/help.py
> @@ -98,6 +98,33 @@
>
> return exts, maxlength
>
> +def enabledextensions():
> + '''Return the list of enabled extensions, and max name length'''
> + enabled = list(extensions.extensions())
Another long name. Maybe just enabled?
Actually, it may make more sense to put disabled() and enabled() in
mercurial.extensions. It's not really a help thing, after all.
> + exts = {}
> + maxlength = 0
> +
> + if enabled:
It'd be nicer to return if not enabled, saves on the indentation later.
> + 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):
Please rename... listexts()?
> + '''Return a text listing of the given extensions'''
> + result = ''
> +
> + if exts:
See above.
> + 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
Cheers,
Dirkjan
More information about the Mercurial-devel
mailing list