Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
IndentedTextWriter.cs
Go to the documentation of this file.
3using System.IO;
4using System.Text;
7
9
11{
12 private readonly TextWriter _writer;
13
14 private readonly string _tabString;
15
16 private int _indentLevel;
17
18 private bool _tabsPending;
19
20 public const string DefaultTabString = " ";
21
22 public override Encoding Encoding => _writer.Encoding;
23
24 public override string NewLine
25 {
26 get
27 {
28 return _writer.NewLine;
29 }
30 [param: AllowNull]
31 set
32 {
33 _writer.NewLine = value;
34 }
35 }
36
37 public int Indent
38 {
39 get
40 {
41 return _indentLevel;
42 }
43 set
44 {
46 }
47 }
48
50
52 : this(writer, " ")
53 {
54 }
55
56 public IndentedTextWriter(TextWriter writer, string tabString)
58 {
59 if (writer == null)
60 {
61 throw new ArgumentNullException("writer");
62 }
64 _tabString = tabString;
65 }
66
67 public override void Close()
68 {
69 _writer.Close();
70 }
71
72 public override ValueTask DisposeAsync()
73 {
74 return _writer.DisposeAsync();
75 }
76
77 public override void Flush()
78 {
79 _writer.Flush();
80 }
81
82 public override Task FlushAsync()
83 {
84 return _writer.FlushAsync();
85 }
86
87 protected virtual void OutputTabs()
88 {
89 if (_tabsPending)
90 {
91 for (int i = 0; i < _indentLevel; i++)
92 {
94 }
95 _tabsPending = false;
96 }
97 }
98
99 protected virtual async Task OutputTabsAsync()
100 {
101 if (_tabsPending)
102 {
103 for (int i = 0; i < _indentLevel; i++)
104 {
105 await _writer.WriteAsync(_tabString).ConfigureAwait(continueOnCapturedContext: false);
106 }
107 _tabsPending = false;
108 }
109 }
110
111 public override void Write(string? s)
112 {
113 OutputTabs();
114 _writer.Write(s);
115 }
116
117 public override void Write(bool value)
118 {
119 OutputTabs();
121 }
122
123 public override void Write(char value)
124 {
125 OutputTabs();
127 }
128
129 public override void Write(char[]? buffer)
130 {
131 OutputTabs();
133 }
134
135 public override void Write(char[] buffer, int index, int count)
136 {
137 OutputTabs();
139 }
140
141 public override void Write(double value)
142 {
143 OutputTabs();
145 }
146
147 public override void Write(float value)
148 {
149 OutputTabs();
151 }
152
153 public override void Write(int value)
154 {
155 OutputTabs();
157 }
158
159 public override void Write(long value)
160 {
161 OutputTabs();
163 }
164
165 public override void Write(object? value)
166 {
167 OutputTabs();
169 }
170
171 public override void Write(string format, object? arg0)
172 {
173 OutputTabs();
174 _writer.Write(format, arg0);
175 }
176
177 public override void Write(string format, object? arg0, object? arg1)
178 {
179 OutputTabs();
180 _writer.Write(format, arg0, arg1);
181 }
182
183 public override void Write(string format, params object?[] arg)
184 {
185 OutputTabs();
186 _writer.Write(format, arg);
187 }
188
189 public override async Task WriteAsync(char value)
190 {
191 await OutputTabsAsync().ConfigureAwait(continueOnCapturedContext: false);
192 await _writer.WriteAsync(value).ConfigureAwait(continueOnCapturedContext: false);
193 }
194
195 public override async Task WriteAsync(char[] buffer, int index, int count)
196 {
197 await OutputTabsAsync().ConfigureAwait(continueOnCapturedContext: false);
198 await _writer.WriteAsync(buffer, index, count).ConfigureAwait(continueOnCapturedContext: false);
199 }
200
201 public override async Task WriteAsync(string? value)
202 {
203 await OutputTabsAsync().ConfigureAwait(continueOnCapturedContext: false);
204 await _writer.WriteAsync(value).ConfigureAwait(continueOnCapturedContext: false);
205 }
206
208 {
209 await OutputTabsAsync().ConfigureAwait(continueOnCapturedContext: false);
210 await _writer.WriteAsync(buffer, cancellationToken).ConfigureAwait(continueOnCapturedContext: false);
211 }
212
214 {
215 await OutputTabsAsync().ConfigureAwait(continueOnCapturedContext: false);
216 await _writer.WriteAsync(value, cancellationToken).ConfigureAwait(continueOnCapturedContext: false);
217 }
218
219 public void WriteLineNoTabs(string? s)
220 {
222 }
223
225 {
226 return _writer.WriteLineAsync(s);
227 }
228
229 public override void WriteLine(string? s)
230 {
231 OutputTabs();
233 _tabsPending = true;
234 }
235
236 public override void WriteLine()
237 {
238 OutputTabs();
240 _tabsPending = true;
241 }
242
243 public override void WriteLine(bool value)
244 {
245 OutputTabs();
247 _tabsPending = true;
248 }
249
250 public override void WriteLine(char value)
251 {
252 OutputTabs();
254 _tabsPending = true;
255 }
256
257 public override void WriteLine(char[]? buffer)
258 {
259 OutputTabs();
261 _tabsPending = true;
262 }
263
264 public override void WriteLine(char[] buffer, int index, int count)
265 {
266 OutputTabs();
268 _tabsPending = true;
269 }
270
271 public override void WriteLine(double value)
272 {
273 OutputTabs();
275 _tabsPending = true;
276 }
277
278 public override void WriteLine(float value)
279 {
280 OutputTabs();
282 _tabsPending = true;
283 }
284
285 public override void WriteLine(int value)
286 {
287 OutputTabs();
289 _tabsPending = true;
290 }
291
292 public override void WriteLine(long value)
293 {
294 OutputTabs();
296 _tabsPending = true;
297 }
298
299 public override void WriteLine(object? value)
300 {
301 OutputTabs();
303 _tabsPending = true;
304 }
305
306 public override void WriteLine(string format, object? arg0)
307 {
308 OutputTabs();
309 _writer.WriteLine(format, arg0);
310 _tabsPending = true;
311 }
312
313 public override void WriteLine(string format, object? arg0, object? arg1)
314 {
315 OutputTabs();
316 _writer.WriteLine(format, arg0, arg1);
317 _tabsPending = true;
318 }
319
320 public override void WriteLine(string format, params object?[] arg)
321 {
322 OutputTabs();
324 _tabsPending = true;
325 }
326
327 [CLSCompliant(false)]
328 public override void WriteLine(uint value)
329 {
330 OutputTabs();
332 _tabsPending = true;
333 }
334
335 public override async Task WriteLineAsync()
336 {
337 await OutputTabsAsync().ConfigureAwait(continueOnCapturedContext: false);
338 await _writer.WriteLineAsync().ConfigureAwait(continueOnCapturedContext: false);
339 _tabsPending = true;
340 }
341
342 public override async Task WriteLineAsync(char value)
343 {
344 await OutputTabsAsync().ConfigureAwait(continueOnCapturedContext: false);
345 await _writer.WriteLineAsync(value).ConfigureAwait(continueOnCapturedContext: false);
346 _tabsPending = true;
347 }
348
349 public override async Task WriteLineAsync(char[] buffer, int index, int count)
350 {
351 await OutputTabsAsync().ConfigureAwait(continueOnCapturedContext: false);
352 await _writer.WriteLineAsync(buffer, index, count).ConfigureAwait(continueOnCapturedContext: false);
353 _tabsPending = true;
354 }
355
356 public override async Task WriteLineAsync(string? value)
357 {
358 await OutputTabsAsync().ConfigureAwait(continueOnCapturedContext: false);
359 await _writer.WriteLineAsync(value).ConfigureAwait(continueOnCapturedContext: false);
360 _tabsPending = true;
361 }
362
364 {
365 await OutputTabsAsync().ConfigureAwait(continueOnCapturedContext: false);
366 await _writer.WriteLineAsync(buffer, cancellationToken).ConfigureAwait(continueOnCapturedContext: false);
367 _tabsPending = true;
368 }
369
371 {
372 await OutputTabsAsync().ConfigureAwait(continueOnCapturedContext: false);
373 await _writer.WriteLineAsync(value, cancellationToken).ConfigureAwait(continueOnCapturedContext: false);
374 _tabsPending = true;
375 }
376}
override async Task WriteAsync(char[] buffer, int index, int count)
override async Task WriteLineAsync(char value)
override void Write(string format, object? arg0)
override void WriteLine(string format, params object?[] arg)
override void WriteLine(string format, object? arg0)
override async Task WriteAsync(StringBuilder? value, CancellationToken cancellationToken=default(CancellationToken))
override void WriteLine(string format, object? arg0, object? arg1)
override void WriteLine(char[] buffer, int index, int count)
IndentedTextWriter(TextWriter writer, string tabString)
override void Write(string format, object? arg0, object? arg1)
override async Task WriteLineAsync(StringBuilder? value, CancellationToken cancellationToken=default(CancellationToken))
override async Task WriteLineAsync(ReadOnlyMemory< char > buffer, CancellationToken cancellationToken=default(CancellationToken))
override async Task WriteLineAsync(string? value)
override void Write(char[] buffer, int index, int count)
override async Task WriteAsync(char value)
override async Task WriteLineAsync(char[] buffer, int index, int count)
override async Task WriteAsync(string? value)
override async Task WriteAsync(ReadOnlyMemory< char > buffer, CancellationToken cancellationToken=default(CancellationToken))
override void Write(string format, params object?[] arg)
virtual string NewLine
virtual void Close()
virtual Task WriteAsync(char value)
virtual Task WriteLineAsync(char value)
virtual Task FlushAsync()
virtual void Write(char value)
virtual void Flush()
virtual ValueTask DisposeAsync()
virtual void WriteLine()
static byte Max(byte val1, byte val2)
Definition Math.cs:738
new ConfiguredTaskAwaitable< TResult > ConfigureAwait(bool continueOnCapturedContext)
Definition Task.cs:226