@@ -1199,6 +1199,17 @@ local function insertDocEnum(state, pos, doc, enums)
1199
1199
return enums
1200
1200
end
1201
1201
1202
+ local function buildInsertDocFunction (doc )
1203
+ local args = {}
1204
+ for i , arg in ipairs (doc .args ) do
1205
+ args [i ] = (' ${%d:%s}' ):format (i , arg .name [1 ])
1206
+ end
1207
+ return (" \z
1208
+ function (%s)\
1209
+ \t $0\
1210
+ end" ):format (table.concat (args , ' , ' ))
1211
+ end
1212
+
1202
1213
--- @param state parser.state
1203
1214
--- @param pos integer
1204
1215
--- @param src vm.node.object
@@ -1220,6 +1231,26 @@ local function insertEnum(state, pos, src, enums, isInArray)
1220
1231
description = src .comment ,
1221
1232
kind = define .CompletionItemKind .EnumMember ,
1222
1233
}
1234
+ elseif src .type == ' doc.type.function' then
1235
+ --- @cast src parser.object
1236
+ local insertText = buildInsertDocFunction (src )
1237
+ local description
1238
+ if src .comment then
1239
+ description = src .comment
1240
+ else
1241
+ local descText = insertText :gsub (' %$%{%d+:([^}]+)%}' , function (val )
1242
+ return val
1243
+ end ):gsub (' %$%{?%d+%}?' , ' ' )
1244
+ description = markdown ()
1245
+ : add (' lua' , descText )
1246
+ : string ()
1247
+ end
1248
+ enums [# enums + 1 ] = {
1249
+ label = vm .getInfer (src ):view (state .uri ),
1250
+ description = description ,
1251
+ kind = define .CompletionItemKind .Function ,
1252
+ insertText = insertText ,
1253
+ }
1223
1254
elseif isInArray and src .type == ' doc.type.array' then
1224
1255
for i , d in ipairs (vm .getDefs (src .node )) do
1225
1256
insertEnum (state , pos , d , enums , isInArray )
@@ -1433,17 +1464,6 @@ local function trySymbol(state, position, results)
1433
1464
end
1434
1465
end
1435
1466
1436
- local function buildInsertDocFunction (doc )
1437
- local args = {}
1438
- for i , arg in ipairs (doc .args ) do
1439
- args [i ] = (' ${%d:%s}' ):format (i , arg .name [1 ])
1440
- end
1441
- return (" \z
1442
- function (%s)\
1443
- \t $0\
1444
- end" ):format (table.concat (args , ' , ' ))
1445
- end
1446
-
1447
1467
local function findCall (state , position )
1448
1468
local call
1449
1469
guide .eachSourceContain (state .ast , position , function (src )
@@ -1534,27 +1554,6 @@ local function tryCallArg(state, position, results)
1534
1554
local enums = {}
1535
1555
for src in node :eachObject () do
1536
1556
insertEnum (state , position , src , enums , arg and arg .type == ' table' )
1537
- if src .type == ' doc.type.function' then
1538
- --- @cast src parser.object
1539
- local insertText = buildInsertDocFunction (src )
1540
- local description
1541
- if src .comment then
1542
- description = src .comment
1543
- else
1544
- local descText = insertText :gsub (' %$%{%d+:([^}]+)%}' , function (val )
1545
- return val
1546
- end ):gsub (' %$%{?%d+%}?' , ' ' )
1547
- description = markdown ()
1548
- : add (' lua' , descText )
1549
- : string ()
1550
- end
1551
- enums [# enums + 1 ] = {
1552
- label = vm .getInfer (src ):view (state .uri ),
1553
- description = description ,
1554
- kind = define .CompletionItemKind .Function ,
1555
- insertText = insertText ,
1556
- }
1557
- end
1558
1557
end
1559
1558
cleanEnums (enums , arg )
1560
1559
for _ , enum in ipairs (enums ) do
0 commit comments