comparison mercurial/debugcommands.py @ 31120:c4e8fa2b1c40

color: move 'debugcolor' into the 'debugcommands' modules This is the last bits we needed to move out of the extensions. 'hgext/color.py' now only contains logic to changes the default color behavior to 'auto'. However, more cleanups are on the way and we need to document the new config directly in core.
author Pierre-Yves David <pierre-yves.david@ens-lyon.org>
date Tue, 21 Feb 2017 18:41:37 +0100
parents 2912b06905dc
children 8fc55bbd2235
comparison
equal deleted inserted replaced
31119:13bbcd56c57a 31120:c4e8fa2b1c40
29 ) 29 )
30 from . import ( 30 from . import (
31 bundle2, 31 bundle2,
32 changegroup, 32 changegroup,
33 cmdutil, 33 cmdutil,
34 color,
34 commands, 35 commands,
35 context, 36 context,
36 dagparser, 37 dagparser,
37 dagutil, 38 dagutil,
38 encoding, 39 encoding,
341 ui.warn(_("%s in manifest1, but listed as state %s") % (f, state)) 342 ui.warn(_("%s in manifest1, but listed as state %s") % (f, state))
342 errors += 1 343 errors += 1
343 if errors: 344 if errors:
344 error = _(".hg/dirstate inconsistent with current parent's manifest") 345 error = _(".hg/dirstate inconsistent with current parent's manifest")
345 raise error.Abort(error) 346 raise error.Abort(error)
347
348 @command('debugcolor',
349 [('', 'style', None, _('show all configured styles'))],
350 'hg debugcolor')
351 def debugcolor(ui, repo, **opts):
352 """show available color, effects or style"""
353 ui.write(('color mode: %s\n') % ui._colormode)
354 if opts.get('style'):
355 return _debugdisplaystyle(ui)
356 else:
357 return _debugdisplaycolor(ui)
358
359 def _debugdisplaycolor(ui):
360 oldstyle = ui._styles.copy()
361 try:
362 ui._styles.clear()
363 for effect in color._effects.keys():
364 ui._styles[effect] = effect
365 if ui._terminfoparams:
366 for k, v in ui.configitems('color'):
367 if k.startswith('color.'):
368 ui._styles[k] = k[6:]
369 elif k.startswith('terminfo.'):
370 ui._styles[k] = k[9:]
371 ui.write(_('available colors:\n'))
372 # sort label with a '_' after the other to group '_background' entry.
373 items = sorted(ui._styles.items(),
374 key=lambda i: ('_' in i[0], i[0], i[1]))
375 for colorname, label in items:
376 ui.write(('%s\n') % colorname, label=label)
377 finally:
378 ui._styles.clear()
379 ui._styles.update(oldstyle)
380
381 def _debugdisplaystyle(ui):
382 ui.write(_('available style:\n'))
383 width = max(len(s) for s in ui._styles)
384 for label, effects in sorted(ui._styles.items()):
385 ui.write('%s' % label, label=label)
386 if effects:
387 # 50
388 ui.write(': ')
389 ui.write(' ' * (max(0, width - len(label))))
390 ui.write(', '.join(ui.label(e, e) for e in effects.split()))
391 ui.write('\n')
346 392
347 @command('debugcommands', [], _('[COMMAND]'), norepo=True) 393 @command('debugcommands', [], _('[COMMAND]'), norepo=True)
348 def debugcommands(ui, cmd='', *args): 394 def debugcommands(ui, cmd='', *args):
349 """list all available commands and options""" 395 """list all available commands and options"""
350 for cmd, vals in sorted(commands.table.iteritems()): 396 for cmd, vals in sorted(commands.table.iteritems()):