@@ -3,7 +3,7 @@ open SharedTypes
3
3
let domLabels =
4
4
let bool = " bool" in
5
5
let float = " float" in
6
- let int = " int" in
6
+ let int = " int" in
7
7
let string = " string" in
8
8
[
9
9
(" ariaDetails" , string );
@@ -703,6 +703,7 @@ let detail name (kind : Completion.kind) =
703
703
| Type {decl} -> decl |> Shared. declToString name
704
704
| Value typ -> typ |> Shared. typeToString
705
705
| ObjLabel typ -> typ |> Shared. typeToString
706
+ | Label typString -> typString
706
707
| Module _ -> " module"
707
708
| FileModule _ -> " file module"
708
709
| Field ({typ} , s ) -> name ^ " : " ^ (typ |> Shared. typeToString) ^ " \n\n " ^ s
@@ -1311,7 +1312,7 @@ let getOpens ~rawOpens ~package ~env =
1311
1312
(* Last open takes priority *)
1312
1313
List. rev resolvedOpens
1313
1314
1314
- let processCompletable ~debug ~package ~scope ~env ~pos
1315
+ let processCompletable ~debug ~package ~scope ~env ~pos ~ forHover
1315
1316
(completable : Completable.t ) =
1316
1317
let rawOpens = Scope. getRawOpens scope in
1317
1318
let opens = getOpens ~raw Opens ~package ~env in
@@ -1330,20 +1331,18 @@ let processCompletable ~debug ~package ~scope ~env ~pos
1330
1331
~env ~exact: false ~scope
1331
1332
|> List. map completionToItem
1332
1333
| Cjsx ([id ], prefix , identsSeen ) when String. uncapitalize_ascii id = id ->
1333
- let mkLabel_ name typString =
1334
- mkItem ~name ~kind: 4 ~deprecated: None ~detail: typString ~docstring: []
1334
+ let mkLabel ( name , typString ) =
1335
+ Completion. create ~name ~kind: ( Label typString) ~env
1335
1336
in
1336
- let mkLabel (name , typ ) = mkLabel_ name typ in
1337
1337
let keyLabels =
1338
- if Utils. startsWith " key" prefix then [mkLabel_ " key" " string" ] else []
1338
+ if Utils. startsWith " key" prefix then [mkLabel ( " key" , " string" ) ] else []
1339
1339
in
1340
- if domLabels = [] then []
1341
- else
1342
- (domLabels
1343
- |> List. filter (fun (name , _t ) ->
1344
- Utils. startsWith name prefix && not (List. mem name identsSeen))
1345
- |> List. map mkLabel)
1346
- @ keyLabels
1340
+ (domLabels
1341
+ |> List. filter (fun (name , _t ) ->
1342
+ Utils. startsWith name prefix && not (List. mem name identsSeen))
1343
+ |> List. map mkLabel)
1344
+ @ keyLabels
1345
+ |> List. map completionToItem
1347
1346
| Cjsx (componentPath , prefix , identsSeen ) ->
1348
1347
let labels =
1349
1348
match componentPath @ [" make" ] |> findTypeOfValue with
@@ -1389,7 +1388,7 @@ let processCompletable ~debug ~package ~scope ~env ~pos
1389
1388
| None -> []
1390
1389
in
1391
1390
let mkLabel_ name typString =
1392
- mkItem ~name ~kind: 4 ~deprecated: None ~detail: typString ~docstring: []
1391
+ Completion. create ~name ~kind: ( Label typString) ~env
1393
1392
in
1394
1393
let mkLabel (name , typ ) = mkLabel_ name (typ |> Shared. typeToString) in
1395
1394
let keyLabels =
@@ -1399,13 +1398,13 @@ let processCompletable ~debug ~package ~scope ~env ~pos
1399
1398
else
1400
1399
(labels
1401
1400
|> List. filter (fun (name , _t ) ->
1402
- Utils. startsWith name prefix && not (List. mem name identsSeen))
1401
+ Utils. startsWith name prefix
1402
+ && (forHover || not (List. mem name identsSeen)))
1403
1403
|> List. map mkLabel)
1404
1404
@ keyLabels
1405
+ |> List. map completionToItem
1405
1406
| Cdecorator prefix ->
1406
- let mkDecorator name =
1407
- mkItem ~name ~kind: 4 ~deprecated: None ~detail: " " ~docstring: []
1408
- in
1407
+ let mkDecorator name = Completion. create ~name ~kind: (Label " " ) ~env in
1409
1408
[
1410
1409
" as" ;
1411
1410
" deriving" ;
@@ -1445,7 +1444,7 @@ let processCompletable ~debug ~package ~scope ~env ~pos
1445
1444
else decorator
1446
1445
in
1447
1446
dec2)
1448
- |> List. map mkDecorator
1447
+ |> List. map mkDecorator |> List. map completionToItem
1449
1448
| CnamedArg (cp , prefix , identsSeen ) ->
1450
1449
let labels =
1451
1450
match
@@ -1475,11 +1474,9 @@ let processCompletable ~debug ~package ~scope ~env ~pos
1475
1474
| None -> []
1476
1475
in
1477
1476
let mkLabel (name , typ ) =
1478
- mkItem ~name ~kind: 4 ~deprecated: None
1479
- ~detail: (typ |> Shared. typeToString)
1480
- ~docstring: []
1477
+ Completion. create ~name ~kind: (Label (typ |> Shared. typeToString)) ~env
1481
1478
in
1482
1479
labels
1483
1480
|> List. filter (fun (name , _t ) ->
1484
1481
Utils. startsWith name prefix && not (List. mem name identsSeen))
1485
- |> List. map mkLabel
1482
+ |> List. map mkLabel |> List. map completionToItem
0 commit comments