From f94d502da61a6851b0e28fea66d9b1b6f11c501d Mon Sep 17 00:00:00 2001 From: Alex Hoppen Date: Mon, 30 Sep 2024 22:20:21 -0700 Subject: [PATCH] Skip files and directories starting with `.` on Windows Windows does not consider files and directories starting with `.` as hidden but we don't want to traverse into eg. `.build`. Manually skip any items starting with `.`. --- Sources/SwiftFormat/Utilities/FileIterator.swift | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Sources/SwiftFormat/Utilities/FileIterator.swift b/Sources/SwiftFormat/Utilities/FileIterator.swift index 86f099cfc..d274d71c3 100644 --- a/Sources/SwiftFormat/Utilities/FileIterator.swift +++ b/Sources/SwiftFormat/Utilities/FileIterator.swift @@ -113,6 +113,14 @@ public struct FileIterator: Sequence, IteratorProtocol { guard let item = dirIterator?.nextObject() as? URL else { break } + #if os(Windows) + // Windows does not consider files and directories starting with `.` as hidden but we don't want to traverse + // into eg. `.build`. Manually skip any items starting with `.`. + if item.lastPathComponent.hasPrefix(".") { + dirIterator?.skipDescendants() + continue + } + #endif guard item.lastPathComponent.hasSuffix(fileSuffix), let fileType = fileType(at: item) else { continue