From e47d64548632ac43e801b15b1e58fbb5853cb4b3 Mon Sep 17 00:00:00 2001 From: Zachary Yedidia Date: Tue, 22 Mar 2016 10:31:08 -0400 Subject: [PATCH] Add true color support with MICRO_TRUECOLOR environment var --- src/colorscheme.go | 2 +- src/micro.go | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/colorscheme.go b/src/colorscheme.go index 996b2b56..1c32cd97 100644 --- a/src/colorscheme.go +++ b/src/colorscheme.go @@ -9,7 +9,7 @@ import ( "strings" ) -const colorschemeName = "solarized" +const colorschemeName = "default" // Colorscheme is a map from string to style -- it represents a colorscheme type Colorscheme map[string]tcell.Style diff --git a/src/micro.go b/src/micro.go index 580cb584..f4b0190b 100644 --- a/src/micro.go +++ b/src/micro.go @@ -41,7 +41,14 @@ func main() { LoadSyntaxFiles() - s, e := tcell.NewScreen() + truecolor := os.Getenv("MICRO_TRUECOLOR") == "1" + + oldTerm := os.Getenv("TERM") + if truecolor { + os.Setenv("TERM", "xterm-truecolor") + } + + s, e := tcell.NewTerminfoScreen() if e != nil { fmt.Fprintf(os.Stderr, "%v\n", e) os.Exit(1) @@ -51,6 +58,10 @@ func main() { os.Exit(1) } + if truecolor { + os.Setenv("TERM", oldTerm) + } + defer func() { if err := recover(); err != nil { s.Fini() @@ -64,6 +75,10 @@ func main() { Background(tcell.ColorDefault). Foreground(tcell.ColorDefault) + if _, ok := colorscheme["default"]; ok { + defStyle = colorscheme["default"] + } + s.SetStyle(defStyle) s.EnableMouse()