comparison hgext3rd/topic/stack.py @ 4653:fd4f422b0b57

stack: leverage labelsgen() to produce all needed labels for fm.write()
author Anton Shestakov <av6@dwimlabs.net>
date Sat, 11 May 2019 17:14:32 +0800
parents b72cd597a887
children 0d05dcb8dd37
comparison
equal deleted inserted replaced
4652:b72cd597a887 4653:fd4f422b0b57
213 branches = sorted(set(self._repo[r].branch() for r in self._revs)) 213 branches = sorted(set(self._repo[r].branch() for r in self._revs))
214 if not branches: 214 if not branches:
215 branches = set([self._repo[None].branch()]) 215 branches = set([self._repo[None].branch()])
216 return branches 216 return branches
217 217
218 def labelsgen(prefix, labelssuffix): 218 def labelsgen(prefix, parts):
219 """ Takes a label prefix and a list of suffixes. Returns a string of the prefix 219 fmt = prefix + '.%s'
220 formatted with each suffix separated with a space. 220 return prefix + ' ' + ' '.join(fmt % p.replace(' ', '-') for p in parts)
221 """
222 return ' '.join(prefix % suffix.replace(' ', '-') for suffix in labelssuffix)
223 221
224 def showstack(ui, repo, branch=None, topic=None, opts=None): 222 def showstack(ui, repo, branch=None, topic=None, opts=None):
225 if opts is None: 223 if opts is None:
226 opts = {} 224 opts = {}
227 225
362 fm.plain(' ') 360 fm.plain(' ')
363 if ui.verbose: 361 if ui.verbose:
364 fm.plain(' ') 362 fm.plain(' ')
365 else: 363 else:
366 fm.write('topic.stack.index', '%s%%d' % prefix, idx, 364 fm.write('topic.stack.index', '%s%%d' % prefix, idx,
367 label='topic.stack.index ' + labelsgen('topic.stack.index.%s', states)) 365 label=labelsgen('topic.stack.index', states))
368 if ui.verbose: 366 if ui.verbose:
369 fm.write('topic.stack.shortnode', '(%s)', short(ctx.node()), 367 fm.write('topic.stack.shortnode', '(%s)', short(ctx.node()),
370 label='topic.stack.shortnode ' + labelsgen('topic.stack.shortnode.%s', states)) 368 label=labelsgen('topic.stack.shortnode', states))
371 fm.write('topic.stack.state.symbol', '%s', symbol, 369 fm.write('topic.stack.state.symbol', '%s', symbol,
372 label='topic.stack.state ' + labelsgen('topic.stack.state.%s', states)) 370 label=labelsgen('topic.stack.state', states))
373 fm.plain(' ') 371 fm.plain(' ')
374 fm.write('topic.stack.desc', '%s', ctx.description().splitlines()[0], 372 fm.write('topic.stack.desc', '%s', ctx.description().splitlines()[0],
375 label='topic.stack.desc ' + labelsgen('topic.stack.desc.%s', states)) 373 label=labelsgen('topic.stack.desc', states))
376 fm.condwrite(states != ['clean'] and idx is not None, 'topic.stack.state', 374 fm.condwrite(states != ['clean'] and idx is not None, 'topic.stack.state',
377 ' (%s)', fm.formatlist(states, 'topic.stack.state'), 375 ' (%s)', fm.formatlist(states, 'topic.stack.state'),
378 label='topic.stack.state ' + labelsgen('topic.stack.state.%s', states)) 376 label=labelsgen('topic.stack.state', states))
379 fm.plain('\n') 377 fm.plain('\n')
380 fm.end() 378 fm.end()