41 строка
1,2 КиБ
Go
41 строка
1,2 КиБ
Go
// Copyright 2014 shiena Authors. All rights reserved.
|
|
// Use of this source code is governed by a MIT-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package colors
|
|
|
|
import "io"
|
|
|
|
type outputMode int
|
|
|
|
// DiscardNonColorEscSeq supports the divided color escape sequence.
|
|
// But non-color escape sequence is not output.
|
|
// Please use the OutputNonColorEscSeq If you want to output a non-color
|
|
// escape sequences such as ncurses. However, it does not support the divided
|
|
// color escape sequence.
|
|
const (
|
|
_ outputMode = iota
|
|
discardNonColorEscSeq
|
|
outputNonColorEscSeq // unused
|
|
)
|
|
|
|
// Colored creates and initializes a new ansiColorWriter
|
|
// using io.Writer w as its initial contents.
|
|
// In the console of Windows, which change the foreground and background
|
|
// colors of the text by the escape sequence.
|
|
// In the console of other systems, which writes to w all text.
|
|
func Colored(w io.Writer) io.Writer {
|
|
return createModeAnsiColorWriter(w, discardNonColorEscSeq)
|
|
}
|
|
|
|
// NewModeAnsiColorWriter create and initializes a new ansiColorWriter
|
|
// by specifying the outputMode.
|
|
func createModeAnsiColorWriter(w io.Writer, mode outputMode) io.Writer {
|
|
if _, ok := w.(*ansiColorWriter); !ok {
|
|
return &ansiColorWriter{
|
|
w: w,
|
|
mode: mode,
|
|
}
|
|
}
|
|
return w
|
|
}
|