Skip to content

Commit ed5c7e2

Browse files
committed
Rename language specific language services
The naming was quite inconsistent here. Let’s rename these to `LanguageService` to highlight that they belong together. - ToolchainLanguageServer -> LanguageService - SwiftLanguageServer -> SwiftLanguageService - ClangLanguageServerShim -> ClangLanguageService
1 parent 1611716 commit ed5c7e2

23 files changed

+100
-100
lines changed

Sources/SourceKitLSP/CMakeLists.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,20 @@ add_library(SourceKitLSP STATIC
33
CapabilityRegistry.swift
44
DocumentManager.swift
55
IndexStoreDB+MainFilesProvider.swift
6-
ResponseError+Init.swift
6+
LanguageService.swift
77
Rename.swift
8+
ResponseError+Init.swift
89
Sequence+AsyncMap.swift
910
SourceKitIndexDelegate.swift
1011
SourceKitLSPCommandMetadata.swift
1112
SourceKitLSPServer.swift
1213
SourceKitLSPServer+Options.swift
1314
TestDiscovery.swift
14-
ToolchainLanguageServer.swift
1515
WorkDoneProgressManager.swift
1616
Workspace.swift
1717
)
1818
target_sources(SourceKitLSP PRIVATE
19-
Clang/ClangLanguageServer.swift)
19+
Clang/ClangLanguageService.swift)
2020
target_sources(SourceKitLSP PRIVATE
2121
Swift/AdjustPositionToStartOfIdentifier.swift
2222
Swift/CodeCompletion.swift
@@ -36,7 +36,7 @@ target_sources(SourceKitLSP PRIVATE
3636
Swift/SemanticTokens.swift
3737
Swift/SourceKitD+ResponseError.swift
3838
Swift/SwiftCommand.swift
39-
Swift/SwiftLanguageServer.swift
39+
Swift/SwiftLanguageService.swift
4040
Swift/SymbolInfo.swift
4141
Swift/SyntaxHighlightingToken.swift
4242
Swift/SyntaxHighlightingTokenParser.swift

Sources/SourceKitLSP/Clang/ClangLanguageServer.swift renamed to Sources/SourceKitLSP/Clang/ClangLanguageService.swift

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ fileprivate class ClangdStderrLogForwarder {
6060
/// ``ClangLanguageServerShim`` conforms to ``MessageHandler`` to receive
6161
/// requests and notifications **from** clangd, not from the editor, and it will
6262
/// forward these requests and notifications to the editor.
63-
actor ClangLanguageServerShim: ToolchainLanguageServer, MessageHandler {
63+
actor ClangLanguageService: LanguageService, MessageHandler {
6464
/// The queue on which all messages that originate from clangd are handled.
6565
///
6666
/// These are requests and notifications sent *from* clangd, not replies from
@@ -71,7 +71,7 @@ actor ClangLanguageServerShim: ToolchainLanguageServer, MessageHandler {
7171
/// requests and notifications sent from clangd to the client is quite small.
7272
public let clangdMessageHandlingQueue = AsyncQueue<Serial>()
7373

74-
/// The ``SourceKitLSPServer`` instance that created this `ClangLanguageServerShim`.
74+
/// The ``SourceKitLSPServer`` instance that created this `ClangLanguageService`.
7575
///
7676
/// Used to send requests and notifications to the editor.
7777
private weak var sourceKitServer: SourceKitLSPServer?
@@ -191,7 +191,7 @@ actor ClangLanguageServerShim: ToolchainLanguageServer, MessageHandler {
191191
}
192192
}
193193

194-
/// Start the `clangd` process, either on creation of the `ClangLanguageServerShim` or after `clangd` has crashed.
194+
/// Start the `clangd` process, either on creation of the `ClangLanguageService` or after `clangd` has crashed.
195195
private func startClangdProcess() throws {
196196
// Since we are starting a new clangd process, reset the list of open document
197197
openDocuments = [:]
@@ -387,7 +387,7 @@ actor ClangLanguageServerShim: ToolchainLanguageServer, MessageHandler {
387387

388388
// MARK: - LanguageServer
389389

390-
extension ClangLanguageServerShim {
390+
extension ClangLanguageService {
391391

392392
/// Intercept clangd's `PublishDiagnosticsNotification` to withold it if we're using fallback
393393
/// build settings.
@@ -424,9 +424,9 @@ extension ClangLanguageServerShim {
424424

425425
}
426426

427-
// MARK: - ToolchainLanguageServer
427+
// MARK: - LanguageService
428428

429-
extension ClangLanguageServerShim {
429+
extension ClangLanguageService {
430430

431431
func initialize(_ initialize: InitializeRequest) async throws -> InitializeResult {
432432
// Store the initialize request so we can replay it in case clangd crashes
@@ -521,7 +521,6 @@ extension ClangLanguageServerShim {
521521

522522
// MARK: - Text Document
523523

524-
/// Returns true if the `ToolchainLanguageServer` will take ownership of the request.
525524
public func definition(_ req: DefinitionRequest) async throws -> LocationsOrLocationLinksResponse? {
526525
// We handle it to provide jump-to-header support for #import/#include.
527526
return try await self.forwardRequestToClangd(req)

Sources/SourceKitLSP/ToolchainLanguageServer.swift renamed to Sources/SourceKitLSP/LanguageService.swift

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,11 @@ public struct RenameLocation {
6060
let usage: Usage
6161
}
6262

63-
/// A `LanguageServer` that exists within the context of the current process.
64-
public protocol ToolchainLanguageServer: AnyObject {
63+
/// Provides language specific functionality to sourcekit-lsp from a specific toolchain.
64+
///
65+
/// For example, we may have a language service that provides semantic functionality for c-family using a clangd server,
66+
/// launched from a specific toolchain or from sourcekitd.
67+
public protocol LanguageService: AnyObject {
6568

6669
// MARK: - Creation
6770

Sources/SourceKitLSP/Rename.swift

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@ private extension IndexSymbolKind {
310310

311311
// MARK: - Name translation
312312

313-
extension SwiftLanguageServer {
313+
extension SwiftLanguageService {
314314
enum NameTranslationError: Error, CustomStringConvertible {
315315
case cannotComputeOffset(SymbolLocation)
316316
case malformedSwiftToClangTranslateNameResponse(SKDResponseDictionary)
@@ -515,7 +515,7 @@ extension SourceKitLSPServer {
515515
usr: String,
516516
index: IndexStoreDB,
517517
workspace: Workspace
518-
) async -> (languageServer: SwiftLanguageServer, snapshot: DocumentSnapshot, location: SymbolLocation)? {
518+
) async -> (swiftLanguageService: SwiftLanguageService, snapshot: DocumentSnapshot, location: SymbolLocation)? {
519519
var reference: SymbolOccurrence? = nil
520520
index.forEachSymbolOccurrence(byUSR: usr, roles: renameRoles) {
521521
if index.symbolProvider(for: $0.location.path) == .swift {
@@ -533,11 +533,11 @@ extension SourceKitLSPServer {
533533
guard let snapshot = self.documentManager.latestSnapshotOrDisk(uri, language: .swift) else {
534534
return nil
535535
}
536-
let swiftLanguageServer = await self.languageService(for: uri, .swift, in: workspace) as? SwiftLanguageServer
537-
guard let swiftLanguageServer else {
536+
let swiftLanguageService = await self.languageService(for: uri, .swift, in: workspace) as? SwiftLanguageService
537+
guard let swiftLanguageService else {
538538
return nil
539539
}
540-
return (swiftLanguageServer, snapshot, reference.location)
540+
return (swiftLanguageService, snapshot, reference.location)
541541
}
542542

543543
/// Returns a `CrossLanguageName` for the symbol with the given USR.
@@ -612,11 +612,11 @@ extension SourceKitLSPServer {
612612
let definitionName = overrideName ?? definitionSymbol.name
613613

614614
switch definitionLanguageService {
615-
case is ClangLanguageServerShim:
615+
case is ClangLanguageService:
616616
let swiftName: String?
617617
if let swiftReference = await getReferenceFromSwift(usr: usr, index: index, workspace: workspace) {
618618
let isObjectiveCSelector = definitionLanguage == .objective_c && definitionSymbol.kind.isMethod
619-
swiftName = try await swiftReference.languageServer.translateClangNameToSwift(
619+
swiftName = try await swiftReference.swiftLanguageService.translateClangNameToSwift(
620620
at: swiftReference.location,
621621
in: swiftReference.snapshot,
622622
isObjectiveCSelector: isObjectiveCSelector,
@@ -627,7 +627,7 @@ extension SourceKitLSPServer {
627627
swiftName = nil
628628
}
629629
return CrossLanguageName(clangName: definitionName, swiftName: swiftName, definitionLanguage: definitionLanguage)
630-
case let swiftLanguageServer as SwiftLanguageServer:
630+
case let swiftLanguageService as SwiftLanguageService:
631631
// Continue iteration if the symbol provider is not clang.
632632
// If we terminate early by returning `false` from the closure, `forEachSymbolOccurrence` returns `true`,
633633
// indicating that we have found a reference from clang.
@@ -636,7 +636,7 @@ extension SourceKitLSPServer {
636636
}
637637
let clangName: String?
638638
if hasReferenceFromClang {
639-
clangName = try await swiftLanguageServer.translateSwiftNameToClang(
639+
clangName = try await swiftLanguageService.translateSwiftNameToClang(
640640
at: definitionOccurrence.location,
641641
in: definitionDocumentUri,
642642
name: CompoundDeclName(definitionName)
@@ -845,7 +845,7 @@ extension SourceKitLSPServer {
845845
func prepareRename(
846846
_ request: PrepareRenameRequest,
847847
workspace: Workspace,
848-
languageService: ToolchainLanguageServer
848+
languageService: LanguageService
849849
) async throws -> PrepareRenameResponse? {
850850
guard let languageServicePrepareRename = try await languageService.prepareRename(request) else {
851851
return nil
@@ -874,15 +874,15 @@ extension SourceKitLSPServer {
874874
func indexedRename(
875875
_ request: IndexedRenameRequest,
876876
workspace: Workspace,
877-
languageService: ToolchainLanguageServer
877+
languageService: LanguageService
878878
) async throws -> WorkspaceEdit? {
879879
return try await languageService.indexedRename(request)
880880
}
881881
}
882882

883883
// MARK: - Swift
884884

885-
extension SwiftLanguageServer {
885+
extension SwiftLanguageService {
886886
/// From a list of rename locations compute the list of `SyntacticRenameName`s that define which ranges need to be
887887
/// edited to rename a compound decl name.
888888
///
@@ -1368,7 +1368,7 @@ extension SwiftLanguageServer {
13681368

13691369
// MARK: - Clang
13701370

1371-
extension ClangLanguageServerShim {
1371+
extension ClangLanguageService {
13721372
func rename(_ renameRequest: RenameRequest) async throws -> (edits: WorkspaceEdit, usr: String?) {
13731373
async let edits = forwardRequestToClangd(renameRequest)
13741374
let symbolInfoRequest = SymbolInfoRequest(

Sources/SourceKitLSP/SourceKitLSPServer+Options.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ extension SourceKitLSPServer {
4242
/// Override the default directory where generated interfaces will be stored
4343
public var generatedInterfacesPath: AbsolutePath
4444

45-
/// The time that `SwiftLanguageServer` should wait after an edit before starting to compute diagnostics and sending
46-
/// a `PublishDiagnosticsNotification`.
45+
/// The time that `SwiftLanguageService` should wait after an edit before starting to compute diagnostics and
46+
/// sending a `PublishDiagnosticsNotification`.
4747
///
4848
/// This is mostly intended for testing purposes so we don't need to wait the debouncing time to get a diagnostics
4949
/// notification when running unit tests.

0 commit comments

Comments
 (0)