4 # |
4 # |
5 # This software may be used and distributed according to the terms of the |
5 # This software may be used and distributed according to the terms of the |
6 # GNU General Public License version 2 or any later version. |
6 # GNU General Public License version 2 or any later version. |
7 |
7 |
8 import re |
8 import re |
9 import parser, util, error, discovery |
9 import parser, util, error, discovery, help |
10 import bookmarks as bookmarksmod |
10 import bookmarks as bookmarksmod |
11 import match as matchmod |
11 import match as matchmod |
12 from i18n import _, gettext |
12 from i18n import _ |
13 |
13 |
14 elements = { |
14 elements = { |
15 "(": (20, ("group", 1, ")"), ("func", 1, ")")), |
15 "(": (20, ("group", 1, ")"), ("func", 1, ")")), |
16 "-": (5, ("negate", 19), ("minus", 5)), |
16 "-": (5, ("negate", 19), ("minus", 5)), |
17 "::": (17, ("dagrangepre", 17), ("dagrange", 17), |
17 "::": (17, ("dagrangepre", 17), ("dagrange", 17), |
813 def mfunc(repo, subset): |
813 def mfunc(repo, subset): |
814 return getset(repo, subset, tree) |
814 return getset(repo, subset, tree) |
815 return mfunc |
815 return mfunc |
816 |
816 |
817 def makedoc(topic, doc): |
817 def makedoc(topic, doc): |
818 """Generate and include predicates help in revsets topic.""" |
818 return help.makeitemsdoc(topic, doc, '.. predicatesmarker', symbols) |
819 predicates = [] |
|
820 for name in sorted(symbols): |
|
821 text = symbols[name].__doc__ |
|
822 if not text: |
|
823 continue |
|
824 text = gettext(text.rstrip()) |
|
825 lines = text.splitlines() |
|
826 lines[1:] = [(' ' + l.strip()) for l in lines[1:]] |
|
827 predicates.append('\n'.join(lines)) |
|
828 predicates = '\n\n'.join(predicates) |
|
829 doc = doc.replace('.. predicatesmarker', predicates) |
|
830 return doc |
|
831 |
819 |
832 # tell hggettext to extract docstrings from these functions: |
820 # tell hggettext to extract docstrings from these functions: |
833 i18nfunctions = symbols.values() |
821 i18nfunctions = symbols.values() |