In a project with multiple folders each containing a Package.swift, the bestWorkspace found in workspaceForDocument(uri:) was always the first one encountered.
fileHandlingCapability(for:) checks if there are configured targets for the Package.swift and if there are, the workspace is chosen since the Package.swift is determined to be part of the workspace. However the check in configuredTargets(for:) always returned a target for any Package.swift, even if that Package.swift was not part of the workspace associated with the BuildSystem.
Ultimately this manifested as code completion not working in all but one of the Package.swift files in a multi workspace project.
Some work was done in #1210 to address swiftlang/vscode-swift#768, which is where this issue originated from. However while verifying swiftlang/vscode-swift#768 I found that #1210 didn't fully address code completion of Package.swift files in multi workspace projects.
Also took the opportunity to fix a few deprecation warnings.
In a project with multiple folders each containing a Package.swift, the
bestWorkspace
found inworkspaceForDocument(uri:)
was always the first one encountered.fileHandlingCapability(for:)
checks if there are configured targets for the Package.swift and if there are, the workspace is chosen since the Package.swift is determined to be part of the workspace. However the check inconfiguredTargets(for:)
always returned a target for any Package.swift, even if that Package.swift was not part of the workspace associated with the BuildSystem.Ultimately this manifested as code completion not working in all but one of the Package.swift files in a multi workspace project.
Some work was done in #1210 to address swiftlang/vscode-swift#768, which is where this issue originated from. However while verifying swiftlang/vscode-swift#768 I found that #1210 didn't fully address code completion of Package.swift files in multi workspace projects.
Also took the opportunity to fix a few deprecation warnings.