Click or drag to resize

LineWrappingTextWriter Class

Implements a TextWriter that writes text to another TextWriter, wrapping lines at word boundaries at a specific maximum line length.
Inheritance Hierarchy

Namespace:  Ookii.CommandLine
Assembly:  Ookii.CommandLine (in Ookii.CommandLine.dll) Version: 2.3.0
Syntax
public class LineWrappingTextWriter : TextWriter

The LineWrappingTextWriter type exposes the following members.

Constructors
  NameDescription
Public methodLineWrappingTextWriter
Initializes a new instance of the LineWrappingTextWriter class.
Top
Properties
  NameDescription
Public propertyBaseWriter
Gets the TextWriter that this LineWrappingTextWriter is writing to.
Public propertyEncoding
Returns the Encoding in which the output is written.
(Overrides TextWriterEncoding.)
Public propertyFormatProvider (Inherited from TextWriter.)
Public propertyIndent
Gets or sets the amount of characters to indent all but the first line.
Public propertyMaximumLineLength
Gets the maximum length of a line in the output.
Public propertyNewLine (Inherited from TextWriter.)
Top
Methods
  NameDescription
Public methodClose (Inherited from TextWriter.)
Public methodCreateObjRef (Inherited from MarshalByRefObject.)
Public methodDispose (Inherited from TextWriter.)
Protected methodDispose(Boolean)
Releases the unmanaged resources used by the LineWrappingTextWriter and optionally releases the managed resources.
(Overrides TextWriterDispose(Boolean).)
Public methodEquals (Inherited from Object.)
Protected methodFinalize (Inherited from Object.)
Public methodFlush
Clears all buffers for the current writer and causes any buffered data to be written to the underlying device.
(Overrides TextWriterFlush.)
Public methodStatic memberForConsoleError
Gets a LineWrappingTextWriter that writes to the standard error stream.
Public methodStatic memberForConsoleOut
Gets a LineWrappingTextWriter that writes to the standard output stream.
Public methodStatic memberForStringWriter(Int32)
Gets a LineWrappingTextWriter that writes to a StringWriter.
Public methodStatic memberForStringWriter(Int32, IFormatProvider)
Gets a LineWrappingTextWriter that writes to a StringWriter using the specified format provider.
Public methodGetHashCode (Inherited from Object.)
Public methodGetLifetimeService (Inherited from MarshalByRefObject.)
Public methodGetType (Inherited from Object.)
Public methodInitializeLifetimeService (Inherited from MarshalByRefObject.)
Protected methodMemberwiseClone (Inherited from Object.)
Protected methodMemberwiseClone(Boolean) (Inherited from MarshalByRefObject.)
Public methodResetIndent
Restarts writing on the beginning of the line, without indenting that line.
Public methodToString (Inherited from Object.)
Public methodWrite(Char) (Inherited from TextWriter.)
Public methodWrite(Boolean) (Inherited from TextWriter.)
Public methodWrite(Int32) (Inherited from TextWriter.)
Public methodWrite(UInt32) (Inherited from TextWriter.)
Public methodWrite(Int64) (Inherited from TextWriter.)
Public methodWrite(UInt64) (Inherited from TextWriter.)
Public methodWrite(Single) (Inherited from TextWriter.)
Public methodWrite(Double) (Inherited from TextWriter.)
Public methodWrite(Decimal) (Inherited from TextWriter.)
Public methodWrite(Object) (Inherited from TextWriter.)
Public methodWrite(Char)
Writes a character to the text stream.
(Overrides TextWriterWrite(Char).)
Public methodWrite(String)
Writes a string to the text stream.
(Overrides TextWriterWrite(String).)
Public methodWrite(String, Object) (Inherited from TextWriter.)
Public methodWrite(String, Object) (Inherited from TextWriter.)
Public methodWrite(String, Object, Object) (Inherited from TextWriter.)
Public methodWrite(Char, Int32, Int32)
Writes a subarray of characters to the text stream.
(Overrides TextWriterWrite(Char, Int32, Int32).)
Public methodWrite(String, Object, Object, Object) (Inherited from TextWriter.)
Public methodWriteLine (Inherited from TextWriter.)
Public methodWriteLine(Char) (Inherited from TextWriter.)
Public methodWriteLine(Char) (Inherited from TextWriter.)
Public methodWriteLine(Boolean) (Inherited from TextWriter.)
Public methodWriteLine(Int32) (Inherited from TextWriter.)
Public methodWriteLine(UInt32) (Inherited from TextWriter.)
Public methodWriteLine(Int64) (Inherited from TextWriter.)
Public methodWriteLine(UInt64) (Inherited from TextWriter.)
Public methodWriteLine(Single) (Inherited from TextWriter.)
Public methodWriteLine(Double) (Inherited from TextWriter.)
Public methodWriteLine(Decimal) (Inherited from TextWriter.)
Public methodWriteLine(String) (Inherited from TextWriter.)
Public methodWriteLine(Object) (Inherited from TextWriter.)
Public methodWriteLine(String, Object) (Inherited from TextWriter.)
Public methodWriteLine(String, Object) (Inherited from TextWriter.)
Public methodWriteLine(Char, Int32, Int32) (Inherited from TextWriter.)
Public methodWriteLine(String, Object, Object) (Inherited from TextWriter.)
Public methodWriteLine(String, Object, Object, Object) (Inherited from TextWriter.)
Top
Fields
  NameDescription
Protected fieldCoreNewLine (Inherited from TextWriter.)
Top
Remarks

The LineWrappingTextWriter will buffer the data written to it until an explicit new line is present in the text, or until the length of the buffered data exceeds the value of the MaximumLineLength property.

If the length of the buffered data exceeds the value of the MaximumLineLength property, the LineWrappingTextWriter will attempt to find a white space character to break the line at. If such a white space character is found, everything before that character is output to the BaseWriter, and everything after that character is kept in the buffer. The white space character itself is not written to the output.

If no suitable place to break the line could be found, the line is broken at the maximum line length. This may occur in the middle of a word.

After a line break (either one that was caused by wrapping or one that was part of the text), the next line is indented by the number of characters specified by the Indent property. The length of the indentation counts towards the maximum line length.

When the Flush method is called, the current contents of the buffer are written to the BaseWriter, followed by a new line, unless the buffer is empty. If the buffer contains only indentation, it is considered empty and no new line is written. Calling Flush has the same effect as writing a new line to the LineWrappingTextWriter if the buffer is not empty. The LineWrappingTextWriter is flushed when the Dispose(Boolean) method is called.

The ResetIndent property can be used to move the output position back to the beginning of the line. If the buffer is not empty, is is first flushed and indentation is reset to zero on the next line. After the next line break, indentation will again be set to the value of the Indent property.

See Also