Mercurial > hg
changeset 27614:1d7e824ad093
help: include section heading if section depth changes
This makes it easier to distinguish between:
"format"
--------
"usestore"
...
Enabled by default.
and
"progress.format"
Format of the progress bar.
author | timeless <timeless@mozdev.org> |
---|---|
date | Fri, 01 Jan 2016 16:59:13 +0000 |
parents | dffd2ed9a7c4 |
children | 4030d3b79953 |
files | mercurial/minirst.py tests/test-help.t |
diffstat | 2 files changed, 56 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/minirst.py Wed Dec 30 21:07:51 2015 +0000 +++ b/mercurial/minirst.py Fri Jan 01 16:59:13 2016 +0000 @@ -661,12 +661,32 @@ sections = getsections(blocks) blocks = [] i = 0 + lastparents = [] + synthetic = [] + collapse = True while i < len(sections): name, nest, b = sections[i] del parents[nest:] - parents.append(name) + parents.append(i) if name == section: - b[0]['path'] = parents[3:] + if lastparents != parents: + llen = len(lastparents) + plen = len(parents) + if llen and llen != plen: + collapse = False + s = [] + for j in xrange(3, plen - 1): + parent = parents[j] + if (j >= llen or + lastparents[j] != parent): + s.append(len(blocks)) + sec = sections[parent][2] + blocks.append(sec[0]) + blocks.append(sec[-1]) + if s: + synthetic.append(s) + + lastparents = parents[:] blocks.extend(b) ## Also show all subnested sections @@ -674,18 +694,19 @@ i += 1 blocks.extend(sections[i][2]) i += 1 + if collapse: + synthetic.reverse() + for s in synthetic: + path = [blocks[i]['lines'][0] for i in s] + real = s[-1] + 2 + realline = blocks[real]['lines'] + realline[0] = ('"%s"' % + '.'.join(path + [realline[0]]).replace('"', '')) + del blocks[s[0]:real] if style == 'html': text = formathtml(blocks) else: - if len([b for b in blocks if b['type'] == 'definition']) > 1: - i = 0 - while i < len(blocks): - if blocks[i]['type'] == 'definition': - if 'path' in blocks[i]: - blocks[i]['lines'][0] = '"%s"' % '.'.join( - blocks[i]['path']) - i += 1 text = ''.join(formatblock(b, width) for b in blocks) if keep is None: return text
--- a/tests/test-help.t Wed Dec 30 21:07:51 2015 +0000 +++ b/tests/test-help.t Fri Jan 01 16:59:13 2016 +0000 @@ -1162,6 +1162,31 @@ $ hg help config.type | egrep '^$'|wc -l \s*3 (re) +Separate sections from subsections + + $ hg help config.format | egrep '^ ("|-)|^\s*$' | uniq + "format" + -------- + + "usegeneraldelta" + + "dotencode" + + "usefncache" + + "usestore" + + "profiling" + ----------- + + "format" + + "progress" + ---------- + + "format" + + Last item in help config.*: $ hg help config.`hg help config|grep '^ "'| \