@@ -41,6 +41,17 @@ defmodule ElixirLS.LanguageServer.Providers.DocumentSymbolsTest do
41
41
def fun_multiple_when(_other) do
42
42
:something_else
43
43
end
44
+ def fun_multiline_args(
45
+ foo,
46
+ bar
47
+ )
48
+ when is_atom(foo),
49
+ do: foo
50
+ def fun_multiline_args(
51
+ foo,
52
+ bar
53
+ ),
54
+ do: bar
44
55
end
45
56
]
46
57
@@ -196,12 +207,22 @@ defmodule ElixirLS.LanguageServer.Providers.DocumentSymbolsTest do
196
207
"end" => % { "character" => 37 , "line" => 31 } ,
197
208
"start" => % { "character" => 12 , "line" => 31 }
198
209
}
210
+ } ,
211
+ % Protocol.DocumentSymbol {
212
+ children: [ ] ,
213
+ kind: 12 ,
214
+ name: "def fun_multiline_args(foo, bar)"
215
+ } ,
216
+ % Protocol.DocumentSymbol {
217
+ children: [ ] ,
218
+ kind: 12 ,
219
+ name: "def fun_multiline_args(foo, bar)"
199
220
}
200
221
] ,
201
222
kind: 2 ,
202
223
name: "MyModule" ,
203
224
range: % {
204
- "end" => % { "character" => 9 , "line" => 34 } ,
225
+ "end" => % { "character" => 9 , "line" => 45 } ,
205
226
"start" => % { "character" => 6 , "line" => 1 }
206
227
} ,
207
228
selectionRange: % {
@@ -238,6 +259,17 @@ defmodule ElixirLS.LanguageServer.Providers.DocumentSymbolsTest do
238
259
after
239
260
:ok
240
261
end
262
+ def fun_multiline_args(
263
+ foo,
264
+ bar
265
+ )
266
+ when is_atom(foo),
267
+ do: foo
268
+ def fun_multiline_args(
269
+ foo,
270
+ bar
271
+ ),
272
+ do: bar
241
273
end
242
274
]
243
275
@@ -250,7 +282,7 @@ defmodule ElixirLS.LanguageServer.Providers.DocumentSymbolsTest do
250
282
kind: 2 ,
251
283
location: % {
252
284
range: % {
253
- "end" => % { "character" => 9 , "line" => 24 } ,
285
+ "end" => % { "character" => 9 , "line" => 35 } ,
254
286
"start" => % { "character" => 6 , "line" => 1 }
255
287
}
256
288
}
@@ -344,6 +376,16 @@ defmodule ElixirLS.LanguageServer.Providers.DocumentSymbolsTest do
344
376
}
345
377
} ,
346
378
containerName: "MyModule"
379
+ } ,
380
+ % Protocol.SymbolInformation {
381
+ kind: 12 ,
382
+ name: "def fun_multiline_args(foo, bar)" ,
383
+ containerName: "MyModule"
384
+ } ,
385
+ % Protocol.SymbolInformation {
386
+ kind: 12 ,
387
+ name: "def fun_multiline_args(foo, bar)" ,
388
+ containerName: "MyModule"
347
389
}
348
390
] } = DocumentSymbols . symbols ( uri , parser_context , false )
349
391
end
@@ -1215,6 +1257,10 @@ defmodule ElixirLS.LanguageServer.Providers.DocumentSymbolsTest do
1215
1257
@type my_with_args_when(key, value) :: [{key, value}] when value: integer
1216
1258
@type abc
1217
1259
@type
1260
+ @type my_with_multiline_args(
1261
+ key,
1262
+ value
1263
+ ) :: [{key, value}]
1218
1264
end
1219
1265
"""
1220
1266
@@ -1271,6 +1317,11 @@ defmodule ElixirLS.LanguageServer.Providers.DocumentSymbolsTest do
1271
1317
children: [ ] ,
1272
1318
kind: 22 ,
1273
1319
name: "@type"
1320
+ } ,
1321
+ % Protocol.DocumentSymbol {
1322
+ children: [ ] ,
1323
+ kind: 5 ,
1324
+ name: "@type my_with_multiline_args(key, value)"
1274
1325
}
1275
1326
] ,
1276
1327
kind: 2 ,
@@ -1292,6 +1343,10 @@ defmodule ElixirLS.LanguageServer.Providers.DocumentSymbolsTest do
1292
1343
@type my_with_args_when(key, value) :: [{key, value}] when value: integer
1293
1344
@type abc
1294
1345
@type
1346
+ @type my_with_multiline_args(
1347
+ key,
1348
+ value
1349
+ ) :: [{key, value}]
1295
1350
end
1296
1351
"""
1297
1352
@@ -1348,6 +1403,11 @@ defmodule ElixirLS.LanguageServer.Providers.DocumentSymbolsTest do
1348
1403
kind: 22 ,
1349
1404
name: "@type" ,
1350
1405
containerName: "MyModule"
1406
+ } ,
1407
+ % Protocol.SymbolInformation {
1408
+ kind: 5 ,
1409
+ name: "@type my_with_multiline_args(key, value)" ,
1410
+ containerName: "MyModule"
1351
1411
}
1352
1412
] } = DocumentSymbols . symbols ( uri , parser_context , false )
1353
1413
end
@@ -2556,8 +2616,7 @@ defmodule ElixirLS.LanguageServer.Providers.DocumentSymbolsTest do
2556
2616
2557
2617
parser_context = ParserContextBuilder . from_string ( text )
2558
2618
2559
- assert { :ok , [ ] } =
2560
- DocumentSymbols . symbols ( uri , parser_context , true )
2619
+ assert { :ok , [ ] } = DocumentSymbols . symbols ( uri , parser_context , true )
2561
2620
end
2562
2621
2563
2622
test "returns def and defp as a prefix" do
0 commit comments