@@ -444,6 +444,29 @@ ITypeSymbol capability
444444 ) ;
445445 }
446446
447+ public static ArrowExpressionClauseSyntax GetVoidRequestCapabilityHandlerExpression (
448+ ExpressionSyntax nameExpression , ITypeSymbol requestType ,
449+ ITypeSymbol capability
450+ )
451+ {
452+ var requestName = ResolveTypeName ( requestType ) ;
453+ var capabilityName = ResolveTypeName ( capability ) ;
454+ return ArrowExpressionClause (
455+ AddHandler (
456+ Argument ( nameExpression ) ,
457+ Argument (
458+ CreateHandlerArgument (
459+ IdentifierName ( "LanguageProtocolDelegatingHandlers" ) ,
460+ "RequestCapability" ,
461+ requestName ,
462+ capabilityName
463+ )
464+ . WithArgumentList ( GetHandlerArgumentList ( ) )
465+ )
466+ )
467+ ) ;
468+ }
469+
447470 public static BlockSyntax GetRequestRegistrationHandlerExpression (
448471 ExpressionSyntax nameExpression , ITypeSymbol requestType , ITypeSymbol responseType ,
449472 ITypeSymbol registrationOptions
@@ -593,36 +616,44 @@ public static ArrowExpressionClauseSyntax GetRequestHandlerExpression(Expression
593616 }
594617
595618 public static ArrowExpressionClauseSyntax GetPartialResultCapabilityHandlerExpression (
596- ExpressionSyntax nameExpression , ITypeSymbol requestType , ITypeSymbol responseType ,
619+ ExpressionSyntax nameExpression , ITypeSymbol requestType , ITypeSymbol itemType , ITypeSymbol responseType ,
597620 ITypeSymbol capability
598621 )
599622 {
600623 var requestName = ResolveTypeName ( requestType ) ;
624+ var itemName = ResolveTypeName ( itemType ) ;
601625 var responseName = ResolveTypeName ( responseType ) ;
602626 var capabilityName = ResolveTypeName ( capability ) ;
603627 return ArrowExpressionClause (
604628 AddHandler (
605629 Argument ( nameExpression ) ,
606630 Argument (
631+ SimpleLambdaExpression (
632+ Parameter (
633+ Identifier ( "_" )
634+ ) ,
607635 CreateHandlerArgument (
608636 IdentifierName ( "LanguageProtocolDelegatingHandlers" ) ,
609637 "PartialResultCapability" ,
610638 requestName ,
611639 responseName ,
640+ itemName ,
612641 capabilityName
613642 )
614643 . WithArgumentList ( GetPartialResultArgumentList ( responseName ) )
644+ )
615645 )
616646 )
617647 ) ;
618648 }
619649
620650 public static BlockSyntax GetPartialResultRegistrationHandlerExpression (
621- ExpressionSyntax nameExpression , ITypeSymbol requestType , ITypeSymbol responseType ,
651+ ExpressionSyntax nameExpression , ITypeSymbol requestType , ITypeSymbol itemType , ITypeSymbol responseType ,
622652 ITypeSymbol registrationOptions
623653 )
624654 {
625655 var requestName = ResolveTypeName ( requestType ) ;
656+ var itemName = ResolveTypeName ( itemType ) ;
626657 var responseName = ResolveTypeName ( responseType ) ;
627658 var registrationOptionsName = ResolveTypeName ( registrationOptions ) ;
628659 return Block (
@@ -631,27 +662,34 @@ ITypeSymbol registrationOptions
631662 AddHandler (
632663 Argument ( nameExpression ) ,
633664 Argument (
665+ SimpleLambdaExpression (
666+ Parameter (
667+ Identifier ( "_" )
668+ ) ,
634669 CreateHandlerArgument (
635670 IdentifierName ( "LanguageProtocolDelegatingHandlers" ) ,
636671 "PartialResult" ,
637672 requestName ,
638673 responseName ,
674+ itemName ,
639675 registrationOptionsName
640676 )
641677 . WithArgumentList ( GetPartialResultRegistrationArgumentList ( IdentifierName ( "registrationOptions" ) , responseName ) )
678+ )
642679 )
643680 )
644681 )
645682 ) ;
646683 }
647684
648685 public static BlockSyntax GetPartialResultRegistrationHandlerExpression (
649- ExpressionSyntax nameExpression , ITypeSymbol requestType , ITypeSymbol responseType ,
686+ ExpressionSyntax nameExpression , ITypeSymbol requestType , ITypeSymbol itemType , ITypeSymbol responseType ,
650687 ITypeSymbol registrationOptions ,
651688 ITypeSymbol capability
652689 )
653690 {
654691 var requestName = ResolveTypeName ( requestType ) ;
692+ var itemName = ResolveTypeName ( itemType ) ;
655693 var responseName = ResolveTypeName ( responseType ) ;
656694 var registrationOptionsName = ResolveTypeName ( registrationOptions ) ;
657695 var capabilityName = ResolveTypeName ( capability ) ;
@@ -661,36 +699,49 @@ ITypeSymbol capability
661699 AddHandler (
662700 Argument ( nameExpression ) ,
663701 Argument (
702+ SimpleLambdaExpression (
703+ Parameter (
704+ Identifier ( "_" )
705+ ) ,
664706 CreateHandlerArgument (
665707 IdentifierName ( "LanguageProtocolDelegatingHandlers" ) ,
666708 "PartialResult" ,
667709 requestName ,
668710 responseName ,
711+ itemName ,
669712 capabilityName ,
670713 registrationOptionsName
671714 )
672715 . WithArgumentList ( GetPartialResultRegistrationArgumentList ( IdentifierName ( "registrationOptions" ) , responseName ) )
716+ )
673717 )
674718 )
675719 )
676720 ) ;
677721 }
678722
679- public static ArrowExpressionClauseSyntax GetPartialResultHandlerExpression ( ExpressionSyntax nameExpression , ITypeSymbol requestType , ITypeSymbol responseType )
723+ public static ArrowExpressionClauseSyntax GetPartialResultHandlerExpression ( ExpressionSyntax nameExpression , ITypeSymbol requestType , ITypeSymbol partialItem , ITypeSymbol responseType )
680724 {
681725 var requestName = ResolveTypeName ( requestType ) ;
726+ var itemName = ResolveTypeName ( partialItem ) ;
682727 var responseName = ResolveTypeName ( responseType ) ;
683728 return ArrowExpressionClause (
684729 AddHandler (
685730 Argument ( nameExpression ) ,
686731 Argument (
732+ SimpleLambdaExpression (
733+ Parameter (
734+ Identifier ( "_" )
735+ ) ,
687736 CreateHandlerArgument (
688737 IdentifierName ( "LanguageProtocolDelegatingHandlers" ) ,
689738 "PartialResult" ,
690739 requestName ,
691- responseName
740+ responseName ,
741+ itemName
692742 )
693743 . WithArgumentList ( GetPartialResultArgumentList ( responseName ) )
744+ )
694745 )
695746 )
696747 ) ;
0 commit comments