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.4.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
Gets an object that controls formatting.
(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
Gets or sets the line terminator string used by the current TextWriter.
(Inherited from TextWriter.)
Top
Methods
  NameDescription
Public methodClose
Closes the current writer and releases any system resources associated with the writer.
(Inherited from TextWriter.)
Public methodDispose
Releases all resources used by the TextWriter object.
(Inherited from TextWriter.)
Protected methodDispose(Boolean)
Releases the unmanaged resources used by the LineWrappingTextWriter and optionally releases the managed resources.
(Overrides TextWriterDispose(Boolean).)
Public methodDisposeAsync
Asynchronously releases all resources used by the TextWriter object.
(Inherited from TextWriter.)
Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Protected methodFinalize
Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(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 methodFlushAsync
Asynchronously clears all buffers for the current writer and causes any buffered data to be written to the underlying device.
(Inherited from TextWriter.)
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
Serves as the default hash function.
(Inherited from Object.)
Public methodGetLifetimeService Obsolete.
Retrieves the current lifetime service object that controls the lifetime policy for this instance.
(Inherited from MarshalByRefObject.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodInitializeLifetimeService Obsolete.
Obtains a lifetime service object to control the lifetime policy for this instance.
(Inherited from MarshalByRefObject.)
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Protected methodMemberwiseClone(Boolean)
Creates a shallow copy of the current MarshalByRefObject object.
(Inherited from MarshalByRefObject.)
Public methodResetIndent
Restarts writing on the beginning of the line, without indenting that line.
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Public methodWrite(Boolean)
Writes the text representation of a Boolean value to the text stream.
(Inherited from TextWriter.)
Public methodWrite(Char)
Writes a character to the text stream.
(Overrides TextWriterWrite(Char).)
Public methodWrite(Char)
Writes a character array to the text stream.
(Inherited from TextWriter.)
Public methodWrite(Decimal)
Writes the text representation of a decimal value to the text stream.
(Inherited from TextWriter.)
Public methodWrite(Double)
Writes the text representation of an 8-byte floating-point value to the text stream.
(Inherited from TextWriter.)
Public methodWrite(Int32)
Writes the text representation of a 4-byte signed integer to the text stream.
(Inherited from TextWriter.)
Public methodWrite(Int64)
Writes the text representation of an 8-byte signed integer to the text stream.
(Inherited from TextWriter.)
Public methodWrite(Object)
Writes the text representation of an object to the text stream by calling the ToString method on that object.
(Inherited from TextWriter.)
Public methodWrite(ReadOnlySpanChar)
Writes a character span to the text stream.
(Inherited from TextWriter.)
Public methodWrite(Single)
Writes the text representation of a 4-byte floating-point value to the text stream.
(Inherited from TextWriter.)
Public methodWrite(String)
Writes a string to the text stream.
(Overrides TextWriterWrite(String).)
Public methodWrite(StringBuilder)
Writes a string builder to the text stream.
(Inherited from TextWriter.)
Public methodWrite(UInt32)
Writes the text representation of a 4-byte unsigned integer to the text stream.
(Inherited from TextWriter.)
Public methodWrite(UInt64)
Writes the text representation of an 8-byte unsigned integer to the text stream.
(Inherited from TextWriter.)
Public methodWrite(String, Object)
Writes a formatted string to the text stream, using the same semantics as the Format(String, Object) method.
(Inherited from TextWriter.)
Public methodWrite(String, 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)
Writes a formatted string to the text stream using the same semantics as the Format(String, Object, Object) method.
(Inherited from TextWriter.)
Public methodWrite(String, Object, Object, Object)
Writes a formatted string to the text stream, using the same semantics as the Format(String, Object, Object, Object) method.
(Inherited from TextWriter.)
Public methodWriteAsync(Char)
Writes a character to the text stream asynchronously.
(Inherited from TextWriter.)
Public methodWriteAsync(Char)
Writes a character array to the text stream asynchronously.
(Inherited from TextWriter.)
Public methodWriteAsync(String)
Writes a string to the text stream asynchronously.
(Inherited from TextWriter.)
Public methodWriteAsync(ReadOnlyMemoryChar, CancellationToken)
Asynchronously writes a character memory region to the text stream.
(Inherited from TextWriter.)
Public methodWriteAsync(StringBuilder, CancellationToken)
Asynchronously writes a string builder to the text stream.
(Inherited from TextWriter.)
Public methodWriteAsync(Char, Int32, Int32)
Writes a subarray of characters to the text stream asynchronously.
(Inherited from TextWriter.)
Public methodWriteLine
Writes a line terminator to the text stream.
(Inherited from TextWriter.)
Public methodWriteLine(Boolean)
Writes the text representation of a Boolean value to the text stream, followed by a line terminator.
(Inherited from TextWriter.)
Public methodWriteLine(Char)
Writes a character to the text stream, followed by a line terminator.
(Inherited from TextWriter.)
Public methodWriteLine(Char)
Writes an array of characters to the text stream, followed by a line terminator.
(Inherited from TextWriter.)
Public methodWriteLine(Decimal)
Writes the text representation of a decimal value to the text stream, followed by a line terminator.
(Inherited from TextWriter.)
Public methodWriteLine(Double)
Writes the text representation of a 8-byte floating-point value to the text stream, followed by a line terminator.
(Inherited from TextWriter.)
Public methodWriteLine(Int32)
Writes the text representation of a 4-byte signed integer to the text stream, followed by a line terminator.
(Inherited from TextWriter.)
Public methodWriteLine(Int64)
Writes the text representation of an 8-byte signed integer to the text stream, followed by a line terminator.
(Inherited from TextWriter.)
Public methodWriteLine(Object)
Writes the text representation of an object to the text stream, by calling the ToString method on that object, followed by a line terminator.
(Inherited from TextWriter.)
Public methodWriteLine(ReadOnlySpanChar)
Writes the text representation of a character span to the text stream, followed by a line terminator.
(Inherited from TextWriter.)
Public methodWriteLine(Single)
Writes the text representation of a 4-byte floating-point value to the text stream, followed by a line terminator.
(Inherited from TextWriter.)
Public methodWriteLine(String)
Writes a string to the text stream, followed by a line terminator.
(Inherited from TextWriter.)
Public methodWriteLine(StringBuilder)
Writes the text representation of a string builder to the text stream, followed by a line terminator.
(Inherited from TextWriter.)
Public methodWriteLine(UInt32)
Writes the text representation of a 4-byte unsigned integer to the text stream, followed by a line terminator.
(Inherited from TextWriter.)
Public methodWriteLine(UInt64)
Writes the text representation of an 8-byte unsigned integer to the text stream, followed by a line terminator.
(Inherited from TextWriter.)
Public methodWriteLine(String, Object)
Writes a formatted string and a new line to the text stream, using the same semantics as the Format(String, Object) method.
(Inherited from TextWriter.)
Public methodWriteLine(String, Object)
Writes out a formatted string and a new line to the text stream, using the same semantics as Format(String, Object).
(Inherited from TextWriter.)
Public methodWriteLine(Char, Int32, Int32)
Writes a subarray of characters to the text stream, followed by a line terminator.
(Inherited from TextWriter.)
Public methodWriteLine(String, Object, Object)
Writes a formatted string and a new line to the text stream, using the same semantics as the Format(String, Object, Object) method.
(Inherited from TextWriter.)
Public methodWriteLine(String, Object, Object, Object)
Writes out a formatted string and a new line to the text stream, using the same semantics as Format(String, Object).
(Inherited from TextWriter.)
Public methodWriteLineAsync
Asynchronously writes a line terminator to the text stream.
(Inherited from TextWriter.)
Public methodWriteLineAsync(Char)
Asynchronously writes a character to the text stream, followed by a line terminator.
(Inherited from TextWriter.)
Public methodWriteLineAsync(Char)
Asynchronously writes an array of characters to the text stream, followed by a line terminator.
(Inherited from TextWriter.)
Public methodWriteLineAsync(String)
Asynchronously writes a string to the text stream, followed by a line terminator.
(Inherited from TextWriter.)
Public methodWriteLineAsync(ReadOnlyMemoryChar, CancellationToken)
Asynchronously writes the text representation of a character memory region to the text stream, followed by a line terminator.
(Inherited from TextWriter.)
Public methodWriteLineAsync(StringBuilder, CancellationToken)
Asynchronously writes the text representation of a string builder to the text stream, followed by a line terminator.
(Inherited from TextWriter.)
Public methodWriteLineAsync(Char, Int32, Int32)
Asynchronously writes a subarray of characters to the text stream, followed by a line terminator.
(Inherited from TextWriter.)
Top
Fields
  NameDescription
Protected fieldCoreNewLine
Stores the newline characters used for this TextWriter.
(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