Skip to content

Commit 4c185dc

Browse files
U831-003: Handle generic package in Get_Decl_Kind
When parsing a generic package declaration LAL will return GenericPackageDecl(GenericPackageInternal(...)) at this point To prevent duplicate we must ignore either the GenericPackageDecl or the GenericPackageInternal => the completion returns the second. (Also Ada_Base_Package_Decl contains GenericPackageInternal and not GenericPackageDecl) Also fix a missing conversion between SymbolKind and CompletionKind Adapts tests.
1 parent 5a5d4d7 commit 4c185dc

File tree

5 files changed

+21
-25
lines changed

5 files changed

+21
-25
lines changed

source/ada/lsp-ada_documents.adb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ package body LSP.Ada_Documents is
8383
when LSP.Messages.A_Package => LSP.Messages.Module,
8484
when LSP.Messages.Module => LSP.Messages.Module,
8585
when LSP.Messages.Class => LSP.Messages.Class,
86+
when LSP.Messages.Struct => LSP.Messages.Class,
8687
when LSP.Messages.Number => LSP.Messages.Value,
8788
when LSP.Messages.Enum => LSP.Messages.Enum,
8889
when LSP.Messages.String => LSP.Messages.Value,
@@ -1570,10 +1571,10 @@ package body LSP.Ada_Documents is
15701571
use Libadalang.Common;
15711572
begin
15721573
case Node.Kind is
1573-
when Ada_Generic_Package_Decl |
1574+
when Ada_Base_Package_Decl |
1575+
Ada_Generic_Package_Decl |
15741576
Ada_Generic_Package_Instantiation |
15751577
Ada_Generic_Package_Renaming_Decl |
1576-
Ada_Package_Decl |
15771578
Ada_Package_Renaming_Decl |
15781579
Ada_Abstract_Subp_Decl |
15791580
Ada_Formal_Subp_Decl |

source/ada/lsp-ada_handlers-invisibles.adb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,8 @@ package body LSP.Ada_Handlers.Invisibles is
102102
return;
103103
end if;
104104

105-
-- Return without asing Libadalang for completion results we are dealing
106-
-- with a syntax error.
105+
-- Return without asking Libadalang for completion results we are
106+
-- dealing with a syntax error.
107107
if Node.Kind in Libadalang.Common.Ada_Error_Decl_Range then
108108
return;
109109
end if;

source/ada/lsp-lal_utils.adb

Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -291,21 +291,14 @@ package body LSP.Lal_Utils is
291291
return LSP.Messages.SymbolKind is
292292
begin
293293
case Node.Kind is
294-
when Ada_Generic_Formal_Subp_Decl |
295-
Ada_Abstract_Subp_Decl |
296-
Ada_Abstract_Formal_Subp_Decl |
297-
Ada_Concrete_Formal_Subp_Decl |
298-
Ada_Null_Subp_Decl |
299-
Ada_Subp_Decl |
300-
Ada_Subp_Renaming_Decl |
301-
Ada_Expr_Function |
302-
Ada_Subp_Body |
303-
Ada_Subp_Body_Stub |
304-
Ada_Entry_Body |
305-
Ada_Entry_Decl |
306-
Ada_Generic_Subp_Decl |
307-
Ada_Generic_Subp_Instantiation |
308-
Ada_Generic_Subp_Renaming_Decl =>
294+
when Ada_Classic_Subp_Decl |
295+
Ada_Base_Subp_Body |
296+
Ada_Entry_Body_Range |
297+
Ada_Entry_Decl_Range |
298+
Ada_Generic_Subp_Decl_Range |
299+
Ada_Generic_Subp_Instantiation_Range |
300+
Ada_Generic_Subp_Renaming_Decl_Range |
301+
Ada_Subp_Body_Stub_Range =>
309302
return LSP.Messages.A_Function;
310303

311304
when Ada_Component_Decl |
@@ -326,9 +319,11 @@ package body LSP.Lal_Utils is
326319
then LSP.Messages.A_Constant
327320
else LSP.Messages.Variable));
328321

329-
when Ada_Generic_Formal_Package |
330-
Ada_Package_Decl |
331-
Ada_Generic_Package_Decl |
322+
when Ada_Base_Package_Decl |
323+
Ada_Generic_Formal_Package |
324+
-- Ignore: Ada_Generic_Package_Decl kind, this node always have
325+
-- an Ada_Generic_Package_Internal as a child and we will use it
326+
-- to create the CompletionItem/DocumentSymbol
332327
Ada_Generic_Package_Instantiation |
333328
Ada_Generic_Package_Renaming_Decl |
334329
Ada_Package_Renaming_Decl =>

testsuite/ada_lsp/completion.invisible3/test.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@
152152
},
153153
{
154154
"label": "ABC14 (invisible)",
155-
"kind": 18,
155+
"kind": 9,
156156
"detail": "generic\n ABC13 : Integer;\npackage ABC14 ",
157157
"documentation": "at pkg.ads (19:4)",
158158
"sortText": "~ABC14",
@@ -161,7 +161,7 @@
161161
},
162162
{
163163
"label": "ABC4 (invisible)",
164-
"kind": 18,
164+
"kind": 7,
165165
"detail": "type ABC4 (ABC5 : Integer) is record\n ABC6 : Boolean := (for some ABC7 in Boolean => ABC7);\nend record;",
166166
"documentation": "at pkg.ads (5:4)",
167167
"sortText": "~ABC4",

testsuite/ada_lsp/completion.subp_params_dotted_names/test.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@
206206
},
207207
{
208208
"label": "My_Int",
209-
"kind": 18,
209+
"kind": 7,
210210
"detail": "type My_Int is tagged record\n A : Integer;\nend record;",
211211
"documentation": "at bar.ads (3:4)",
212212
"additionalTextEdits": [

0 commit comments

Comments
 (0)