@@ -631,9 +631,7 @@ let completionToItem
631631 | Some detail -> detail)
632632 ~docstring
633633 in
634- if ! Cfg. supportsSnippets then
635- {item with sortText; insertText; insertTextFormat; filterText}
636- else item
634+ {item with sortText; insertText; insertTextFormat; filterText}
637635
638636let completionsGetTypeEnv = function
639637 | {Completion. kind = Value typ ; env} :: _ -> Some (typ, env)
@@ -1021,14 +1019,13 @@ and getCompletionsForContextPath ~debug ~full ~opens ~rawOpens ~pos ~env ~exact
10211019 |> String. concat " ."
10221020 in
10231021 [
1024- Completion. createWithSnippet ~ name ~kind: (Value typ) ~env
1022+ Completion. create name ~includes Snippets: true ~kind: (Value typ) ~env
10251023 ~sort Text:" A"
10261024 ~docstring:
10271025 [
10281026 " Turns `" ^ builtinNameToComplete
10291027 ^ " ` into a JSX element so it can be used inside of JSX." ;
1030- ]
1031- () ;
1028+ ];
10321029 ]
10331030 @ completions
10341031 | _ -> completions)
@@ -1274,7 +1271,6 @@ let rec completeTypedValue ?(typeArgContext : typeArgContext option) ~rawOpens
12741271 ~full ~prefix ~completionContext ~mode (t : SharedTypes.completionType ) =
12751272 let emptyCase = emptyCase ~mode in
12761273 let printConstructorArgs = printConstructorArgs ~mode in
1277- let createWithSnippet = Completion. createWithSnippet ?typeArgContext in
12781274 let create = Completion. create ?typeArgContext in
12791275 match t with
12801276 | TtypeT {env; path} ->
@@ -1326,14 +1322,15 @@ let rec completeTypedValue ?(typeArgContext : typeArgContext option) ~rawOpens
13261322 if valueWithTypeT typeExpr then
13271323 getCompletionName name
13281324 |> Option. map (fun name ->
1329- createWithSnippet ~ name ~insert Text:name ~kind: ( Value typeExpr)
1330- ~env () )
1325+ create name ~includes Snippets: true ~insert Text:name
1326+ ~kind: ( Value typeExpr) ~env )
13311327 else if fnReturnsTypeT typeExpr then
13321328 getCompletionName name
13331329 |> Option. map (fun name ->
1334- createWithSnippet
1335- ~name: (Printf. sprintf " %s()" name)
1336- ~insert Text:(name ^ " ($0)" ) ~kind: (Value typeExpr) ~env () )
1330+ create
1331+ (Printf. sprintf " %s()" name)
1332+ ~includes Snippets:true ~insert Text:(name ^ " ($0)" )
1333+ ~kind: (Value typeExpr) ~env )
13371334 else None
13381335 in
13391336 let completionItems =
@@ -1353,8 +1350,8 @@ let rec completeTypedValue ?(typeArgContext : typeArgContext option) ~rawOpens
13531350 match path with
13541351 | Pdot (Pdot (Pident m , "Re" , _ ), "t" , _ ) when Ident. name m = " Js" ->
13551352 (* regexps *)
1356- createWithSnippet ~name: " %re()" ~insert Text:" %re(\" /$0/g\" )"
1357- ~kind: (Label " Regular expression" ) ~env ()
1353+ create " %re()" ~insert Text:" %re(\" /$0/g\" )" ~includes Snippets: true
1354+ ~kind: (Label " Regular expression" ) ~env
13581355 :: completionItems
13591356 | _ -> completionItems
13601357 in
@@ -1375,29 +1372,28 @@ let rec completeTypedValue ?(typeArgContext : typeArgContext option) ~rawOpens
13751372 | InlineRecord _ -> 1
13761373 | Args args -> List. length args
13771374 in
1378- createWithSnippet ?deprecated:constructor.deprecated
1379- ~name:
1380- (constructor.cname.txt
1381- ^ printConstructorArgs numArgs ~as Snippet:false )
1375+ create ?deprecated:constructor.deprecated ~includes Snippets:true
1376+ (constructor.cname.txt
1377+ ^ printConstructorArgs numArgs ~as Snippet:false )
13821378 ~insert Text:
13831379 (constructor.cname.txt
13841380 ^ printConstructorArgs numArgs ~as Snippet:true )
13851381 ~kind:
13861382 (Constructor
13871383 (constructor, variantDecl |> Shared. declToString variantName))
1388- ~env () )
1384+ ~env )
13891385 |> filterItems ~prefix
13901386 | Tpolyvariant {env; constructors; typeExpr} ->
13911387 if Debug. verbose () then
13921388 print_endline " [complete_typed_value]--> Tpolyvariant" ;
13931389 constructors
13941390 |> List. map (fun (constructor : polyVariantConstructor ) ->
1395- createWithSnippet
1396- ~name:
1397- ( " # " ^ constructor.displayName
1398- ^ printConstructorArgs
1399- ( List. length constructor.args )
1400- ~as Snippet: false )
1391+ create
1392+ ( " # " ^ constructor.displayName
1393+ ^ printConstructorArgs
1394+ ( List. length constructor.args)
1395+ ~as Snippet: false )
1396+ ~includes Snippets: true
14011397 ~insert Text:
14021398 ((if Utils. startsWith prefix " #" then " " else " #" )
14031399 ^ constructor.displayName
@@ -1407,7 +1403,7 @@ let rec completeTypedValue ?(typeArgContext : typeArgContext option) ~rawOpens
14071403 ~kind:
14081404 (PolyvariantConstructor
14091405 (constructor, typeExpr |> Shared. typeToString))
1410- ~env () )
1406+ ~env )
14111407 |> filterItems
14121408 ~prefix: (if Utils. startsWith prefix " #" then prefix else " #" ^ prefix)
14131409 | Toption (env , t ) ->
@@ -1436,19 +1432,17 @@ let rec completeTypedValue ?(typeArgContext : typeArgContext option) ~rawOpens
14361432 in
14371433 let noneCase = Completion. create " None" ~kind: (kindFromInnerType t) ~env in
14381434 let someAnyCase =
1439- createWithSnippet ~name: " Some(_)" ~kind: (kindFromInnerType t) ~env
1435+ create " Some(_)" ~includes Snippets: true ~kind: (kindFromInnerType t) ~env
14401436 ~insert Text:(Printf. sprintf " Some(%s)" (emptyCase 1 ))
1441- ()
14421437 in
14431438 let completions =
14441439 match completionContext with
14451440 | Some (Completable. CameFromRecordField fieldName ) ->
14461441 [
1447- createWithSnippet
1448- ~name: (" Some(" ^ fieldName ^ " )" )
1449- ~kind: (kindFromInnerType t) ~env
1450- ~insert Text:(" Some(" ^ fieldName ^ " )$0" )
1451- () ;
1442+ create
1443+ (" Some(" ^ fieldName ^ " )" )
1444+ ~includes Snippets:true ~kind: (kindFromInnerType t) ~env
1445+ ~insert Text:(" Some(" ^ fieldName ^ " )$0" );
14521446 someAnyCase;
14531447 noneCase;
14541448 ]
@@ -1498,24 +1492,21 @@ let rec completeTypedValue ?(typeArgContext : typeArgContext option) ~rawOpens
14981492 })
14991493 in
15001494 let okAnyCase =
1501- createWithSnippet ~name: " Ok(_)" ~kind: (Value okType) ~env
1495+ create " Ok(_)" ~includes Snippets: true ~kind: (Value okType) ~env
15021496 ~insert Text:(Printf. sprintf " Ok(%s)" (emptyCase 1 ))
1503- ()
15041497 in
15051498 let errorAnyCase =
1506- createWithSnippet ~name: " Error(_)" ~kind: (Value errorType) ~env
1499+ create " Error(_)" ~includes Snippets: true ~kind: (Value errorType) ~env
15071500 ~insert Text:(Printf. sprintf " Error(%s)" (emptyCase 1 ))
1508- ()
15091501 in
15101502 let completions =
15111503 match completionContext with
15121504 | Some (Completable. CameFromRecordField fieldName ) ->
15131505 [
1514- createWithSnippet
1515- ~name: (" Ok(" ^ fieldName ^ " )" )
1516- ~kind: (Value okType) ~env
1517- ~insert Text:(" Ok(" ^ fieldName ^ " )$0" )
1518- () ;
1506+ create
1507+ (" Ok(" ^ fieldName ^ " )" )
1508+ ~includes Snippets:true ~kind: (Value okType) ~env
1509+ ~insert Text:(" Ok(" ^ fieldName ^ " )$0" );
15191510 okAnyCase;
15201511 errorAnyCase;
15211512 ]
@@ -1527,10 +1518,11 @@ let rec completeTypedValue ?(typeArgContext : typeArgContext option) ~rawOpens
15271518 if Debug. verbose () then print_endline " [complete_typed_value]--> Tuple" ;
15281519 let numExprs = List. length exprs in
15291520 [
1530- createWithSnippet
1531- ~name: (printConstructorArgs numExprs ~as Snippet:false )
1521+ create
1522+ (printConstructorArgs numExprs ~as Snippet:false )
1523+ ~includes Snippets:true
15321524 ~insert Text:(printConstructorArgs numExprs ~as Snippet:true )
1533- ~kind: (Value typ) ~env () ;
1525+ ~kind: (Value typ) ~env ;
15341526 ]
15351527 | Trecord {env; fields} as extractedType -> (
15361528 if Debug. verbose () then print_endline " [complete_typed_value]--> Trecord" ;
@@ -1564,16 +1556,14 @@ let rec completeTypedValue ?(typeArgContext : typeArgContext option) ~rawOpens
15641556 | _ ->
15651557 if prefix = " " then
15661558 [
1567- createWithSnippet ~name: " {}"
1568- ~insert Text:(if ! Cfg. supportsSnippets then " {$0}" else " {}" )
1569- ~sort Text:" A"
1559+ create " {}" ~includes Snippets:true ~insert Text:" {$0}" ~sort Text:" A"
15701560 ~kind:
15711561 (ExtractedType
15721562 ( extractedType,
15731563 match mode with
15741564 | Pattern _ -> `Type
15751565 | Expression -> `Value ))
1576- ~env () ;
1566+ ~env ;
15771567 ]
15781568 else [] )
15791569 | TinlineRecord {env; fields} -> (
@@ -1591,18 +1581,15 @@ let rec completeTypedValue ?(typeArgContext : typeArgContext option) ~rawOpens
15911581 | _ ->
15921582 if prefix = " " then
15931583 [
1594- createWithSnippet ~name: " {}"
1595- ~insert Text:(if ! Cfg. supportsSnippets then " {$0}" else " {}" )
1596- ~sort Text:" A" ~kind: (Label " Inline record" ) ~env () ;
1584+ create " {}" ~includes Snippets:true ~insert Text:" {$0}" ~sort Text:" A"
1585+ ~kind: (Label " Inline record" ) ~env ;
15971586 ]
15981587 else [] )
15991588 | Tarray (env , typ ) ->
16001589 if Debug. verbose () then print_endline " [complete_typed_value]--> Tarray" ;
16011590 if prefix = " " then
16021591 [
1603- createWithSnippet ~name: " []"
1604- ~insert Text:(if ! Cfg. supportsSnippets then " [$0]" else " []" )
1605- ~sort Text:" A"
1592+ create " []" ~includes Snippets:true ~insert Text:" [$0]" ~sort Text:" A"
16061593 ~kind:
16071594 (match typ with
16081595 | ExtractedType typ ->
@@ -1612,19 +1599,17 @@ let rec completeTypedValue ?(typeArgContext : typeArgContext option) ~rawOpens
16121599 | Pattern _ -> `Type
16131600 | Expression -> `Value )
16141601 | TypeExpr typ -> Value typ)
1615- ~env () ;
1602+ ~env ;
16161603 ]
16171604 else []
16181605 | Tstring env ->
16191606 if Debug. verbose () then print_endline " [complete_typed_value]--> Tstring" ;
16201607 if prefix = " " then
16211608 [
1622- createWithSnippet ~name: " \"\" "
1623- ~insert Text:(if ! Cfg. supportsSnippets then " \" $0\" " else " \"\" " )
1624- ~sort Text:" A"
1609+ create " \"\" " ~includes Snippets:true ~insert Text:" \" $0\" " ~sort Text:" A"
16251610 ~kind:
16261611 (Value (Ctype. newconstr (Path. Pident (Ident. create " string" )) [] ))
1627- ~env () ;
1612+ ~env ;
16281613 ]
16291614 else []
16301615 | Tfunction {env; typ; args; uncurried; returnType}
@@ -1673,14 +1658,11 @@ let rec completeTypedValue ?(typeArgContext : typeArgContext option) ~rawOpens
16731658 in
16741659 let asyncPrefix = if isAsync then " async " else " " in
16751660 [
1676- createWithSnippet
1677- ~name: (asyncPrefix ^ mkFnArgs ~as Snippet:false ^ " => {}" )
1678- ~insert Text:
1679- (asyncPrefix
1680- ^ mkFnArgs ~as Snippet:! Cfg. supportsSnippets
1681- ^ " => "
1682- ^ if ! Cfg. supportsSnippets then " {$0}" else " {}" )
1683- ~sort Text:" A" ~kind: (Value typ) ~env () ;
1661+ create
1662+ (asyncPrefix ^ mkFnArgs ~as Snippet:false ^ " => {}" )
1663+ ~includes Snippets:true
1664+ ~insert Text:(asyncPrefix ^ mkFnArgs ~as Snippet:true ^ " => " ^ " {$0}" )
1665+ ~sort Text:" A" ~kind: (Value typ) ~env ;
16841666 ]
16851667 | Tfunction _ ->
16861668 if Debug. verbose () then
@@ -1952,8 +1934,8 @@ let rec processCompletable ~debug ~full ~scope ~env ~pos ~forHover completable =
19521934 | Cdecorator prefix ->
19531935 let mkDecorator (name , docstring , maybeInsertText ) =
19541936 {
1955- (Completion. createWithSnippet ~ name ~kind: (Label " " ) ~env
1956- ?insertText:maybeInsertText () )
1937+ (Completion. create name ~includes Snippets: true ~kind: (Label " " ) ~env
1938+ ?insertText:maybeInsertText)
19571939 with
19581940 docstring;
19591941 }
0 commit comments