mirror of
https://github.com/apple/sourcekit-lsp.git
synced 2026-03-02 18:23:24 +01:00
Remove dependency from SourceKitLSP on swift-docc-symbolkit
This way all dependencies on the `docc` libraries are wrapped inside the `DocCDocumentation` module.
This commit is contained in:
@@ -509,7 +509,6 @@ var targets: [Target] = [
|
||||
.product(name: "Crypto", package: "swift-crypto"),
|
||||
.product(name: "Markdown", package: "swift-markdown"),
|
||||
.product(name: "SwiftToolsSupport-auto", package: "swift-tools-support-core"),
|
||||
.product(name: "SymbolKit", package: "swift-docc-symbolkit"),
|
||||
]
|
||||
+ swiftPMDependency([
|
||||
.product(name: "SwiftPM-auto", package: "swift-package-manager")
|
||||
|
||||
17
Sources/DocCDocumentation/EmptySymbolGraph.swift
Normal file
17
Sources/DocCDocumentation/EmptySymbolGraph.swift
Normal file
@@ -0,0 +1,17 @@
|
||||
import Foundation
|
||||
import SymbolKit
|
||||
|
||||
/// Generates a JSON string that represents an empty symbol graph for the given module name.
|
||||
package func emptySymbolGraph(forModule moduleName: String) throws -> String? {
|
||||
let symbolGraph = SymbolGraph(
|
||||
metadata: SymbolGraph.Metadata(
|
||||
formatVersion: SymbolGraph.SemanticVersion(major: 0, minor: 0, patch: 0),
|
||||
generator: "SourceKit-LSP"
|
||||
),
|
||||
module: SymbolGraph.Module(name: moduleName, platform: SymbolGraph.Platform()),
|
||||
symbols: [],
|
||||
relationships: []
|
||||
)
|
||||
let data = try JSONEncoder().encode(symbolGraph)
|
||||
return String(data: data, encoding: .utf8)
|
||||
}
|
||||
@@ -19,7 +19,6 @@ package import LanguageServerProtocol
|
||||
import Markdown
|
||||
import SKUtilities
|
||||
import SemanticIndex
|
||||
import SymbolKit
|
||||
|
||||
extension DocumentationLanguageService {
|
||||
package func doccDocumentation(_ req: DoccDocumentationRequest) async throws -> DoccDocumentationResponse {
|
||||
@@ -107,23 +106,9 @@ extension DocumentationLanguageService {
|
||||
// Create a dummy symbol graph and tell SwiftDocC to convert the module name.
|
||||
// The version information isn't really all that important since we're creating
|
||||
// what is essentially an empty symbol graph.
|
||||
let emptySymbolGraph = String(
|
||||
data: try JSONEncoder().encode(
|
||||
SymbolGraph(
|
||||
metadata: SymbolGraph.Metadata(
|
||||
formatVersion: SymbolGraph.SemanticVersion(major: 0, minor: 0, patch: 0),
|
||||
generator: "SourceKit-LSP"
|
||||
),
|
||||
module: SymbolGraph.Module(name: moduleName, platform: SymbolGraph.Platform()),
|
||||
symbols: [],
|
||||
relationships: []
|
||||
)
|
||||
),
|
||||
encoding: .utf8
|
||||
)
|
||||
return try await documentationManager.renderDocCDocumentation(
|
||||
symbolUSR: moduleName,
|
||||
symbolGraph: emptySymbolGraph,
|
||||
symbolGraph: emptySymbolGraph(forModule: moduleName),
|
||||
markupFile: snapshot.text,
|
||||
moduleName: moduleName,
|
||||
catalogURL: catalogURL
|
||||
|
||||
Reference in New Issue
Block a user