code: func NewResponsiveWriter(w io.Writer) io.Writer {
  	file, ok := w.(*os.File)
  	if !ok {
  		return w
  	}
  	fd := file.Fd()
  	if !term.IsTerminal(fd) {
  		return w
  	}
  
  	terminalSize := GetSize(fd)
  	if terminalSize == nil {
  		return w
  	}
  
  	var limit uint
  	switch {
  	case terminalSize.Width >= 120:
  		limit = 120
  	case terminalSize.Width >= 100:
  		limit = 100
  	case terminalSize.Width >= 80:
  		limit = 80
  	}
  
  	return NewWordWrapWriter(w, limit)
  }
docs: // NewResponsiveWriter creates a Writer that detects the column width of the
  // terminal we are in, and adjusts every line width to fit and use recommended
  // terminal sizes for better readability. Does proper word wrapping automatically.
  //    if terminal width >= 120 columns		use 120 columns
  //    if terminal width >= 100 columns		use 100 columns
  //    if terminal width >=  80 columns		use  80 columns
  // In case we're not in a terminal or if it's smaller than 80 columns width,
  // doesn't do any wrapping.