@@ -3,7 +3,7 @@ open SharedTypes
33let domLabels =
44 let bool = " bool" in
55 let float = " float" in
6- let int = " int" in
6+ let int = " int" in
77 let string = " string" in
88 [
99 (" ariaDetails" , string );
@@ -703,6 +703,7 @@ let detail name (kind : Completion.kind) =
703703 | Type {decl} -> decl |> Shared. declToString name
704704 | Value typ -> typ |> Shared. typeToString
705705 | ObjLabel typ -> typ |> Shared. typeToString
706+ | Label typString -> typString
706707 | Module _ -> " module"
707708 | FileModule _ -> " file module"
708709 | Field ({typ} , s ) -> name ^ " : " ^ (typ |> Shared. typeToString) ^ " \n\n " ^ s
@@ -1311,7 +1312,7 @@ let getOpens ~rawOpens ~package ~env =
13111312 (* Last open takes priority *)
13121313 List. rev resolvedOpens
13131314
1314- let processCompletable ~debug ~package ~scope ~env ~pos
1315+ let processCompletable ~debug ~package ~scope ~env ~pos ~ forHover
13151316 (completable : Completable.t ) =
13161317 let rawOpens = Scope. getRawOpens scope in
13171318 let opens = getOpens ~raw Opens ~package ~env in
@@ -1330,20 +1331,18 @@ let processCompletable ~debug ~package ~scope ~env ~pos
13301331 ~env ~exact: false ~scope
13311332 |> List. map completionToItem
13321333 | 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
13351336 in
1336- let mkLabel (name , typ ) = mkLabel_ name typ in
13371337 let keyLabels =
1338- if Utils. startsWith " key" prefix then [mkLabel_ " key" " string" ] else []
1338+ if Utils. startsWith " key" prefix then [mkLabel ( " key" , " string" ) ] else []
13391339 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
13471346 | Cjsx (componentPath , prefix , identsSeen ) ->
13481347 let labels =
13491348 match componentPath @ [" make" ] |> findTypeOfValue with
@@ -1389,7 +1388,7 @@ let processCompletable ~debug ~package ~scope ~env ~pos
13891388 | None -> []
13901389 in
13911390 let mkLabel_ name typString =
1392- mkItem ~name ~kind: 4 ~deprecated: None ~detail: typString ~docstring: []
1391+ Completion. create ~name ~kind: ( Label typString) ~env
13931392 in
13941393 let mkLabel (name , typ ) = mkLabel_ name (typ |> Shared. typeToString) in
13951394 let keyLabels =
@@ -1399,13 +1398,13 @@ let processCompletable ~debug ~package ~scope ~env ~pos
13991398 else
14001399 (labels
14011400 |> 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)))
14031403 |> List. map mkLabel)
14041404 @ keyLabels
1405+ |> List. map completionToItem
14051406 | 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
14091408 [
14101409 " as" ;
14111410 " deriving" ;
@@ -1445,7 +1444,7 @@ let processCompletable ~debug ~package ~scope ~env ~pos
14451444 else decorator
14461445 in
14471446 dec2)
1448- |> List. map mkDecorator
1447+ |> List. map mkDecorator |> List. map completionToItem
14491448 | CnamedArg (cp , prefix , identsSeen ) ->
14501449 let labels =
14511450 match
@@ -1475,11 +1474,9 @@ let processCompletable ~debug ~package ~scope ~env ~pos
14751474 | None -> []
14761475 in
14771476 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
14811478 in
14821479 labels
14831480 |> List. filter (fun (name , _t ) ->
14841481 Utils. startsWith name prefix && not (List. mem name identsSeen))
1485- |> List. map mkLabel
1482+ |> List. map mkLabel |> List. map completionToItem
0 commit comments