type wordWrapWriter … // 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. func NewResponsiveWriter(w io.Writer) io.Writer { … } // NewWordWrapWriter is a Writer that supports a limit of characters on every line // and does auto word wrapping that respects that limit. func NewWordWrapWriter(w io.Writer, limit uint) io.Writer { … } func getTerminalLimitWidth(terminalSize *remotecommand.TerminalSize) uint { … } func GetWordWrapperLimit() (uint, error) { … } func (w wordWrapWriter) Write(p []byte) (nn int, err error) { … } // NewPunchCardWriter is a NewWordWrapWriter that limits the line width to 80 columns. func NewPunchCardWriter(w io.Writer) io.Writer { … } type maxWidthWriter … // NewMaxWidthWriter is a Writer that supports a limit of characters on every // line, but doesn't do any word wrapping automatically. func NewMaxWidthWriter(w io.Writer, maxWidth uint) io.Writer { … } func (m maxWidthWriter) Write(p []byte) (nn int, err error) { … }