@@ -384,7 +384,7 @@ public actor SourceKitServer {
384384
385385 var languageServices : [ LanguageServerType : [ ToolchainLanguageServer ] ] = [ : ]
386386
387- private let documentManager = DocumentManager ( )
387+ let documentManager = DocumentManager ( )
388388
389389 private var packageLoadingWorkDoneProgress = WorkDoneProgressState (
390390 " SourceKitLSP.SourceKitServer.reloadPackage " ,
@@ -400,7 +400,7 @@ public actor SourceKitServer {
400400 /// Must only be accessed from `queue`.
401401 private var uriToWorkspaceCache : [ DocumentURI : WeakWorkspace ] = [ : ]
402402
403- private var workspaces : [ Workspace ] = [ ] {
403+ private( set ) var workspaces : [ Workspace ] = [ ] {
404404 didSet {
405405 uriToWorkspaceCache = [ : ]
406406 }
@@ -841,6 +841,8 @@ extension SourceKitServer: MessageHandler {
841841 await request. reply { try await workspaceSymbols ( request. params) }
842842 case let request as RequestAndReply < WorkspaceTestsRequest > :
843843 await request. reply { try await workspaceTests ( request. params) }
844+ case let request as RequestAndReply < DocumentTestsRequest > :
845+ await self . handleRequest ( for: request, requestHandler: self . documentTests)
844846 case let request as RequestAndReply < PollIndexRequest > :
845847 await request. reply { try await pollIndex ( request. params) }
846848 case let request as RequestAndReply < BarrierRequest > :
@@ -1534,16 +1536,6 @@ extension SourceKitServer {
15341536 return symbols
15351537 }
15361538
1537- func workspaceTests( _ req: WorkspaceTestsRequest ) async throws -> [ WorkspaceSymbolItem ] ? {
1538- let testSymbols = workspaces. flatMap { ( workspace) -> [ SymbolOccurrence ] in
1539- guard let index = workspace. index else {
1540- return [ ]
1541- }
1542- return index. unitTests ( )
1543- }
1544- return testSymbols. map ( WorkspaceSymbolItem . init)
1545- }
1546-
15471539 /// Forwards a SymbolInfoRequest to the appropriate toolchain service for this document.
15481540 func symbolInfo(
15491541 _ req: SymbolInfoRequest ,
@@ -2272,7 +2264,7 @@ fileprivate func transitiveSubtypeClosure(ofUsrs usrs: [String], index: IndexSto
22722264 return result
22732265}
22742266
2275- fileprivate extension WorkspaceSymbolItem {
2267+ extension WorkspaceSymbolItem {
22762268 init ( _ symbolOccurrence: SymbolOccurrence ) {
22772269 let symbolPosition = Position (
22782270 line: symbolOccurrence. location. line - 1 , // 1-based -> 0-based
0 commit comments