public static FormatTextWriter Format(
[NotNull] this TextWriter writer,
Optional <int> width,
Optional <int> indentSize = default(Optional <int>),
Optional <int> rightMarginSize = default(Optional <int>),
Optional <char> indentChar = default(Optional <char>),
Optional <int> firstLineIndentSize = default(Optional <int>),
Optional <IEnumerable <int> > tabStops = default(Optional <IEnumerable <int> >),
Optional <byte> tabSize = default(Optional <byte>),
Optional <char> tabChar = default(Optional <char>),
Optional <Alignment> alignment = default(Optional <Alignment>),
Optional <byte> splitLength = default(Optional <byte>),
Optional <bool> hyphenate = default(Optional <bool>),
Optional <char> hyphenChar = default(Optional <char>),
Optional <LayoutWrapMode> wrapMode = default(Optional <LayoutWrapMode>),
ushort startPosition = 0)
{
if (writer == null)
{
throw new ArgumentNullException("writer");
}
FormatTextWriter ltw = writer as FormatTextWriter;
if (ltw == null)
{
return(new FormatTextWriter(
writer,
width,
indentSize,
rightMarginSize,
indentChar,
firstLineIndentSize,
tabStops,
tabSize,
tabChar,
alignment,
splitLength,
hyphenate,
hyphenChar,
wrapMode,
startPosition));
}
ltw.ApplyLayout(
width,
indentSize,
rightMarginSize,
indentChar,
firstLineIndentSize,
tabStops,
tabSize,
tabChar,
alignment,
splitLength,
hyphenate,
hyphenChar,
wrapMode);
return(ltw);
}