comparison hgext/color.py @ 30971:bb6385882cfa

color: move configstyles into the core module The extension is getting thinner as we speak!
author Pierre-Yves David <pierre-yves.david@ens-lyon.org>
date Thu, 22 Dec 2016 02:34:22 +0100
parents ddc80d1777a6
children a3c7e42c7a1f
comparison
equal deleted inserted replaced
30970:683606a829e8 30971:bb6385882cfa
330 start = ''.join(_effect_str(effect) 330 start = ''.join(_effect_str(effect)
331 for effect in ['none'] + effects.split()) 331 for effect in ['none'] + effects.split())
332 stop = _effect_str('none') 332 stop = _effect_str('none')
333 return ''.join([start, text, stop]) 333 return ''.join([start, text, stop])
334 334
335 def configstyles(ui):
336 for status, cfgeffects in ui.configitems('color'):
337 if '.' not in status or status.startswith(('color.', 'terminfo.')):
338 continue
339 cfgeffects = ui.configlist('color', status)
340 if cfgeffects:
341 good = []
342 for e in cfgeffects:
343 if color.valideffect(e):
344 good.append(e)
345 else:
346 ui.warn(_("ignoring unknown color/effect %r "
347 "(configured in color.%s)\n")
348 % (e, status))
349 color._styles[status] = ' '.join(good)
350
351 class colorui(uimod.ui): 335 class colorui(uimod.ui):
352 _colormode = 'ansi' 336 _colormode = 'ansi'
353 def write(self, *args, **opts): 337 def write(self, *args, **opts):
354 if self._colormode is None: 338 if self._colormode is None:
355 return super(colorui, self).write(*args, **opts) 339 return super(colorui, self).write(*args, **opts)
418 ui.__class__ = colorui 402 ui.__class__ = colorui
419 def colorcmd(orig, ui_, opts, cmd, cmdfunc): 403 def colorcmd(orig, ui_, opts, cmd, cmdfunc):
420 mode = _modesetup(ui_, opts['color']) 404 mode = _modesetup(ui_, opts['color'])
421 colorui._colormode = mode 405 colorui._colormode = mode
422 if mode and mode != 'debug': 406 if mode and mode != 'debug':
423 configstyles(ui_) 407 color.configstyles(ui_)
424 return orig(ui_, opts, cmd, cmdfunc) 408 return orig(ui_, opts, cmd, cmdfunc)
425 def colorgit(orig, gitsub, commands, env=None, stream=False, cwd=None): 409 def colorgit(orig, gitsub, commands, env=None, stream=False, cwd=None):
426 if gitsub.ui._colormode and len(commands) and commands[0] == "diff": 410 if gitsub.ui._colormode and len(commands) and commands[0] == "diff":
427 # insert the argument in the front, 411 # insert the argument in the front,
428 # the end of git diff arguments is used for paths 412 # the end of git diff arguments is used for paths