@@ -293,30 +293,17 @@ actor ClangLanguageServerShim: ToolchainLanguageServer, MessageHandler {
293
293
}
294
294
}
295
295
296
- /// Forwards a request to the given connection, taking care of replying to the original request
297
- /// and cancellation, while providing a callback with the response for additional processing.
298
- ///
299
- /// Immediately after `handler` returns, this passes the result to the original reply handler by
300
- /// calling `request.reply(result)`.
296
+ /// Forwards a request to `clangd`, taking care of replying to the original request
297
+ /// and cancellation.
301
298
///
302
299
/// The cancellation token from the original request is automatically linked to the forwarded
303
300
/// request such that cancelling the original request will cancel the forwarded request.
304
- ///
305
- /// - Parameters:
306
- /// - request: The request to forward.
307
- /// - to: Where to forward the request (e.g. self.clangd).
308
- /// - handler: An optional closure that will be called with the result of the request.
309
- func forwardRequest< R> (
310
- _ request: Request < R > ,
311
- to: Connection ,
312
- _ handler: ( ( LSPResult < R . Response > ) -> Void ) ? = nil )
313
- {
314
- let id = to. send ( request. params, queue: clangdCommunicationQueue) { result in
315
- handler ? ( result)
301
+ func forwardRequestToClangd< R> ( _ request: Request < R > ) {
302
+ let id = clangd. send ( request. params, queue: clangdCommunicationQueue) { result in
316
303
request. reply ( result)
317
304
}
318
305
request. cancellationToken. addCancellationHandler {
319
- to . send ( CancelRequestNotification ( id: id) )
306
+ self . clangd . send ( CancelRequestNotification ( id: id) )
320
307
}
321
308
}
322
309
@@ -482,80 +469,80 @@ extension ClangLanguageServerShim {
482
469
/// Returns true if the `ToolchainLanguageServer` will take ownership of the request.
483
470
public func definition( _ req: Request < DefinitionRequest > ) -> Bool {
484
471
// We handle it to provide jump-to-header support for #import/#include.
485
- self . forwardRequest ( req, to : self . clangd )
472
+ self . forwardRequestToClangd ( req)
486
473
return true
487
474
}
488
475
489
476
/// Returns true if the `ToolchainLanguageServer` will take ownership of the request.
490
477
public func declaration( _ req: Request < DeclarationRequest > ) -> Bool {
491
478
// We handle it to provide jump-to-header support for #import/#include.
492
- forwardRequest ( req, to : clangd )
479
+ forwardRequestToClangd ( req)
493
480
return true
494
481
}
495
482
496
483
func completion( _ req: Request < CompletionRequest > ) {
497
- forwardRequest ( req, to : clangd )
484
+ forwardRequestToClangd ( req)
498
485
}
499
486
500
487
func hover( _ req: Request < HoverRequest > ) {
501
- forwardRequest ( req, to : clangd )
488
+ forwardRequestToClangd ( req)
502
489
}
503
490
504
491
func symbolInfo( _ req: Request < SymbolInfoRequest > ) {
505
- forwardRequest ( req, to : clangd )
492
+ forwardRequestToClangd ( req)
506
493
}
507
494
508
495
func documentSymbolHighlight( _ req: Request < DocumentHighlightRequest > ) {
509
- forwardRequest ( req, to : clangd )
496
+ forwardRequestToClangd ( req)
510
497
}
511
498
512
499
func documentSymbol( _ req: Request < DocumentSymbolRequest > ) {
513
- forwardRequest ( req, to : clangd )
500
+ forwardRequestToClangd ( req)
514
501
}
515
502
516
503
func documentColor( _ req: Request < DocumentColorRequest > ) {
517
504
if self . capabilities? . colorProvider? . isSupported == true {
518
- forwardRequest ( req, to : clangd )
505
+ forwardRequestToClangd ( req)
519
506
} else {
520
507
req. reply ( . success( [ ] ) )
521
508
}
522
509
}
523
510
524
511
func documentSemanticTokens( _ req: Request < DocumentSemanticTokensRequest > ) {
525
- forwardRequest ( req, to : clangd )
512
+ forwardRequestToClangd ( req)
526
513
}
527
514
528
515
func documentSemanticTokensDelta( _ req: Request < DocumentSemanticTokensDeltaRequest > ) {
529
- forwardRequest ( req, to : clangd )
516
+ forwardRequestToClangd ( req)
530
517
}
531
518
532
519
func documentSemanticTokensRange( _ req: Request < DocumentSemanticTokensRangeRequest > ) {
533
- forwardRequest ( req, to : clangd )
520
+ forwardRequestToClangd ( req)
534
521
}
535
522
536
523
func colorPresentation( _ req: Request < ColorPresentationRequest > ) {
537
524
if self . capabilities? . colorProvider? . isSupported == true {
538
- forwardRequest ( req, to : clangd )
525
+ forwardRequestToClangd ( req)
539
526
} else {
540
527
req. reply ( . success( [ ] ) )
541
528
}
542
529
}
543
530
544
531
func codeAction( _ req: Request < CodeActionRequest > ) {
545
- forwardRequest ( req, to : clangd )
532
+ forwardRequestToClangd ( req)
546
533
}
547
534
548
535
func inlayHint( _ req: Request < InlayHintRequest > ) {
549
- forwardRequest ( req, to : clangd )
536
+ forwardRequestToClangd ( req)
550
537
}
551
538
552
539
func documentDiagnostic( _ req: Request < DocumentDiagnosticsRequest > ) {
553
- forwardRequest ( req, to : clangd )
540
+ forwardRequestToClangd ( req)
554
541
}
555
542
556
543
func foldingRange( _ req: Request < FoldingRangeRequest > ) {
557
544
if self . capabilities? . foldingRangeProvider? . isSupported == true {
558
- forwardRequest ( req, to : clangd )
545
+ forwardRequestToClangd ( req)
559
546
} else {
560
547
req. reply ( . success( nil ) )
561
548
}
@@ -568,7 +555,7 @@ extension ClangLanguageServerShim {
568
555
// MARK: - Other
569
556
570
557
func executeCommand( _ req: Request < ExecuteCommandRequest > ) {
571
- forwardRequest ( req, to : clangd )
558
+ forwardRequestToClangd ( req)
572
559
}
573
560
}
574
561
0 commit comments