Mercurial > hg-stable
changeset 7459:3fb5c142a9f0
color: replace effect-specific reset control codes with general purpose one
author | Brodie Rao <me+hg@dackz.net> |
---|---|
date | Mon, 01 Dec 2008 10:45:22 -0500 |
parents | 03dd55115985 |
children | 3342e6ada4b9 |
files | hgext/color.py tests/test-diff-color.out tests/test-status-color.out |
diffstat | 3 files changed, 130 insertions(+), 135 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/color.py Tue Dec 02 10:13:52 2008 -0600 +++ b/hgext/color.py Mon Dec 01 10:45:22 2008 -0500 @@ -67,39 +67,34 @@ from mercurial.i18n import _ # start and stop parameters for effects -_effect_params = { 'none': (0, 0), - 'black': (30, 39), - 'red': (31, 39), - 'green': (32, 39), - 'yellow': (33, 39), - 'blue': (34, 39), - 'magenta': (35, 39), - 'cyan': (36, 39), - 'white': (37, 39), - 'bold': (1, 22), - 'italic': (3, 23), - 'underline': (4, 24), - 'inverse': (7, 27), - 'black_background': (40, 49), - 'red_background': (41, 49), - 'green_background': (42, 49), - 'yellow_background': (43, 49), - 'blue_background': (44, 49), - 'purple_background': (45, 49), - 'cyan_background': (46, 49), - 'white_background': (47, 49), } +_effect_params = {'none': 0, + 'black': 30, + 'red': 31, + 'green': 32, + 'yellow': 33, + 'blue': 34, + 'magenta': 35, + 'cyan': 36, + 'white': 37, + 'bold': 1, + 'italic': 3, + 'underline': 4, + 'inverse': 7, + 'black_background': 40, + 'red_background': 41, + 'green_background': 42, + 'yellow_background': 43, + 'blue_background': 44, + 'purple_background': 45, + 'cyan_background': 46, + 'white_background': 47} def render_effects(text, *effects): 'Wrap text in commands to turn on each effect.' - start = [ str(_effect_params['none'][0]) ] - stop = [] - for effect in effects: - start.append(str(_effect_params[effect][0])) - stop.append(str(_effect_params[effect][1])) - stop.append(str(_effect_params['none'][1])) + start = [str(_effect_params[e]) for e in ('none',) + effects] start = '\033[' + ';'.join(start) + 'm' - stop = '\033[' + ';'.join(stop) + 'm' - return start + text + stop + stop = '\033[' + str(_effect_params['none']) + 'm' + return ''.join([start, text, stop]) def colorstatus(orig, ui, repo, *pats, **opts): '''run the status command with colored output'''
--- a/tests/test-diff-color.out Tue Dec 02 10:13:52 2008 -0600 +++ b/tests/test-diff-color.out Mon Dec 01 10:45:22 2008 -0500 @@ -1,25 +1,25 @@ adding a % default context -[0;1mdiff -r cf9f4ba66af2 a[22;0m -[0;31;1m--- a/a[39;22;0m -[0;32;1m+++ b/a[39;22;0m -[0;35m@@ -2,7 +2,7 @@[39;0m +[0;1mdiff -r cf9f4ba66af2 a[0m +[0;31;1m--- a/a[0m +[0;32;1m+++ b/a[0m +[0;35m@@ -2,7 +2,7 @@[0m c a a -[0;31m-b[39;0m -[0;32m+dd[39;0m +[0;31m-b[0m +[0;32m+dd[0m a a c % --unified=2 -[0;1mdiff -r cf9f4ba66af2 a[22;0m -[0;31;1m--- a/a[39;22;0m -[0;32;1m+++ b/a[39;22;0m -[0;35m@@ -3,5 +3,5 @@[39;0m +[0;1mdiff -r cf9f4ba66af2 a[0m +[0;31;1m--- a/a[0m +[0;32;1m+++ b/a[0m +[0;35m@@ -3,5 +3,5 @@[0m a a -[0;31m-b[39;0m -[0;32m+dd[39;0m +[0;31m-b[0m +[0;32m+dd[0m a a
--- a/tests/test-status-color.out Tue Dec 02 10:13:52 2008 -0600 +++ b/tests/test-status-color.out Mon Dec 01 10:45:22 2008 -0500 @@ -1,125 +1,125 @@ hg status in repo root: -[0;35;1;4m? a/1/in_a_1[39;22;24;0m -[0;35;1;4m? a/in_a[39;22;24;0m -[0;35;1;4m? b/1/in_b_1[39;22;24;0m -[0;35;1;4m? b/2/in_b_2[39;22;24;0m -[0;35;1;4m? b/in_b[39;22;24;0m -[0;35;1;4m? in_root[39;22;24;0m +[0;35;1;4m? a/1/in_a_1[0m +[0;35;1;4m? a/in_a[0m +[0;35;1;4m? b/1/in_b_1[0m +[0;35;1;4m? b/2/in_b_2[0m +[0;35;1;4m? b/in_b[0m +[0;35;1;4m? in_root[0m hg status . in repo root: -[0;35;1;4m? a/1/in_a_1[39;22;24;0m -[0;35;1;4m? a/in_a[39;22;24;0m -[0;35;1;4m? b/1/in_b_1[39;22;24;0m -[0;35;1;4m? b/2/in_b_2[39;22;24;0m -[0;35;1;4m? b/in_b[39;22;24;0m -[0;35;1;4m? in_root[39;22;24;0m +[0;35;1;4m? a/1/in_a_1[0m +[0;35;1;4m? a/in_a[0m +[0;35;1;4m? b/1/in_b_1[0m +[0;35;1;4m? b/2/in_b_2[0m +[0;35;1;4m? b/in_b[0m +[0;35;1;4m? in_root[0m hg status in a: -[0;35;1;4m? a/1/in_a_1[39;22;24;0m -[0;35;1;4m? a/in_a[39;22;24;0m -[0;35;1;4m? b/1/in_b_1[39;22;24;0m -[0;35;1;4m? b/2/in_b_2[39;22;24;0m -[0;35;1;4m? b/in_b[39;22;24;0m -[0;35;1;4m? in_root[39;22;24;0m +[0;35;1;4m? a/1/in_a_1[0m +[0;35;1;4m? a/in_a[0m +[0;35;1;4m? b/1/in_b_1[0m +[0;35;1;4m? b/2/in_b_2[0m +[0;35;1;4m? b/in_b[0m +[0;35;1;4m? in_root[0m hg status . in a: -[0;35;1;4m? 1/in_a_1[39;22;24;0m -[0;35;1;4m? in_a[39;22;24;0m +[0;35;1;4m? 1/in_a_1[0m +[0;35;1;4m? in_a[0m hg status .. in a: -[0;35;1;4m? 1/in_a_1[39;22;24;0m -[0;35;1;4m? in_a[39;22;24;0m -[0;35;1;4m? ../b/1/in_b_1[39;22;24;0m -[0;35;1;4m? ../b/2/in_b_2[39;22;24;0m -[0;35;1;4m? ../b/in_b[39;22;24;0m -[0;35;1;4m? ../in_root[39;22;24;0m +[0;35;1;4m? 1/in_a_1[0m +[0;35;1;4m? in_a[0m +[0;35;1;4m? ../b/1/in_b_1[0m +[0;35;1;4m? ../b/2/in_b_2[0m +[0;35;1;4m? ../b/in_b[0m +[0;35;1;4m? ../in_root[0m hg status in b: -[0;35;1;4m? a/1/in_a_1[39;22;24;0m -[0;35;1;4m? a/in_a[39;22;24;0m -[0;35;1;4m? b/1/in_b_1[39;22;24;0m -[0;35;1;4m? b/2/in_b_2[39;22;24;0m -[0;35;1;4m? b/in_b[39;22;24;0m -[0;35;1;4m? in_root[39;22;24;0m +[0;35;1;4m? a/1/in_a_1[0m +[0;35;1;4m? a/in_a[0m +[0;35;1;4m? b/1/in_b_1[0m +[0;35;1;4m? b/2/in_b_2[0m +[0;35;1;4m? b/in_b[0m +[0;35;1;4m? in_root[0m hg status . in b: -[0;35;1;4m? 1/in_b_1[39;22;24;0m -[0;35;1;4m? 2/in_b_2[39;22;24;0m -[0;35;1;4m? in_b[39;22;24;0m +[0;35;1;4m? 1/in_b_1[0m +[0;35;1;4m? 2/in_b_2[0m +[0;35;1;4m? in_b[0m hg status .. in b: -[0;35;1;4m? ../a/1/in_a_1[39;22;24;0m -[0;35;1;4m? ../a/in_a[39;22;24;0m -[0;35;1;4m? 1/in_b_1[39;22;24;0m -[0;35;1;4m? 2/in_b_2[39;22;24;0m -[0;35;1;4m? in_b[39;22;24;0m -[0;35;1;4m? ../in_root[39;22;24;0m +[0;35;1;4m? ../a/1/in_a_1[0m +[0;35;1;4m? ../a/in_a[0m +[0;35;1;4m? 1/in_b_1[0m +[0;35;1;4m? 2/in_b_2[0m +[0;35;1;4m? in_b[0m +[0;35;1;4m? ../in_root[0m hg status in a/1: -[0;35;1;4m? a/1/in_a_1[39;22;24;0m -[0;35;1;4m? a/in_a[39;22;24;0m -[0;35;1;4m? b/1/in_b_1[39;22;24;0m -[0;35;1;4m? b/2/in_b_2[39;22;24;0m -[0;35;1;4m? b/in_b[39;22;24;0m -[0;35;1;4m? in_root[39;22;24;0m +[0;35;1;4m? a/1/in_a_1[0m +[0;35;1;4m? a/in_a[0m +[0;35;1;4m? b/1/in_b_1[0m +[0;35;1;4m? b/2/in_b_2[0m +[0;35;1;4m? b/in_b[0m +[0;35;1;4m? in_root[0m hg status . in a/1: -[0;35;1;4m? in_a_1[39;22;24;0m +[0;35;1;4m? in_a_1[0m hg status .. in a/1: -[0;35;1;4m? in_a_1[39;22;24;0m -[0;35;1;4m? ../in_a[39;22;24;0m +[0;35;1;4m? in_a_1[0m +[0;35;1;4m? ../in_a[0m hg status in b/1: -[0;35;1;4m? a/1/in_a_1[39;22;24;0m -[0;35;1;4m? a/in_a[39;22;24;0m -[0;35;1;4m? b/1/in_b_1[39;22;24;0m -[0;35;1;4m? b/2/in_b_2[39;22;24;0m -[0;35;1;4m? b/in_b[39;22;24;0m -[0;35;1;4m? in_root[39;22;24;0m +[0;35;1;4m? a/1/in_a_1[0m +[0;35;1;4m? a/in_a[0m +[0;35;1;4m? b/1/in_b_1[0m +[0;35;1;4m? b/2/in_b_2[0m +[0;35;1;4m? b/in_b[0m +[0;35;1;4m? in_root[0m hg status . in b/1: -[0;35;1;4m? in_b_1[39;22;24;0m +[0;35;1;4m? in_b_1[0m hg status .. in b/1: -[0;35;1;4m? in_b_1[39;22;24;0m -[0;35;1;4m? ../2/in_b_2[39;22;24;0m -[0;35;1;4m? ../in_b[39;22;24;0m +[0;35;1;4m? in_b_1[0m +[0;35;1;4m? ../2/in_b_2[0m +[0;35;1;4m? ../in_b[0m hg status in b/2: -[0;35;1;4m? a/1/in_a_1[39;22;24;0m -[0;35;1;4m? a/in_a[39;22;24;0m -[0;35;1;4m? b/1/in_b_1[39;22;24;0m -[0;35;1;4m? b/2/in_b_2[39;22;24;0m -[0;35;1;4m? b/in_b[39;22;24;0m -[0;35;1;4m? in_root[39;22;24;0m +[0;35;1;4m? a/1/in_a_1[0m +[0;35;1;4m? a/in_a[0m +[0;35;1;4m? b/1/in_b_1[0m +[0;35;1;4m? b/2/in_b_2[0m +[0;35;1;4m? b/in_b[0m +[0;35;1;4m? in_root[0m hg status . in b/2: -[0;35;1;4m? in_b_2[39;22;24;0m +[0;35;1;4m? in_b_2[0m hg status .. in b/2: -[0;35;1;4m? ../1/in_b_1[39;22;24;0m -[0;35;1;4m? in_b_2[39;22;24;0m -[0;35;1;4m? ../in_b[39;22;24;0m +[0;35;1;4m? ../1/in_b_1[0m +[0;35;1;4m? in_b_2[0m +[0;35;1;4m? ../in_b[0m adding .hgignore adding deleted adding modified adding removed hg status: -[0;32;1mA added[39;22;0m -[0;31;1mR removed[39;22;0m -[0;36;1;4m! deleted[39;22;24;0m -[0;35;1;4m? unknown[39;22;24;0m +[0;32;1mA added[0m +[0;31;1mR removed[0m +[0;36;1;4m! deleted[0m +[0;35;1;4m? unknown[0m hg status modified added removed deleted unknown never-existed ignored: never-existed: No such file or directory -[0;32;1mA added[39;22;0m -[0;31;1mR removed[39;22;0m -[0;36;1;4m! deleted[39;22;24;0m -[0;35;1;4m? unknown[39;22;24;0m +[0;32;1mA added[0m +[0;31;1mR removed[0m +[0;36;1;4m! deleted[0m +[0;35;1;4m? unknown[0m hg status -C: -[0;32;1mA added[39;22;0m -[0;32;1mA copied[39;22;0m -[0;0m modified[0;0m -[0;31;1mR removed[39;22;0m -[0;36;1;4m! deleted[39;22;24;0m -[0;35;1;4m? unknown[39;22;24;0m +[0;32;1mA added[0m +[0;32;1mA copied[0m +[0;0m modified[0m +[0;31;1mR removed[0m +[0;36;1;4m! deleted[0m +[0;35;1;4m? unknown[0m hg status -A: -[0;32;1mA added[39;22;0m -[0;32;1mA copied[39;22;0m -[0;0m modified[0;0m -[0;31;1mR removed[39;22;0m -[0;36;1;4m! deleted[39;22;24;0m -[0;35;1;4m? unknown[39;22;24;0m -[0;30;1mI ignored[39;22;0m -[0;0mC .hgignore[0;0m -[0;0mC modified[0;0m +[0;32;1mA added[0m +[0;32;1mA copied[0m +[0;0m modified[0m +[0;31;1mR removed[0m +[0;36;1;4m! deleted[0m +[0;35;1;4m? unknown[0m +[0;30;1mI ignored[0m +[0;0mC .hgignore[0m +[0;0mC modified[0m hg status ignoreddir/file: hg status -i ignoreddir/file: -[0;30;1mI ignoreddir/file[39;22;0m +[0;30;1mI ignoreddir/file[0m adding .hgignore adding deleted adding modified