Skip to content

Commit 3152431

Browse files
authored
Report whether a source file is part of a test target in the SourceKit-LSP API (#7978)
Companion of swiftlang/sourcekit-lsp#1685
1 parent 935980c commit 3152431

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

Sources/SourceKitLSPAPI/BuildDescription.swift

+6
Original file line numberDiff line numberDiff line change
@@ -45,16 +45,20 @@ public protocol BuildTarget {
4545
/// Whether the target is part of the root package that the user opened or if it's part of a package dependency.
4646
var isPartOfRootPackage: Bool { get }
4747

48+
var isTestTarget: Bool { get }
49+
4850
func compileArguments(for fileURL: URL) throws -> [String]
4951
}
5052

5153
private struct WrappedClangTargetBuildDescription: BuildTarget {
5254
private let description: ClangModuleBuildDescription
5355
let isPartOfRootPackage: Bool
56+
let isTestTarget: Bool
5457

5558
init(description: ClangModuleBuildDescription, isPartOfRootPackage: Bool) {
5659
self.description = description
5760
self.isPartOfRootPackage = isPartOfRootPackage
61+
self.isTestTarget = description.isTestTarget
5862
}
5963

6064
public var sources: [URL] {
@@ -87,10 +91,12 @@ private struct WrappedClangTargetBuildDescription: BuildTarget {
8791
private struct WrappedSwiftTargetBuildDescription: BuildTarget {
8892
private let description: SwiftModuleBuildDescription
8993
let isPartOfRootPackage: Bool
94+
let isTestTarget: Bool
9095

9196
init(description: SwiftModuleBuildDescription, isPartOfRootPackage: Bool) {
9297
self.description = description
9398
self.isPartOfRootPackage = isPartOfRootPackage
99+
self.isTestTarget = description.isTestTarget
94100
}
95101

96102
public var name: String {

Sources/SourceKitLSPAPI/PluginTargetBuildDescription.swift

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ struct PluginTargetBuildDescription: BuildTarget {
2525
private let toolsVersion: ToolsVersion
2626
private let toolchain: any Toolchain
2727
let isPartOfRootPackage: Bool
28+
var isTestTarget: Bool { false }
2829

2930
init(target: ResolvedModule, toolsVersion: ToolsVersion, toolchain: any Toolchain, isPartOfRootPackage: Bool) {
3031
assert(target.type == .plugin)

0 commit comments

Comments
 (0)