Skip to content

Commit 83cc023

Browse files
committed
Move DocumentationLanguageService to a separate module
1 parent f47168a commit 83cc023

File tree

5 files changed

+37
-10
lines changed

5 files changed

+37
-10
lines changed

Package.swift

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,21 @@ var targets: [Target] = [
237237
swiftSettings: globalSwiftSettings
238238
),
239239

240-
// MARK: DocCDocumentation
240+
// MARK: DocumentationLanguageService
241+
242+
.target(
243+
name: "DocumentationLanguageService",
244+
dependencies: [
245+
"BuildServerIntegration",
246+
"DocCDocumentation",
247+
"LanguageServerProtocol",
248+
"SKUtilities",
249+
"SemanticIndex",
250+
.product(name: "Markdown", package: "swift-markdown"),
251+
],
252+
exclude: [],
253+
swiftSettings: globalSwiftSettings
254+
),
241255

242256
.target(
243257
name: "DocCDocumentation",
@@ -263,6 +277,7 @@ var targets: [Target] = [
263277
dependencies: [
264278
"BuildServerIntegration",
265279
"ClangLanguageService",
280+
"DocumentationLanguageService",
266281
"LanguageServerProtocol",
267282
"SKLogging",
268283
"SKOptions",

Sources/SourceKitLSP/Documentation/DoccDocumentationHandler.swift renamed to Sources/DocumentationLanguageService/DoccDocumentationHandler.swift

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import Foundation
1818
package import LanguageServerProtocol
1919
import Markdown
2020
import SKUtilities
21+
import SourceKitLSP
2122
import SemanticIndex
2223

2324
extension DocumentationLanguageService {
@@ -63,9 +64,13 @@ extension DocumentationLanguageService {
6364
ofDocCSymbolLink: symbolLink,
6465
fetchSymbolGraph: { location in
6566
guard let symbolWorkspace = try await workspaceForDocument(uri: location.documentUri),
66-
let languageService = try await languageService(for: location.documentUri, .swift, in: symbolWorkspace)
67+
let languageService = await sourceKitLSPServer.languageService(
68+
for: location.documentUri,
69+
.swift,
70+
in: symbolWorkspace
71+
)
6772
else {
68-
throw ResponseError.internalError("Unable to find Swift language service for \(location.documentUri)")
73+
throw ResponseError.internalError("Unable to find language service for \(location.documentUri)")
6974
}
7075
return try await languageService.symbolGraph(forOnDiskContentsOf: location.documentUri, at: location)
7176
}
@@ -76,9 +81,13 @@ extension DocumentationLanguageService {
7681
let symbolDocumentUri = symbolOccurrence.location.documentUri
7782
guard
7883
let symbolWorkspace = try await workspaceForDocument(uri: symbolDocumentUri),
79-
let languageService = try await languageService(for: symbolDocumentUri, .swift, in: symbolWorkspace)
84+
let languageService = await sourceKitLSPServer.languageService(
85+
for: symbolDocumentUri,
86+
.swift,
87+
in: symbolWorkspace
88+
)
8089
else {
81-
throw ResponseError.internalError("Unable to find Swift language service for \(symbolDocumentUri)")
90+
throw ResponseError.internalError("Unable to find language service for \(symbolDocumentUri)")
8291
}
8392
let symbolGraph = try await languageService.symbolGraph(
8493
forOnDiskContentsOf: symbolDocumentUri,

Sources/SourceKitLSP/Documentation/DocumentationLanguageService.swift renamed to Sources/DocumentationLanguageService/DocumentationLanguageService.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import Foundation
1414
package import IndexStoreDB
1515
package import LanguageServerProtocol
1616
package import SKOptions
17+
package import SourceKitLSP
1718
import SwiftExtensions
1819
package import SwiftSyntax
1920
package import ToolchainRegistry
@@ -52,7 +53,7 @@ package actor DocumentationLanguageService: LanguageService, Sendable {
5253

5354
func languageService(
5455
for uri: DocumentURI,
55-
_ language: Language,
56+
_ language: LanguageServerProtocol.Language,
5657
in workspace: Workspace
5758
) async throws -> LanguageService? {
5859
guard let sourceKitLSPServer else {

Sources/InProcessClient/LanguageServiceRegistry+staticallyKnownServices.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,19 @@ import LanguageServerProtocol
1515
package import SourceKitLSP
1616
import SwiftLanguageService
1717

18+
#if canImport(DocumentationLanguageService)
19+
import DocumentationLanguageService
20+
#endif
21+
1822
extension LanguageServiceRegistry {
1923
/// All types conforming to `LanguageService` that are known at compile time.
2024
package static let staticallyKnownServices = {
2125
var registry = LanguageServiceRegistry()
2226
registry.register(ClangLanguageService.self, for: [.c, .cpp, .objective_c, .objective_cpp])
2327
registry.register(SwiftLanguageService.self, for: [.swift])
28+
#if canImport(DocumentationLanguageService)
2429
registry.register(DocumentationLanguageService.self, for: [.markdown, .tutorial])
30+
#endif
2531
return registry
2632
}()
2733
}

Sources/SourceKitLSP/CMakeLists.txt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,6 @@ add_library(SourceKitLSP STATIC
2626
TextEdit+IsNoop.swift
2727
Workspace.swift
2828
)
29-
target_sources(SourceKitLSP PRIVATE
30-
Documentation/DocCDocumentationHandler.swift
31-
Documentation/DocumentationLanguageService.swift
32-
)
3329
set_target_properties(SourceKitLSP PROPERTIES
3430
INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_Swift_MODULE_DIRECTORY}
3531
)

0 commit comments

Comments
 (0)