Mercurial > public > mercurial-scm > hg
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()): |