Skip to content

Commit 8dfcbfa

Browse files
author
Wang Lun
committed
buildSettingFrom can be only file://
1 parent d143d8d commit 8dfcbfa

File tree

3 files changed

+19
-9
lines changed

3 files changed

+19
-9
lines changed

Sources/SourceKitLSP/SourceKitLSPServer.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2086,10 +2086,10 @@ extension SourceKitLSPServer {
20862086
return Location(uri: originatorUri, range: Range(Position(line: 0, utf16index: 0)))
20872087
}
20882088
}
2089-
2089+
20902090
// If the originator URI is already a generated interface, use its primary file for build settings
2091-
let documentForBuildSettings = originatorUri.primaryFile ?? originatorUri
2092-
2091+
let documentForBuildSettings = originatorUri.buildSettingsFile
2092+
20932093
guard
20942094
let interfaceDetails = try await languageService.openGeneratedInterface(
20952095
document: documentForBuildSettings,

Sources/SourceKitLSP/Swift/GeneratedInterfaceDocumentURLData.swift

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,14 @@ package struct GeneratedInterfaceDocumentURLData: Hashable, ReferenceURLData {
6767
self.moduleName = moduleName
6868
self.groupName = groupName
6969
self.sourcekitdDocumentName = sourcekitdDocumentName
70-
self.buildSettingsFrom = primaryFile
70+
if let referenceDocumentURL = try? ReferenceDocumentURL(from: primaryFile),
71+
let fileURL = referenceDocumentURL.buildSettingsFile.fileURL {
72+
self.buildSettingsFrom = DocumentURI(fileURL)
73+
} else if let fileURL = primaryFile.fileURL {
74+
self.buildSettingsFrom = DocumentURI(fileURL)
75+
} else {
76+
self.buildSettingsFrom = primaryFile
77+
}
7178
}
7279

7380
init(queryItems: [URLQueryItem]) throws {

Sources/SourceKitLSP/Swift/ReferenceDocumentURL.swift

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -123,8 +123,9 @@ package enum ReferenceDocumentURL {
123123
switch self {
124124
case .macroExpansion(let data): return data.primaryFile
125125
case .generatedInterface(let data):
126-
if let referenceDocumentURL = try? ReferenceDocumentURL(from: data.buildSettingsFrom) {
127-
return referenceDocumentURL.buildSettingsFile
126+
if let referenceDocumentURL = try? ReferenceDocumentURL(from: data.buildSettingsFrom),
127+
let fileURL = referenceDocumentURL.buildSettingsFile.fileURL {
128+
return DocumentURI(fileURL)
128129
}
129130
return data.buildSettingsFrom
130131
}
@@ -134,10 +135,12 @@ package enum ReferenceDocumentURL {
134135
switch self {
135136
case .macroExpansion(let data): return data.primaryFile
136137
case .generatedInterface(let data):
137-
if let referenceDocumentURL = try? ReferenceDocumentURL(from: data.buildSettingsFrom) {
138-
return referenceDocumentURL.primaryFile
138+
if let referenceDocumentURL = try? ReferenceDocumentURL(from: data.buildSettingsFrom),
139+
let primaryFile = referenceDocumentURL.primaryFile,
140+
let fileURL = primaryFile.fileURL {
141+
return DocumentURI(fileURL)
139142
}
140-
return data.buildSettingsFrom.primaryFile
143+
return data.buildSettingsFrom.primaryFile
141144
}
142145
}
143146
}

0 commit comments

Comments
 (0)