File tree Expand file tree Collapse file tree
T723-027.signatureHelp.nested
T723-027.signatureHelp.overloaded
T723-027.signatureHelp.simple
U429-030.signatureHelp.dot_call
U805-023.signatureHelp.context
U805-023.signatureHelp.designators
U909-007.signatureHelp.closing_par
U909-007.signatureHelp.type_cast
signature_help_active_parameter_multiple_signatures
signature_help_active_parameter Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -889,6 +889,13 @@ package body LSP.Ada_Completions.Parameters is
889889 Cursor => Cursor,
890890 Prev_Signatures => Filter_Signatures,
891891 Res => Res);
892+
893+ if not Res.activeSignature.Is_Set or else Res.activeSignature.Value + 1 not in Res.signatures.First_Index .. Res.signatures.Last_Index then
894+ Res.activeSignature := (Is_Set => True, Value => 0 );
895+ else
896+ Res.activeParameter := Res.signatures.Element (Res.activeSignature.Value + 1 ).activeParameter;
897+ end if ;
898+ -- Vector index start at 1
892899 end Propose_Signatures ;
893900
894901 -- -----------------
Original file line number Diff line number Diff line change 55 " call. The signature should switch to the nested call and then go " ,
66 " back to the initial one."
77 ]
8- },
8+ },
99 {
1010 "start" : {
1111 "cmd" : [
1212 " ${ALS}"
1313 ]
1414 }
15- },
15+ },
1616 {
1717 "send" : {
1818 "request" : {
5151 {
5252 "send" : {
5353 "request" : {
54- "jsonrpc" : " 2.0" ,
54+ "jsonrpc" : " 2.0" ,
5555 "method" : " initialized"
56- },
56+ },
5757 "wait" : []
5858 }
59- },
59+ },
6060 {
6161 "send" : {
6262 "request" : {
6868 "defaultCharset" : " ISO-8859-1"
6969 }
7070 }
71- },
72- "jsonrpc" : " 2.0" ,
71+ },
72+ "jsonrpc" : " 2.0" ,
7373 "method" : " workspace/didChangeConfiguration"
74- },
74+ },
7575 "wait" : []
7676 }
77- },
77+ },
7878 {
7979 "send" : {
8080 "request" : {
321321 }
322322 ],
323323 "activeSignature" : 0 ,
324- "activeParameter" : 0
324+ "activeParameter" : 1
325325 }
326326 }
327327 ]
396396 }
397397 ],
398398 "activeSignature" : 0 ,
399- "activeParameter" : 0
399+ "activeParameter" : 1
400400 }
401401 }
402402 ]
471471 }
472472 ],
473473 "activeSignature" : 0 ,
474- "activeParameter" : 0
474+ "activeParameter" : 1
475475 }
476476 }
477477 ]
546546 }
547547 ],
548548 "activeSignature" : 0 ,
549- "activeParameter" : 0
549+ "activeParameter" : 1
550550 }
551551 }
552552 ]
621621 }
622622 ],
623623 "activeSignature" : 0 ,
624- "activeParameter" : 0
624+ "activeParameter" : 1
625625 }
626626 }
627627 ]
696696 }
697697 ],
698698 "activeSignature" : 0 ,
699- "activeParameter" : 0
699+ "activeParameter" : 1
700700 }
701701 }
702702 ]
771771 }
772772 ],
773773 "activeSignature" : 0 ,
774- "activeParameter" : 0
774+ "activeParameter" : 1
775775 }
776776 }
777777 ]
846846 }
847847 ],
848848 "activeSignature" : 0 ,
849- "activeParameter" : 0
849+ "activeParameter" : 1
850850 }
851851 }
852852 ]
921921 }
922922 ],
923923 "activeSignature" : 0 ,
924- "activeParameter" : 0
924+ "activeParameter" : 1
925925 }
926926 }
927927 ]
11341134 }
11351135 ],
11361136 "activeSignature" : 0 ,
1137- "activeParameter" : 0
1137+ "activeParameter" : 1
11381138 }
11391139 }
11401140 ]
12091209 }
12101210 ],
12111211 "activeSignature" : 0 ,
1212- "activeParameter" : 0
1212+ "activeParameter" : 2
12131213 }
12141214 }
12151215 ]
12841284 }
12851285 ],
12861286 "activeSignature" : 0 ,
1287- "activeParameter" : 0
1287+ "activeParameter" : 2
12881288 }
12891289 }
12901290 ]
13591359 }
13601360 ],
13611361 "activeSignature" : 0 ,
1362- "activeParameter" : 0
1362+ "activeParameter" : 2
13631363 }
13641364 }
13651365 ]
Original file line number Diff line number Diff line change 354354 }
355355 ],
356356 "activeSignature" : 0 ,
357- "activeParameter" : 0
357+ "activeParameter" : 1
358358 }
359359 }
360360 ]
442442 }
443443 ],
444444 "activeSignature" : 0 ,
445- "activeParameter" : 0
445+ "activeParameter" : 1
446446 }
447447 }
448448 ]
530530 }
531531 ],
532532 "activeSignature" : 0 ,
533- "activeParameter" : 0
533+ "activeParameter" : 1
534534 }
535535 }
536536 ]
605605 }
606606 ],
607607 "activeSignature" : 0 ,
608- "activeParameter" : 0
608+ "activeParameter" : 2
609609 }
610610 }
611611 ]
680680 }
681681 ],
682682 "activeSignature" : 0 ,
683- "activeParameter" : 0
683+ "activeParameter" : 2
684684 }
685685 }
686686 ]
755755 }
756756 ],
757757 "activeSignature" : 0 ,
758- "activeParameter" : 0
758+ "activeParameter" : 2
759759 }
760760 }
761761 ]
Original file line number Diff line number Diff line change 44 " Test signatureHelp for a simple case and verify that the active " ,
55 " parameter is properly changed while editing"
66 ]
7- },
7+ },
88 {
99 "start" : {
1010 "cmd" : [
1111 " ${ALS}"
1212 ]
1313 }
14- },
14+ },
1515 {
1616 "send" : {
1717 "request" : {
6262 {
6363 "send" : {
6464 "request" : {
65- "jsonrpc" : " 2.0" ,
65+ "jsonrpc" : " 2.0" ,
6666 "method" : " initialized"
67- },
67+ },
6868 "wait" : []
6969 }
70- },
70+ },
7171 {
7272 "send" : {
7373 "request" : {
7979 "defaultCharset" : " ISO-8859-1"
8080 }
8181 }
82- },
83- "jsonrpc" : " 2.0" ,
82+ },
83+ "jsonrpc" : " 2.0" ,
8484 "method" : " workspace/didChangeConfiguration"
85- },
85+ },
8686 "wait" : []
8787 }
88- },
88+ },
8989 {
9090 "send" : {
9191 "request" : {
472472 }
473473 ],
474474 "activeSignature" : 0 ,
475- "activeParameter" : 0
475+ "activeParameter" : 1
476476 }
477477 }
478478 ]
547547 }
548548 ],
549549 "activeSignature" : 0 ,
550- "activeParameter" : 0
550+ "activeParameter" : 1
551551 }
552552 }
553553 ]
622622 }
623623 ],
624624 "activeSignature" : 0 ,
625- "activeParameter" : 0
625+ "activeParameter" : 1
626626 }
627627 }
628628 ]
697697 }
698698 ],
699699 "activeSignature" : 0 ,
700- "activeParameter" : 0
700+ "activeParameter" : 2
701701 }
702702 }
703703 ]
772772 }
773773 ],
774774 "activeSignature" : 0 ,
775- "activeParameter" : 0
775+ "activeParameter" : 2
776776 }
777777 }
778778 ]
847847 }
848848 ],
849849 "activeSignature" : 0 ,
850- "activeParameter" : 0
850+ "activeParameter" : 2
851851 }
852852 }
853853 ]
You can’t perform that action at this time.
0 commit comments