text: package stenographer
  
  import (
  	"fmt"
  	"strings"
  )
  
  func (s *consoleStenographer) colorize(colorCode string, format string, args ...interface{}) string {
  	var out string
  
  	if len(args) > 0 {
  		out = fmt.Sprintf(format, args...)
  	} else {
  		out = format
  	}
  
  	if s.color {
  		return fmt.Sprintf("%s%s%s", colorCode, out, defaultStyle)
  	} else {
  		return out
  	}
  }
  
  func (s *consoleStenographer) printBanner(text string, bannerCharacter string) {
  	fmt.Fprintln(s.w, text)
  	fmt.Fprintln(s.w, strings.Repeat(bannerCharacter, len(text)))
  }
  
  func (s *consoleStenographer) printNewLine() {
  	fmt.Fprintln(s.w, "")
  }
  
  func (s *consoleStenographer) printDelimiter() {
  	fmt.Fprintln(s.w, s.colorize(grayColor, "%s", strings.Repeat("-", 30)))
  }
  
  func (s *consoleStenographer) print(indentation int, format string, args ...interface{}) {
  	fmt.Fprint(s.w, s.indent(indentation, format, args...))
  }
  
  func (s *consoleStenographer) println(indentation int, format string, args ...interface{}) {
  	fmt.Fprintln(s.w, s.indent(indentation, format, args...))
  }
  
  func (s *consoleStenographer) indent(indentation int, format string, args ...interface{}) string {
  	var text string
  
  	if len(args) > 0 {
  		text = fmt.Sprintf(format, args...)
  	} else {
  		text = format
  	}
  
  	stringArray := strings.Split(text, "\n")
  	padding := ""
  	if indentation >= 0 {
  		padding = strings.Repeat("  ", indentation)
  	}
  	for i, s := range stringArray {
  		stringArray[i] = fmt.Sprintf("%s%s", padding, s)
  	}
  
  	return strings.Join(stringArray, "\n")
  }
  