Mercurial > hg
changeset 19769:83d79a00cc24 stable
help: use full name of extensions to look up them for keyword search
Before this patch, "hg help -k KEYWORD" fails, if there is the
extension of which name includes ".", because "extensions.load()"
invoked from "help.topicmatch()" fails to look such extension up, even
though it is already loaded in.
"help.topicmatch()" invokes "extensions.load()" with the name gotten
from "extensions.enabled()". The former expects full name of extension
(= key in '[extensions]' section), but the latter returns names
shortened by "split('.')[-1]". This difference causes failure of
looking extension up.
This patch adds "shortname" argument to "extensions.enabled()" to make
it return shortened names only if it is True. "help.topicmatch()"
turns it off to get full name of extensions.
Then, this patch shortens full name of extensions by "split('.')[-1]"
for showing them in the list of extensions.
Shortening is also applied on names gotten from
"extensions.disabled()" but harmless, because it returns only
extensions directly under "hgext" and their names should not include
".".
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Mon, 23 Sep 2013 20:23:25 +0900 |
parents | e92650e39f1c |
children | a9e92b11a3f2 4d2bea6604d3 |
files | mercurial/extensions.py mercurial/help.py tests/test-help.t |
diffstat | 3 files changed, 13 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/extensions.py Fri Sep 20 10:45:51 2013 -0700 +++ b/mercurial/extensions.py Mon Sep 23 20:23:25 2013 +0900 @@ -349,12 +349,13 @@ raise error.UnknownCommand(cmd) -def enabled(): +def enabled(shortname=True): '''return a dict of {name: desc} of extensions''' exts = {} for ename, ext in extensions(): doc = (gettext(ext.__doc__) or _('(no help text available)')) - ename = ename.split('.')[-1] + if shortname: + ename = ename.split('.')[-1] exts[ename] = doc.splitlines()[0].strip() return exts
--- a/mercurial/help.py Fri Sep 20 10:45:51 2013 -0700 +++ b/mercurial/help.py Mon Sep 23 20:23:25 2013 +0900 @@ -103,10 +103,11 @@ cmdname = cmd.split('|')[0].lstrip('^') results['commands'].append((cmdname, summary)) for name, docs in itertools.chain( - extensions.enabled().iteritems(), + extensions.enabled(False).iteritems(), extensions.disabled().iteritems()): # extensions.load ignores the UI argument mod = extensions.load(None, name, '') + name = name.split('.')[-1] if lowercontains(name) or lowercontains(docs): # extension docs are already translated results['extensions'].append((name, docs.splitlines()[0]))
--- a/tests/test-help.t Fri Sep 20 10:45:51 2013 -0700 +++ b/tests/test-help.t Mon Sep 23 20:23:25 2013 +0900 @@ -773,6 +773,12 @@ Test keyword search help + $ cat > prefixedname.py <<EOF + > '''matched against word "clone" + > ''' + > EOF + $ echo '[extensions]' >> $HGRCPATH + $ echo "dot.dot.prefixedname = `pwd`/prefixedname.py" >> $HGRCPATH $ hg help -k clone Topics: @@ -792,7 +798,8 @@ Extensions: - relink recreates hardlinks between repository clones + prefixedname matched against word "clone" + relink recreates hardlinks between repository clones Extension Commands: