2 // System.CodeDom.Compiler IndentedTextWriter class
5 // Daniel Stodden (stodden@in.tum.de)
7 // (C) 2002 Ximian, Inc.
11 // Permission is hereby granted, free of charge, to any person obtaining
12 // a copy of this software and associated documentation files (the
13 // "Software"), to deal in the Software without restriction, including
14 // without limitation the rights to use, copy, modify, merge, publish,
15 // distribute, sublicense, and/or sell copies of the Software, and to
16 // permit persons to whom the Software is furnished to do so, subject to
17 // the following conditions:
19 // The above copyright notice and this permission notice shall be
20 // included in all copies or substantial portions of the Software.
22 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
26 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
27 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
34 namespace System.CodeDom.Compiler {
36 public class IndentedTextWriter
39 private TextWriter writer;
40 private string tabString;
47 public IndentedTextWriter( TextWriter writer )
50 this.tabString = DefaultTabString;
54 public IndentedTextWriter( TextWriter writer, string tabString )
57 this.tabString = tabString;
65 public const string DefaultTabString = " ";
70 public override Encoding Encoding {
72 return writer.Encoding;
85 public TextWriter InnerWriter {
91 public override string NewLine {
93 return writer.NewLine;
96 writer.NewLine = value;
103 public override void Close()
108 public override void Flush()
113 public override void Write( bool value )
116 writer.Write( value );
119 public override void Write( char value )
122 writer.Write( value );
125 public override void Write( char[] value )
128 writer.Write( value );
131 public override void Write( double value )
134 writer.Write( value );
137 public override void Write( int value )
140 writer.Write( value );
143 public override void Write( long value )
146 writer.Write( value );
149 public override void Write( object value )
152 writer.Write( value );
155 public override void Write( float value )
158 writer.Write( value );
161 public override void Write( string value )
164 writer.Write( value );
167 public override void Write( string format, object arg )
170 writer.Write( format, arg );
173 public override void Write( string format, params object[] args )
176 writer.Write( format, args );
179 public override void Write( char[] buffer, int index, int count )
182 writer.Write( buffer, index, count );
185 public override void Write( string format, object arg0, object arg1 )
188 writer.Write( format, arg0, arg1 );
192 public override void WriteLine()
198 public override void WriteLine( bool value )
201 writer.WriteLine( value );
205 public override void WriteLine( char value )
208 writer.WriteLine( value );
212 public override void WriteLine( char[] value )
215 writer.WriteLine( value );
219 public override void WriteLine( double value )
222 writer.WriteLine( value );
226 public override void WriteLine( int value )
229 writer.WriteLine( value );
233 public override void WriteLine( long value )
236 writer.WriteLine( value );
240 public override void WriteLine( object value )
243 writer.WriteLine( value );
247 public override void WriteLine( float value )
250 writer.WriteLine( value );
254 public override void WriteLine( string value )
257 writer.WriteLine( value );
261 [CLSCompliant(false)]
262 public override void WriteLine( uint value )
265 writer.WriteLine( value );
269 public override void WriteLine( string format, object arg )
272 writer.WriteLine( format, arg );
276 public override void WriteLine( string format, params object[] args )
279 writer.WriteLine( format, args );
283 public override void WriteLine( char[] buffer, int index, int count )
286 writer.WriteLine( buffer, index, count );
290 public override void WriteLine( string format, object arg0, object arg1 )
293 writer.WriteLine( format, arg0, arg1 );
298 public void WriteLineNoTabs( string value )
300 writer.WriteLine( value );
305 protected virtual void OutputTabs()
308 for ( int i = 0; i < indent; ++i )
309 writer.Write( tabString );