Skip to content

Commit 3351578

Browse files
author
Mathéo Rome
committed
Handle both SignatureHelp and SignatureInformation activeParameter
1 parent d3c9bad commit 3351578

File tree

19 files changed

+365
-150
lines changed

19 files changed

+365
-150
lines changed

Diff for: source/ada/lsp-ada_completions-parameters.adb

+7
Original file line numberDiff line numberDiff 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
-------------------

Diff for: testsuite/ada_lsp/T723-027.signatureHelp.nested/test.json

+22-22
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
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": {
@@ -51,12 +51,12 @@
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": {
@@ -68,13 +68,13 @@
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": {
@@ -321,7 +321,7 @@
321321
}
322322
],
323323
"activeSignature": 0,
324-
"activeParameter": 0
324+
"activeParameter": 1
325325
}
326326
}
327327
]
@@ -396,7 +396,7 @@
396396
}
397397
],
398398
"activeSignature": 0,
399-
"activeParameter": 0
399+
"activeParameter": 1
400400
}
401401
}
402402
]
@@ -471,7 +471,7 @@
471471
}
472472
],
473473
"activeSignature": 0,
474-
"activeParameter": 0
474+
"activeParameter": 1
475475
}
476476
}
477477
]
@@ -546,7 +546,7 @@
546546
}
547547
],
548548
"activeSignature": 0,
549-
"activeParameter": 0
549+
"activeParameter": 1
550550
}
551551
}
552552
]
@@ -621,7 +621,7 @@
621621
}
622622
],
623623
"activeSignature": 0,
624-
"activeParameter": 0
624+
"activeParameter": 1
625625
}
626626
}
627627
]
@@ -696,7 +696,7 @@
696696
}
697697
],
698698
"activeSignature": 0,
699-
"activeParameter": 0
699+
"activeParameter": 1
700700
}
701701
}
702702
]
@@ -771,7 +771,7 @@
771771
}
772772
],
773773
"activeSignature": 0,
774-
"activeParameter": 0
774+
"activeParameter": 1
775775
}
776776
}
777777
]
@@ -846,7 +846,7 @@
846846
}
847847
],
848848
"activeSignature": 0,
849-
"activeParameter": 0
849+
"activeParameter": 1
850850
}
851851
}
852852
]
@@ -921,7 +921,7 @@
921921
}
922922
],
923923
"activeSignature": 0,
924-
"activeParameter": 0
924+
"activeParameter": 1
925925
}
926926
}
927927
]
@@ -1134,7 +1134,7 @@
11341134
}
11351135
],
11361136
"activeSignature": 0,
1137-
"activeParameter": 0
1137+
"activeParameter": 1
11381138
}
11391139
}
11401140
]
@@ -1209,7 +1209,7 @@
12091209
}
12101210
],
12111211
"activeSignature": 0,
1212-
"activeParameter": 0
1212+
"activeParameter": 2
12131213
}
12141214
}
12151215
]
@@ -1284,7 +1284,7 @@
12841284
}
12851285
],
12861286
"activeSignature": 0,
1287-
"activeParameter": 0
1287+
"activeParameter": 2
12881288
}
12891289
}
12901290
]
@@ -1359,7 +1359,7 @@
13591359
}
13601360
],
13611361
"activeSignature": 0,
1362-
"activeParameter": 0
1362+
"activeParameter": 2
13631363
}
13641364
}
13651365
]

Diff for: testsuite/ada_lsp/T723-027.signatureHelp.overloaded/test.json

+6-6
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,7 @@
354354
}
355355
],
356356
"activeSignature": 0,
357-
"activeParameter": 0
357+
"activeParameter": 1
358358
}
359359
}
360360
]
@@ -442,7 +442,7 @@
442442
}
443443
],
444444
"activeSignature": 0,
445-
"activeParameter": 0
445+
"activeParameter": 1
446446
}
447447
}
448448
]
@@ -530,7 +530,7 @@
530530
}
531531
],
532532
"activeSignature": 0,
533-
"activeParameter": 0
533+
"activeParameter": 1
534534
}
535535
}
536536
]
@@ -605,7 +605,7 @@
605605
}
606606
],
607607
"activeSignature": 0,
608-
"activeParameter": 0
608+
"activeParameter": 2
609609
}
610610
}
611611
]
@@ -680,7 +680,7 @@
680680
}
681681
],
682682
"activeSignature": 0,
683-
"activeParameter": 0
683+
"activeParameter": 2
684684
}
685685
}
686686
]
@@ -755,7 +755,7 @@
755755
}
756756
],
757757
"activeSignature": 0,
758-
"activeParameter": 0
758+
"activeParameter": 2
759759
}
760760
}
761761
]

Diff for: testsuite/ada_lsp/T723-027.signatureHelp.simple/test.json

+15-15
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@
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": {
@@ -62,12 +62,12 @@
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": {
@@ -79,13 +79,13 @@
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": {
@@ -472,7 +472,7 @@
472472
}
473473
],
474474
"activeSignature": 0,
475-
"activeParameter": 0
475+
"activeParameter": 1
476476
}
477477
}
478478
]
@@ -547,7 +547,7 @@
547547
}
548548
],
549549
"activeSignature": 0,
550-
"activeParameter": 0
550+
"activeParameter": 1
551551
}
552552
}
553553
]
@@ -622,7 +622,7 @@
622622
}
623623
],
624624
"activeSignature": 0,
625-
"activeParameter": 0
625+
"activeParameter": 1
626626
}
627627
}
628628
]
@@ -697,7 +697,7 @@
697697
}
698698
],
699699
"activeSignature": 0,
700-
"activeParameter": 0
700+
"activeParameter": 2
701701
}
702702
}
703703
]
@@ -772,7 +772,7 @@
772772
}
773773
],
774774
"activeSignature": 0,
775-
"activeParameter": 0
775+
"activeParameter": 2
776776
}
777777
}
778778
]
@@ -847,7 +847,7 @@
847847
}
848848
],
849849
"activeSignature": 0,
850-
"activeParameter": 0
850+
"activeParameter": 2
851851
}
852852
}
853853
]

0 commit comments

Comments
 (0)