Mercurial > public > mercurial-scm > hg
diff hgext/color.py @ 9641:9b99f158348a
color: colorize diff --stat
author | Brodie Rao <me+hg@dackz.net> |
---|---|
date | Sun, 25 Oct 2009 02:52:36 +0200 |
parents | 3e698434b990 |
children | d29bd00bbc50 |
line wrap: on
line diff
--- a/hgext/color.py Sun Oct 25 02:52:35 2009 +0200 +++ b/hgext/color.py Sun Oct 25 02:52:36 2009 +0200 @@ -189,9 +189,25 @@ finally: self.ui.write = oldwrite +def colordiffstat(orig, s): + lines = s.split('\n') + for i, line in enumerate(lines): + if line and line[-1] in '+-': + name, graph = line.rsplit(' ', 1) + graph = graph.replace('-', + render_effects('-', _diff_effects['deleted'])) + graph = graph.replace('+', + render_effects('+', _diff_effects['inserted'])) + lines[i] = ' '.join([name, graph]) + orig('\n'.join(lines)) + def colordiff(orig, ui, repo, *pats, **opts): '''run the diff command with colored output''' - oldwrite = extensions.wrapfunction(ui, 'write', colorwrap) + if opts.get('stat'): + wrapper = colordiffstat + else: + wrapper = colorwrap + oldwrite = extensions.wrapfunction(ui, 'write', wrapper) try: orig(ui, repo, *pats, **opts) finally: