File tree Expand file tree Collapse file tree 1 file changed +31
-10
lines changed
Expand file tree Collapse file tree 1 file changed +31
-10
lines changed Original file line number Diff line number Diff line change @@ -226,6 +226,27 @@ CancellationToken cancellationToken
226226 }
227227 }
228228
229+ async IAsyncEnumerable < string > EnumerateNonignoredFiles ( string directory )
230+ {
231+ foreach ( var file in fileSystem . Directory . EnumerateFiles ( directory ) )
232+ {
233+ yield return file ;
234+ }
235+
236+ foreach ( var subdirectory in fileSystem . Directory . EnumerateDirectories ( directory ) )
237+ {
238+ if ( await optionsProvider . IsIgnoredAsync ( subdirectory , cancellationToken ) )
239+ {
240+ continue ;
241+ }
242+
243+ await foreach ( var file in EnumerateNonignoredFiles ( subdirectory ) )
244+ {
245+ yield return file ;
246+ }
247+ }
248+ }
249+
229250 async Task FormatFile (
230251 string actualFilePath ,
231252 string originalFilePath ,
@@ -292,16 +313,16 @@ await FormatPhysicalFile(
292313 return 1 ;
293314 }
294315
295- var tasks = fileSystem
296- . Directory . EnumerateFiles (
297- directoryOrFilePath ,
298- "*.*" ,
299- SearchOption . AllDirectories
300- )
301- . Select ( o =>
302- FormatFile ( o , o . Replace ( directoryOrFilePath , originalDirectoryOrFile ) )
303- )
304- . ToArray ( ) ;
316+ var tasks = new List < Task > ( ) ;
317+ await foreach (
318+ var file in EnumerateNonignoredFiles ( directoryOrFilePath )
319+ . WithCancellation ( cancellationToken )
320+ )
321+ {
322+ var relativePath = file . Replace ( directoryOrFilePath , originalDirectoryOrFile ) ;
323+ tasks . Add ( FormatFile ( file , relativePath ) ) ;
324+ }
325+
305326 try
306327 {
307328 await Task . WhenAll ( tasks ) . WaitAsync ( cancellationToken ) ;
You can’t perform that action at this time.
0 commit comments