Skip to content

Commit

Permalink
Update terminal colors
Browse files Browse the repository at this point in the history
Minor update to make the colors a bit more visible on light
background screen.
  • Loading branch information
tidwall committed Oct 1, 2022
1 parent c563d2c commit 9090695
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 16 deletions.
22 changes: 15 additions & 7 deletions pretty.go
Original file line number Diff line number Diff line change
Expand Up @@ -422,6 +422,7 @@ type Style struct {
Key, String, Number [2]string
True, False, Null [2]string
Escape [2]string
Brackets [2]string
Append func(dst []byte, c byte) []byte
}

Expand All @@ -439,13 +440,14 @@ var TerminalStyle *Style

func init() {
TerminalStyle = &Style{
Key: [2]string{"\x1B[94m", "\x1B[0m"},
String: [2]string{"\x1B[92m", "\x1B[0m"},
Number: [2]string{"\x1B[93m", "\x1B[0m"},
True: [2]string{"\x1B[96m", "\x1B[0m"},
False: [2]string{"\x1B[96m", "\x1B[0m"},
Null: [2]string{"\x1B[91m", "\x1B[0m"},
Escape: [2]string{"\x1B[35m", "\x1B[0m"},
Key: [2]string{"\x1B[1m\x1B[94m", "\x1B[0m"},
String: [2]string{"\x1B[32m", "\x1B[0m"},
Number: [2]string{"\x1B[33m", "\x1B[0m"},
True: [2]string{"\x1B[36m", "\x1B[0m"},
False: [2]string{"\x1B[36m", "\x1B[0m"},
Null: [2]string{"\x1B[2m", "\x1B[0m"},
Escape: [2]string{"\x1B[35m", "\x1B[0m"},
Brackets: [2]string{"\x1B[1m", "\x1B[0m"},
Append: func(dst []byte, c byte) []byte {
if c < ' ' && (c != '\r' && c != '\n' && c != '\t' && c != '\v') {
dst = append(dst, "\\u00"...)
Expand Down Expand Up @@ -539,13 +541,19 @@ func Color(src []byte, style *Style) []byte {
}
} else if src[i] == '{' || src[i] == '[' {
stack = append(stack, stackt{src[i], src[i] == '{'})
dst = append(dst, style.Brackets[0]...)
dst = apnd(dst, src[i])
dst = append(dst, style.Brackets[1]...)
} else if (src[i] == '}' || src[i] == ']') && len(stack) > 0 {
stack = stack[:len(stack)-1]
dst = append(dst, style.Brackets[0]...)
dst = apnd(dst, src[i])
dst = append(dst, style.Brackets[1]...)
} else if (src[i] == ':' || src[i] == ',') && len(stack) > 0 && stack[len(stack)-1].kind == '{' {
stack[len(stack)-1].key = !stack[len(stack)-1].key
dst = append(dst, style.Brackets[0]...)
dst = apnd(dst, src[i])
dst = append(dst, style.Brackets[1]...)
} else {
var kind byte
if (src[i] >= '0' && src[i] <= '9') || src[i] == '-' || isNaNOrInf(src[i:]) {
Expand Down
18 changes: 9 additions & 9 deletions pretty_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -373,15 +373,15 @@ func TestColor(t *testing.T) {
"arr":["1","2",1,2,true,false,null],
"obj":{"key1":null,"ar`+"\x1B[36m"+`Cyanr2":[1,2,3,"123","456"]}}
`)), nil)
if string(res) != `{
[94m"hello"[0m: [92m"world"[0m,
[94m"what"[0m: [93m123[0m,
[94m"arr"[0m: [[92m"1"[0m, [92m"2"[0m, [93m1[0m, [93m2[0m, [96mtrue[0m, [96mfalse[0m, [91mnull[0m],
[94m"obj"[0m: {
[94m"key1"[0m: [91mnull[0m,
[94m"ar\u001b[36mCyanr2"[0m: [[93m1[0m, [93m2[0m, [93m3[0m, [92m"123"[0m, [92m"456"[0m]
}
}
if string(res) != `[1m{[0m
[1m[94m"hello"[0m[1m:[0m [32m"world"[0m[1m,[0m
[1m[94m"what"[0m[1m:[0m [33m123[0m[1m,[0m
[1m[94m"arr"[0m[1m:[0m [1m[[0m[32m"1"[0m, [32m"2"[0m, [33m1[0m, [33m2[0m, [36mtrue[0m, [36mfalse[0m, [2mnull[0m[1m][0m[1m,[0m
[1m[94m"obj"[0m[1m:[0m [1m{[0m
[1m[94m"key1"[0m[1m:[0m [2mnull[0m[1m,[0m
[1m[94m"ar\u001b[36mCyanr2"[0m[1m:[0m [1m[[0m[33m1[0m, [33m2[0m, [33m3[0m, [32m"123"[0m, [32m"456"[0m[1m][0m
[1m}[0m
[1m}[0m
` {
t.Fatal("invalid output")
}
Expand Down

0 comments on commit 9090695

Please sign in to comment.