Fix background indexing behavior if a source file is included in two targets via a symlink

Consider the following scenario: A project has target A containing A.swift an target B containing B.swift. B.swift is a symlink to A.swift. When A.swift is modified, both the dependencies of A and B need to be marked as having an out-of-date preparation status, not just A.
This commit is contained in:
Alex Hoppen
2024-12-09 15:06:39 -08:00
parent 247acf6ae7
commit 5eb460f148
7 changed files with 132 additions and 9 deletions

View File

@@ -88,7 +88,9 @@ package class MultiFileTestProject {
/// File contents can also contain `$TEST_DIR`, which gets replaced by the temporary directory.
package init(
files: [RelativeFileLocation: String],
workspaces: (URL) async throws -> [WorkspaceFolder] = { [WorkspaceFolder(uri: DocumentURI($0))] },
workspaces: (_ scratchDirectory: URL) async throws -> [WorkspaceFolder] = {
[WorkspaceFolder(uri: DocumentURI($0))]
},
initializationOptions: LSPAny? = nil,
capabilities: ClientCapabilities = ClientCapabilities(),
options: SourceKitLSPOptions = .testDefault(),