diff --git a/CHANGELOG.md b/CHANGELOG.md index 5000381d2..83f674851 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,7 +10,10 @@ ##### Bug Fixes -* None. +* “.swift”-suffixed directory in xcodebuild arguments no longer detected as + Swift file. + [Minh Nguyễn](https://github.com/1ec5) + [#574](https://github.com/jpsim/SourceKitten/issues/574) ## 0.22.0 diff --git a/Source/SourceKittenFramework/String+SourceKitten.swift b/Source/SourceKittenFramework/String+SourceKitten.swift index 571bbd19c..05e57cf20 100644 --- a/Source/SourceKittenFramework/String+SourceKitten.swift +++ b/Source/SourceKittenFramework/String+SourceKitten.swift @@ -466,7 +466,9 @@ extension NSString { extension String { internal var isFile: Bool { - return FileManager.default.fileExists(atPath: self) + var isDirectory: ObjCBool = false + let exists = FileManager.default.fileExists(atPath: self, isDirectory: &isDirectory) + return exists && !isDirectory.boolValue } internal func capitalizingFirstLetter() -> String { diff --git a/Source/SourceKittenFramework/library_wrapper.swift b/Source/SourceKittenFramework/library_wrapper.swift index 42b49c512..0651afe1e 100644 --- a/Source/SourceKittenFramework/library_wrapper.swift +++ b/Source/SourceKittenFramework/library_wrapper.swift @@ -42,7 +42,7 @@ let toolchainLoader = Loader(searchPaths: [ userApplicationsDir?.xcodeDeveloperDir.toolchainDir, userApplicationsDir?.xcodeBetaDeveloperDir.toolchainDir ].compactMap { path in - if let fullPath = path?.usrLibDir, fullPath.isFile { + if let fullPath = path?.usrLibDir, FileManager.default.fileExists(atPath: fullPath) { return fullPath } return nil