@@ -383,7 +383,7 @@ public actor SourceKitServer {
383383
384384 var languageServices : [ LanguageServerType : [ ToolchainLanguageServer ] ] = [ : ]
385385
386- private let documentManager = DocumentManager ( )
386+ let documentManager = DocumentManager ( )
387387
388388 private var packageLoadingWorkDoneProgress = WorkDoneProgressState (
389389 " SourceKitLSP.SourceKitServer.reloadPackage " ,
@@ -399,7 +399,7 @@ public actor SourceKitServer {
399399 /// Must only be accessed from `queue`.
400400 private var uriToWorkspaceCache : [ DocumentURI : WeakWorkspace ] = [ : ]
401401
402- private var workspaces : [ Workspace ] = [ ] {
402+ private( set ) var workspaces : [ Workspace ] = [ ] {
403403 didSet {
404404 uriToWorkspaceCache = [ : ]
405405 }
@@ -840,6 +840,8 @@ extension SourceKitServer: MessageHandler {
840840 await request. reply { try await workspaceSymbols ( request. params) }
841841 case let request as RequestAndReply < WorkspaceTestsRequest > :
842842 await request. reply { try await workspaceTests ( request. params) }
843+ case let request as RequestAndReply < DocumentTestsRequest > :
844+ await self . handleRequest ( for: request, requestHandler: self . documentTests)
843845 case let request as RequestAndReply < PollIndexRequest > :
844846 await request. reply { try await pollIndex ( request. params) }
845847 case let request as RequestAndReply < BarrierRequest > :
@@ -1498,16 +1500,6 @@ extension SourceKitServer {
14981500 return symbols
14991501 }
15001502
1501- func workspaceTests( _ req: WorkspaceTestsRequest ) async throws -> [ WorkspaceSymbolItem ] ? {
1502- let testSymbols = workspaces. flatMap { ( workspace) -> [ SymbolOccurrence ] in
1503- guard let index = workspace. index else {
1504- return [ ]
1505- }
1506- return index. unitTests ( )
1507- }
1508- return testSymbols. map ( WorkspaceSymbolItem . init)
1509- }
1510-
15111503 /// Forwards a SymbolInfoRequest to the appropriate toolchain service for this document.
15121504 func symbolInfo(
15131505 _ req: SymbolInfoRequest ,
@@ -2204,7 +2196,7 @@ fileprivate struct DocumentNotificationRequestQueue {
22042196 queue = [ ]
22052197 }
22062198}
2207- fileprivate extension WorkspaceSymbolItem {
2199+ extension WorkspaceSymbolItem {
22082200 init ( _ symbolOccurrence: SymbolOccurrence ) {
22092201 let symbolPosition = Position (
22102202 line: symbolOccurrence. location. line - 1 , // 1-based -> 0-based
0 commit comments