diff 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
line wrap: on
line diff
--- a/hgext3rd/topic/stack.py	Wed May 08 16:00:34 2019 +0800
+++ b/hgext3rd/topic/stack.py	Sat May 11 17:14:32 2019 +0800
@@ -215,11 +215,9 @@
             branches = set([self._repo[None].branch()])
         return branches
 
-def labelsgen(prefix, labelssuffix):
-    """ Takes a label prefix and a list of suffixes. Returns a string of the prefix
-    formatted with each suffix separated with a space.
-    """
-    return ' '.join(prefix % suffix.replace(' ', '-') for suffix in labelssuffix)
+def labelsgen(prefix, parts):
+    fmt = prefix + '.%s'
+    return prefix + ' ' + ' '.join(fmt % p.replace(' ', '-') for p in parts)
 
 def showstack(ui, repo, branch=None, topic=None, opts=None):
     if opts is None:
@@ -364,17 +362,17 @@
                 fm.plain('              ')
         else:
             fm.write('topic.stack.index', '%s%%d' % prefix, idx,
-                     label='topic.stack.index ' + labelsgen('topic.stack.index.%s', states))
+                     label=labelsgen('topic.stack.index', states))
             if ui.verbose:
                 fm.write('topic.stack.shortnode', '(%s)', short(ctx.node()),
-                         label='topic.stack.shortnode ' + labelsgen('topic.stack.shortnode.%s', states))
+                         label=labelsgen('topic.stack.shortnode', states))
         fm.write('topic.stack.state.symbol', '%s', symbol,
-                 label='topic.stack.state ' + labelsgen('topic.stack.state.%s', states))
+                 label=labelsgen('topic.stack.state', states))
         fm.plain(' ')
         fm.write('topic.stack.desc', '%s', ctx.description().splitlines()[0],
-                 label='topic.stack.desc ' + labelsgen('topic.stack.desc.%s', states))
+                 label=labelsgen('topic.stack.desc', states))
         fm.condwrite(states != ['clean'] and idx is not None, 'topic.stack.state',
                      ' (%s)', fm.formatlist(states, 'topic.stack.state'),
-                     label='topic.stack.state ' + labelsgen('topic.stack.state.%s', states))
+                     label=labelsgen('topic.stack.state', states))
         fm.plain('\n')
     fm.end()