You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.3 KiB
43 lines
1.3 KiB
2 years ago
|
// 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 ansicolor provides color console in Windows as ANSICON.
|
||
|
package ansicolor
|
||
|
|
||
|
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
|
||
|
)
|
||
|
|
||
|
// NewAnsiColorWriter 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 NewAnsiColorWriter(w io.Writer) io.Writer {
|
||
|
return NewModeAnsiColorWriter(w, DiscardNonColorEscSeq)
|
||
|
}
|
||
|
|
||
|
// NewModeAnsiColorWriter create and initializes a new ansiColorWriter
|
||
|
// by specifying the outputMode.
|
||
|
func NewModeAnsiColorWriter(w io.Writer, mode outputMode) io.Writer {
|
||
|
if _, ok := w.(*ansiColorWriter); !ok {
|
||
|
return &ansiColorWriter{
|
||
|
w: w,
|
||
|
mode: mode,
|
||
|
}
|
||
|
}
|
||
|
return w
|
||
|
}
|