hgext/color.py
changeset 30971 bb6385882cfa
parent 30969 ddc80d1777a6
child 30972 a3c7e42c7a1f
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