diff --git a/analysis/src/Commands.ml b/analysis/src/Commands.ml index 464b3fa53d..87bb896fbb 100644 --- a/analysis/src/Commands.ml +++ b/analysis/src/Commands.ml @@ -4,7 +4,7 @@ let completion ~debug ~path ~pos ~currentFile = Completions.getCompletions ~debug ~path ~pos ~currentFile ~forHover:false with | None -> [] - | Some (completions, full, _) -> + | Some (completions, full, _, _) -> completions |> List.map (CompletionBackEnd.completionToItem ~full) |> List.map Protocol.stringifyCompletionItem diff --git a/analysis/src/CompletionBackEnd.ml b/analysis/src/CompletionBackEnd.ml index 96dab722d1..76d20e1cdd 100644 --- a/analysis/src/CompletionBackEnd.ml +++ b/analysis/src/CompletionBackEnd.ml @@ -774,7 +774,7 @@ let completionsGetCompletionType ~full completions = | _ -> None let rec completionsGetCompletionType2 ~debug ~full ~opens ~rawOpens ~pos - completions = + ~cursorPath completions = let firstNonSyntheticCompletion = List.find_opt (fun c -> not c.Completion.synthetic) completions in @@ -787,8 +787,9 @@ let rec completionsGetCompletionType2 ~debug ~full ~opens ~rawOpens ~pos | Some {Completion.kind = FollowContextPath (ctxPath, scope); env} -> ctxPath |> getCompletionsForContextPath ~debug ~full ~env ~exact:true ~opens - ~rawOpens ~pos ~scope + ~rawOpens ~pos ~scope ~cursorPath |> completionsGetCompletionType2 ~debug ~full ~opens ~rawOpens ~pos + ~cursorPath | Some {Completion.kind = Type typ; env} -> ( match TypeUtils.extractTypeFromResolvedType typ ~env ~full with | None -> None @@ -798,7 +799,7 @@ let rec completionsGetCompletionType2 ~debug ~full ~opens ~rawOpens ~pos | _ -> None and completionsGetTypeEnv2 ~debug (completions : Completion.t list) ~full ~opens - ~rawOpens ~pos = + ~rawOpens ~pos ~cursorPath = let firstNonSyntheticCompletion = List.find_opt (fun c -> not c.Completion.synthetic) completions in @@ -809,12 +810,12 @@ and completionsGetTypeEnv2 ~debug (completions : Completion.t list) ~full ~opens | Some {Completion.kind = FollowContextPath (ctxPath, scope); env} -> ctxPath |> getCompletionsForContextPath ~debug ~full ~opens ~rawOpens ~pos ~env - ~exact:true ~scope - |> completionsGetTypeEnv2 ~debug ~full ~opens ~rawOpens ~pos + ~exact:true ~scope ~cursorPath + |> completionsGetTypeEnv2 ~debug ~full ~opens ~rawOpens ~pos ~cursorPath | _ -> None and getCompletionsForContextPath ~debug ~full ~opens ~rawOpens ~pos ~env ~exact - ~scope ?(mode = Regular) contextPath = + ~scope ?(mode = Regular) ~cursorPath contextPath = let envCompletionIsMadeFrom = env in if debug then Printf.printf "ContextPath %s\n" @@ -847,7 +848,7 @@ and getCompletionsForContextPath ~debug ~full ~opens ~rawOpens ~pos ~env ~exact match cp |> getCompletionsForContextPath ~debug ~full ~opens ~rawOpens ~pos ~env - ~exact:true ~scope + ~exact:true ~scope ~cursorPath |> completionsGetCompletionType ~full with | None -> [] @@ -869,7 +870,7 @@ and getCompletionsForContextPath ~debug ~full ~opens ~rawOpens ~pos ~env ~exact match cp |> getCompletionsForContextPath ~debug ~full ~opens ~rawOpens ~pos ~env - ~exact:true ~scope + ~exact:true ~scope ~cursorPath |> completionsGetCompletionType ~full with | None -> [] @@ -884,7 +885,7 @@ and getCompletionsForContextPath ~debug ~full ~opens ~rawOpens ~pos ~env ~exact match cp |> getCompletionsForContextPath ~debug ~full ~opens ~rawOpens ~pos ~env - ~exact:true ~scope + ~exact:true ~scope ~cursorPath |> completionsGetCompletionType ~full with | Some (Tpromise (env, typ), _env) -> @@ -934,8 +935,9 @@ and getCompletionsForContextPath ~debug ~full ~opens ~rawOpens ~pos ~env ~exact match cp |> getCompletionsForContextPath ~debug ~full ~opens ~rawOpens ~pos ~env - ~exact:true ~scope + ~exact:true ~scope ~cursorPath |> completionsGetCompletionType2 ~debug ~full ~opens ~rawOpens ~pos + ~cursorPath with | Some ((TypeExpr typ | ExtractedType (Tfunction {typ})), env) -> ( let rec reconstructFunctionType args tRet = @@ -985,11 +987,11 @@ and getCompletionsForContextPath ~debug ~full ~opens ~rawOpens ~pos ~env ~exact let completionsFromCtxPath = cp |> getCompletionsForContextPath ~debug ~full ~opens ~rawOpens ~pos ~env - ~exact:true ~scope + ~exact:true ~scope ~cursorPath in let mainTypeCompletionEnv = completionsFromCtxPath - |> completionsGetTypeEnv2 ~debug ~full ~opens ~rawOpens ~pos + |> completionsGetTypeEnv2 ~debug ~full ~opens ~rawOpens ~pos ~cursorPath in match mainTypeCompletionEnv with | None -> @@ -1021,7 +1023,7 @@ and getCompletionsForContextPath ~debug ~full ~opens ~rawOpens ~pos ~env ~exact let pipeCompletions = cpAsPipeCompletion |> getCompletionsForContextPath ~debug ~full ~opens ~rawOpens ~pos - ~env:envCompletionIsMadeFrom ~exact ~scope + ~env:envCompletionIsMadeFrom ~exact ~scope ~cursorPath |> List.filter_map (fun c -> TypeUtils.transformCompletionToPipeCompletion ~synthetic:true ~env ?posOfDot c) @@ -1033,8 +1035,8 @@ and getCompletionsForContextPath ~debug ~full ~opens ~rawOpens ~pos ~env ~exact match cp |> getCompletionsForContextPath ~debug ~full ~opens ~rawOpens ~pos ~env - ~exact:true ~scope - |> completionsGetTypeEnv2 ~debug ~full ~opens ~rawOpens ~pos + ~exact:true ~scope ~cursorPath + |> completionsGetTypeEnv2 ~debug ~full ~opens ~rawOpens ~pos ~cursorPath with | Some (typ, env) -> ( match typ |> TypeUtils.extractObjectType ~env ~package with @@ -1052,8 +1054,8 @@ and getCompletionsForContextPath ~debug ~full ~opens ~rawOpens ~pos ~env ~exact match cp |> getCompletionsForContextPath ~debug ~full ~opens ~rawOpens ~pos ~env - ~exact:true ~scope ~mode:Pipe - |> completionsGetTypeEnv2 ~debug ~full ~opens ~rawOpens ~pos + ~exact:true ~scope ~mode:Pipe ~cursorPath + |> completionsGetTypeEnv2 ~debug ~full ~opens ~rawOpens ~pos ~cursorPath with | None -> if Debug.verbose () then @@ -1180,8 +1182,17 @@ and getCompletionsForContextPath ~debug ~full ~opens ~rawOpens ~pos ~env ~exact |> TypeUtils.filterPipeableFunctions ~synthetic:true ~env ~full ~targetTypeId:mainTypeId in + (* Add completions from current fully qualified path module *) + let currentFullyQualifiedPathModuleCompletions = + completionsForPipeFromCompletionPath ~envCompletionIsMadeFrom + ~opens:[] ~pos ~scope ~debug ~prefix ~env ~rawOpens ~full cursorPath + + |> TypeUtils.filterPipeableFunctions ~synthetic:true ~env ~full + ~targetTypeId:mainTypeId + in jsxCompletions @ pipeCompletions @ extraCompletions - @ currentModuleCompletions @ globallyConfiguredCompletions)) + @ currentModuleCompletions @ globallyConfiguredCompletions + @ currentFullyQualifiedPathModuleCompletions)) | CTuple ctxPaths -> if Debug.verbose () then print_endline "[ctx_path]--> CTuple"; (* Turn a list of context paths into a list of type expressions. *) @@ -1190,7 +1201,7 @@ and getCompletionsForContextPath ~debug ~full ~opens ~rawOpens ~pos ~env ~exact |> List.map (fun contextPath -> contextPath |> getCompletionsForContextPath ~debug ~full ~opens ~rawOpens ~pos - ~env ~exact:true ~scope) + ~env ~exact:true ~scope ~cursorPath) |> List.filter_map (fun completionItems -> match completionItems with | {Completion.kind = Value typ} :: _ -> Some typ @@ -1208,7 +1219,7 @@ and getCompletionsForContextPath ~debug ~full ~opens ~rawOpens ~pos ~env ~exact path |> getCompletionsForPath ~debug ~completionContext:Value ~exact:true ~opens ~full ~pos ~env ~scope - |> completionsGetTypeEnv2 ~debug ~full ~opens ~rawOpens ~pos + |> completionsGetTypeEnv2 ~debug ~full ~opens ~rawOpens ~pos ~cursorPath in let lowercaseComponent = match pathToComponent with @@ -1283,8 +1294,9 @@ and getCompletionsForContextPath ~debug ~full ~opens ~rawOpens ~pos ~env ~exact match functionContextPath |> getCompletionsForContextPath ~debug ~full ~opens ~rawOpens ~pos ~env - ~exact:true ~scope + ~exact:true ~scope ~cursorPath |> completionsGetCompletionType2 ~debug ~full ~opens ~rawOpens ~pos + ~cursorPath with | Some ((TypeExpr typ | ExtractedType (Tfunction {typ})), env) -> if Debug.verbose () then print_endline "--> found function type"; @@ -1330,8 +1342,9 @@ and getCompletionsForContextPath ~debug ~full ~opens ~rawOpens ~pos ~env ~exact match rootCtxPath |> getCompletionsForContextPath ~debug ~full ~opens ~rawOpens ~pos ~env - ~exact:true ~scope + ~exact:true ~scope ~cursorPath |> completionsGetCompletionType2 ~debug ~full ~opens ~rawOpens ~pos + ~cursorPath with | Some (typ, env) -> ( match typ |> TypeUtils.resolveNestedPatternPath ~env ~full ~nested with @@ -1846,7 +1859,8 @@ let rec completeTypedValue ?(typeArgContext : typeArgContext option) ~rawOpens module StringSet = Set.Make (String) -let rec processCompletable ~debug ~full ~scope ~env ~pos ~forHover completable = +let rec processCompletable ~debug ~full ~scope ~env ~pos ~forHover ~cursorPath + completable = if debug then Printf.printf "Completable: %s\n" (Completable.toString completable); let package = full.package in @@ -1857,14 +1871,14 @@ let rec processCompletable ~debug ~full ~scope ~env ~pos ~forHover completable = path |> getCompletionsForPath ~debug ~completionContext:Value ~exact:true ~opens ~full ~pos ~env ~scope - |> completionsGetTypeEnv2 ~debug ~full ~opens ~rawOpens ~pos + |> completionsGetTypeEnv2 ~debug ~full ~opens ~rawOpens ~pos ~cursorPath in match completable with | Cnone -> [] | Cpath contextPath -> contextPath |> getCompletionsForContextPath ~debug ~full ~opens ~rawOpens ~pos ~env - ~exact:forHover ~scope + ~exact:forHover ~scope ~cursorPath | Cjsx ([id], prefix, identsSeen) when String.uncapitalize_ascii id = id -> ( (* Lowercase JSX tag means builtin *) let mkLabel (name, typString) = @@ -2115,8 +2129,8 @@ let rec processCompletable ~debug ~full ~scope ~env ~pos ~forHover completable = match cp |> getCompletionsForContextPath ~debug ~full ~opens ~rawOpens ~pos ~env - ~exact:true ~scope - |> completionsGetTypeEnv2 ~debug ~full ~opens ~rawOpens ~pos + ~exact:true ~scope ~cursorPath + |> completionsGetTypeEnv2 ~debug ~full ~opens ~rawOpens ~pos ~cursorPath with | Some (typ, _env) -> if debug then @@ -2144,15 +2158,17 @@ let rec processCompletable ~debug ~full ~scope ~env ~pos ~forHover completable = let fallbackOrEmpty ?items () = match (fallback, items) with | Some fallback, (None | Some []) -> - fallback |> processCompletable ~debug ~full ~scope ~env ~pos ~forHover + fallback + |> processCompletable ~debug ~full ~scope ~env ~pos ~forHover + ~cursorPath | _, Some items -> items | None, None -> [] in match contextPath |> getCompletionsForContextPath ~debug ~full ~opens ~rawOpens ~pos ~env - ~exact:true ~scope - |> completionsGetTypeEnv2 ~debug ~full ~opens ~rawOpens ~pos + ~exact:true ~scope ~cursorPath + |> completionsGetTypeEnv2 ~debug ~full ~opens ~rawOpens ~pos ~cursorPath with | Some (typ, env) -> ( match @@ -2200,7 +2216,7 @@ let rec processCompletable ~debug ~full ~scope ~env ~pos ~forHover completable = match contextPath |> getCompletionsForContextPath ~debug ~full ~opens ~rawOpens ~pos ~env - ~exact:true ~scope + ~exact:true ~scope ~cursorPath |> completionsGetCompletionType ~full with | None -> @@ -2301,7 +2317,7 @@ let rec processCompletable ~debug ~full ~scope ~env ~pos ~forHover completable = let completionsForContextPath = contextPath |> getCompletionsForContextPath ~debug ~full ~opens ~rawOpens ~pos ~env - ~exact:forHover ~scope + ~exact:forHover ~scope ~cursorPath in completionsForContextPath |> List.map (fun (c : Completion.t) -> diff --git a/analysis/src/CompletionFrontEnd.ml b/analysis/src/CompletionFrontEnd.ml index 2c2b49380e..5b60c133f9 100644 --- a/analysis/src/CompletionFrontEnd.ml +++ b/analysis/src/CompletionFrontEnd.ml @@ -357,6 +357,7 @@ let completePipeChain ~(inJsxContext : bool) (exp : Parsetree.expression) = let completionWithParser1 ~currentFile ~debug ~offset ~path ~posCursor ?findThisExprLoc text = + let cursorPath = Stack.create () in let offsetNoWhite = Utils.skipWhite text (offset - 1) in let posNoWhite = let line, col = posCursor in @@ -737,8 +738,10 @@ let completionWithParser1 ~currentFile ~debug ~offset ~path ~posCursor if recFlag = Nonrecursive then decls |> List.iter scopeTypeDeclaration; processed := true | Pstr_module mb -> + if Loc.hasPos mb.pmb_loc ~pos:posCursor then Stack.push mb.pmb_name.txt cursorPath; iterator.module_binding iterator mb; scopeModuleBinding mb; + (* if Loc.hasPos mb.pmb_loc ~pos:posCursor then Stack.pop cursorPath |> ignore; *) processed := true | Pstr_recmodule mbs -> mbs |> List.iter scopeModuleBinding; @@ -1737,7 +1740,8 @@ let completionWithParser1 ~currentFile ~debug ~offset ~path ~posCursor (Cpath (CPId {loc = Location.none; path = [""]; completionContext = Value}))); if !found = false then if debug then Printf.printf "XXX Not found!\n"; - !result) + let cursorPath = Stack.to_seq cursorPath |> List.of_seq |> List.rev in + !result |> Option.map (fun (c, s) -> (c, s, cursorPath))) else if Filename.check_suffix path ".resi" then ( let parser = Res_driver.parsing_engine.parse_interface ~for_printer:false in let {Res_driver.parsetree = signature} = parser ~filename:currentFile in @@ -1748,7 +1752,8 @@ let completionWithParser1 ~currentFile ~debug ~offset ~path ~posCursor (Cpath (CPId {loc = Location.none; path = [""]; completionContext = Type}))); if !found = false then if debug then Printf.printf "XXX Not found!\n"; - !result) + let cursorPath = Stack.to_seq cursorPath |> List.of_seq |> List.rev in + !result |> Option.map (fun (c, s) -> (c, s, cursorPath))) else None let completionWithParser ~debug ~path ~posCursor ~currentFile ~text = diff --git a/analysis/src/Completions.ml b/analysis/src/Completions.ml index 42176bb3b0..439f42694e 100644 --- a/analysis/src/Completions.ml +++ b/analysis/src/Completions.ml @@ -8,15 +8,16 @@ let getCompletions ~debug ~path ~pos ~currentFile ~forHover = ~currentFile ~text with | None -> None - | Some (completable, scope) -> ( + | Some (completable, scope, cursorPath) -> ( (* Only perform expensive ast operations if there are completables *) match Cmt.loadFullCmtFromPath ~path with | None -> None | Some full -> let env = SharedTypes.QueryEnv.fromFile full.file in + let cursorPath = full.file.moduleName :: cursorPath in let completables = completable |> CompletionBackEnd.processCompletable ~debug ~full ~pos ~scope ~env - ~forHover + ~forHover ~cursorPath in - Some (completables, full, scope))) + Some (completables, full, scope, cursorPath))) diff --git a/analysis/src/Hover.ml b/analysis/src/Hover.ml index f0979d695c..a12b7360af 100644 --- a/analysis/src/Hover.ml +++ b/analysis/src/Hover.ml @@ -152,7 +152,7 @@ let getHoverViaCompletions ~debug ~path ~pos ~currentFile ~forHover ~supportsMarkdownLinks = match Completions.getCompletions ~debug ~path ~pos ~currentFile ~forHover with | None -> None - | Some (completions, ({file; package} as full), scope) -> ( + | Some (completions, ({file; package} as full), scope, cursorPath) -> ( let rawOpens = Scope.getRawOpens scope in match completions with | {kind = Label typString; docstring} :: _ -> @@ -166,7 +166,7 @@ let getHoverViaCompletions ~debug ~path ~pos ~currentFile ~forHover let opens = CompletionBackEnd.getOpens ~debug ~rawOpens ~package ~env in match CompletionBackEnd.completionsGetTypeEnv2 ~debug ~full ~rawOpens ~opens - ~pos completions + ~pos completions ~cursorPath with | Some (typ, _env) -> let typeString = @@ -179,7 +179,7 @@ let getHoverViaCompletions ~debug ~path ~pos ~currentFile ~forHover let opens = CompletionBackEnd.getOpens ~debug ~rawOpens ~package ~env in match CompletionBackEnd.completionsGetTypeEnv2 ~debug ~full ~rawOpens ~opens - ~pos completions + ~pos completions ~cursorPath with | Some (typ, _env) -> let typeString = diff --git a/analysis/src/SignatureHelp.ml b/analysis/src/SignatureHelp.ml index 481aa7e043..e8c41ae97f 100644 --- a/analysis/src/SignatureHelp.ml +++ b/analysis/src/SignatureHelp.ml @@ -84,11 +84,11 @@ let findFunctionType ~currentFile ~debug ~path ~pos = ~currentFile ~text with | None -> None - | Some (completable, scope) -> + | Some (completable, scope, cursorPath) -> Some ( completable |> CompletionBackEnd.processCompletable ~debug ~full ~pos ~scope - ~env ~forHover:true, + ~env ~forHover:true ~cursorPath, env, package, file )) diff --git a/analysis/src/Xform.ml b/analysis/src/Xform.ml index 837f7df744..8a3472f0cd 100644 --- a/analysis/src/Xform.ml +++ b/analysis/src/Xform.ml @@ -8,12 +8,12 @@ let extractTypeFromExpr expr ~debug ~path ~currentFile ~full ~pos = |> CompletionFrontEnd.findTypeOfExpressionAtLoc ~debug ~path ~currentFile ~posCursor:(Pos.ofLexing expr.Parsetree.pexp_loc.loc_start) with - | Some (completable, scope) -> ( + | Some (completable, scope, cursorPath) -> ( let env = SharedTypes.QueryEnv.fromFile full.SharedTypes.file in let completions = completable |> CompletionBackEnd.processCompletable ~debug ~full ~pos ~scope ~env - ~forHover:true + ~forHover:true ~cursorPath in let rawOpens = Scope.getRawOpens scope in match completions with @@ -23,7 +23,7 @@ let extractTypeFromExpr expr ~debug ~path ~currentFile ~full ~pos = in match CompletionBackEnd.completionsGetCompletionType2 ~debug ~full ~rawOpens - ~opens ~pos completions + ~opens ~pos completions ~cursorPath with | Some (typ, _env) -> let extractedType = diff --git a/tests/analysis_tests/tests/src/DotPipeCompleteFromCurrentModule.res b/tests/analysis_tests/tests/src/DotPipeCompleteFromCurrentModule.res index 819086e35a..c2d6ba0d07 100644 --- a/tests/analysis_tests/tests/src/DotPipeCompleteFromCurrentModule.res +++ b/tests/analysis_tests/tests/src/DotPipeCompleteFromCurrentModule.res @@ -14,4 +14,64 @@ module Y = { } let b = (x:t) => 4 +} + +module Types = { + type comp + type context + type vec2 +} + +module PosComp = ( + T: { + type t + }, +) => { + open Types + + @send + external addPos: (context, float, float) => comp = "pos" + + @send + external addPosFromVec2: (context, vec2) => comp = "pos" +} + +module SpriteComp = ( + T: { + type t + } +) + => { + open Types + + @send + external addSprite: (context, string) => comp = "sprite" + } + +external k: Types.context = "k" + +module Wall = { + type t + + include PosComp({ type t = t }) + + let make = () => { + [ + // k. + // ^com + ] + } + + module Poster = { + type t + + include SpriteComp({ type t = t }) + + let make = () => { + [ + // k. + // ^com + ] + } + } } \ No newline at end of file diff --git a/tests/analysis_tests/tests/src/expected/CompletePrioritize1.res.txt b/tests/analysis_tests/tests/src/expected/CompletePrioritize1.res.txt index 76eb966f01..d372bd7537 100644 --- a/tests/analysis_tests/tests/src/expected/CompletePrioritize1.res.txt +++ b/tests/analysis_tests/tests/src/expected/CompletePrioritize1.res.txt @@ -9,6 +9,7 @@ Path a CPPipe pathFromEnv:Test found:true Path Test. Path +Path CompletePrioritize1. [{ "label": "Test.name", "kind": 12, diff --git a/tests/analysis_tests/tests/src/expected/CompletePrioritize2.res.txt b/tests/analysis_tests/tests/src/expected/CompletePrioritize2.res.txt index 8c196abdd5..2edc8b0cca 100644 --- a/tests/analysis_tests/tests/src/expected/CompletePrioritize2.res.txt +++ b/tests/analysis_tests/tests/src/expected/CompletePrioritize2.res.txt @@ -9,6 +9,7 @@ Path ax CPPipe pathFromEnv:Test found:true Path Test. Path +Path CompletePrioritize2. [{ "label": "Test.add", "kind": 12, diff --git a/tests/analysis_tests/tests/src/expected/Completion.res.txt b/tests/analysis_tests/tests/src/expected/Completion.res.txt index f56854cd77..006084d5e6 100644 --- a/tests/analysis_tests/tests/src/expected/Completion.res.txt +++ b/tests/analysis_tests/tests/src/expected/Completion.res.txt @@ -665,6 +665,7 @@ ContextPath array Path Stdlib.Array.m Path ArrayUtils.m Path m +Path Completion.m [{ "label": "Array.map", "kind": 12, @@ -688,6 +689,7 @@ ContextPath string->toU ContextPath string Path Stdlib.String.toU Path toU +Path Completion.toU [{ "label": "String.toUpperCase", "kind": 12, @@ -706,6 +708,7 @@ ContextPath Value[op] Path op Path Stdlib.Option.e Path e +Path Completion.e [{ "label": "Option.equal", "kind": 12, @@ -727,6 +730,7 @@ Path fa CPPipe pathFromEnv:ForAuto found:true Path ForAuto. Path +Path Completion. [{ "label": "ForAuto.abc", "kind": 12, @@ -739,6 +743,18 @@ Path "tags": [], "detail": "(t, int) => t", "documentation": null + }, { + "label": "myAmazingFunction", + "kind": 12, + "tags": [], + "detail": "(int, int) => int", + "documentation": null + }, { + "label": "uncurried", + "kind": 12, + "tags": [], + "detail": "int => int", + "documentation": null }] Complete src/Completion.res 47:21 @@ -967,6 +983,7 @@ Path r CPPipe pathFromEnv: found:true Path Completion. Path +Path Completion. [{ "label": "x", "kind": 5, @@ -996,6 +1013,7 @@ Path Objects.Rec.recordVal CPPipe pathFromEnv:Rec found:true Path Objects.Rec. Path +Path Completion. [{ "label": "xx", "kind": 5, @@ -1083,6 +1101,7 @@ Path q CPPipe pathFromEnv: found:true Path Completion.aa Path aa +Path Completion.aa ContextPath Value[q].aa-> ContextPath Value[q].aa ContextPath Value[q] @@ -1093,9 +1112,11 @@ Path q CPPipe pathFromEnv: found:true Path Completion.aa Path aa +Path Completion.aa CPPipe pathFromEnv: found:true Path Completion. Path +Path Completion. [{ "label": "x", "kind": 5, @@ -1126,6 +1147,7 @@ Path q CPPipe pathFromEnv: found:true Path Completion.aa Path aa +Path Completion.aa ContextPath Value[q].aa->n ContextPath Value[q].aa ContextPath Value[q] @@ -1136,9 +1158,11 @@ Path q CPPipe pathFromEnv: found:true Path Completion.aa Path aa +Path Completion.aa CPPipe pathFromEnv: found:true Path Completion.n Path n +Path Completion.n [{ "label": "name", "kind": 5, @@ -1350,6 +1374,7 @@ Path FAO.forAutoObject CPPipe pathFromEnv:FAR found:true Path FAR. Path +Path Completion. [{ "label": "forAuto", "kind": 5, @@ -1382,9 +1407,11 @@ Path FAO.forAutoObject CPPipe pathFromEnv:FAR found:true Path FAR.forAuto Path forAuto +Path Completion.forAuto CPPipe pathFromEnv:ForAuto found:false Path ForAuto. Path +Path Completion. [{ "label": "ForAuto.abc", "kind": 12, @@ -1403,6 +1430,18 @@ Path "tags": [], "detail": "(int, int) => int", "documentation": null + }, { + "label": "myAmazingFunction", + "kind": 12, + "tags": [], + "detail": "(int, int) => int", + "documentation": null + }, { + "label": "uncurried", + "kind": 12, + "tags": [], + "detail": "int => int", + "documentation": null }] Complete src/Completion.res 230:55 @@ -1476,6 +1515,7 @@ Path _z CPPipe pathFromEnv: found:true Path Completion. Path +Path Completion. [{ "label": "x", "kind": 5, @@ -1639,6 +1679,7 @@ Path funRecord CPPipe pathFromEnv: found:true Path Completion.someFun Path someFun +Path Completion.someFun Found type for function (~name: string) => unit [{ "label": "name", @@ -1666,6 +1707,7 @@ Path retAA CPPipe pathFromEnv: found:true Path Completion. Path +Path Completion. [{ "label": "x", "kind": 5, @@ -2246,6 +2288,7 @@ Path funRecord CPPipe pathFromEnv: found:true Path Completion. Path +Path Completion. [{ "label": "someFun", "kind": 5, @@ -2273,6 +2316,7 @@ ContextPath array Path Stdlib.Array.ma Path ArrayUtils.ma Path ma +Path Completion.ma [{ "label": "Array.map", "kind": 12, @@ -2426,6 +2470,7 @@ ContextPath int->t ContextPath int Path Stdlib.Int.t Path t +Path Completion.t [{ "label": "Int.toStringWithRadix", "kind": 12, @@ -2498,6 +2543,7 @@ ContextPath float->t ContextPath float Path Stdlib.Float.t Path t +Path Completion.t [{ "label": "Float.toStringWithRadix", "kind": 12, @@ -2571,6 +2617,7 @@ ContextPath Value[ok] Path ok Path Stdlib.Result.g Path g +Path Completion.g [{ "label": "Result.getExn", "kind": 12, @@ -2607,6 +2654,7 @@ Path rWithDepr CPPipe pathFromEnv: found:true Path Completion.so Path so +Path Completion.so [{ "label": "someInt", "kind": 5, @@ -2667,6 +2715,7 @@ ContextPath Value[uncurried] Path uncurried Path Stdlib.Int.toS Path toS +Path Completion.toS [{ "label": "Int.toStringWithRadix", "kind": 12, diff --git a/tests/analysis_tests/tests/src/expected/CompletionConfiguredBuiltins.res.txt b/tests/analysis_tests/tests/src/expected/CompletionConfiguredBuiltins.res.txt index bb2bf05e4e..0492c563ae 100644 --- a/tests/analysis_tests/tests/src/expected/CompletionConfiguredBuiltins.res.txt +++ b/tests/analysis_tests/tests/src/expected/CompletionConfiguredBuiltins.res.txt @@ -9,6 +9,7 @@ Path x Path Stdlib.Array.em Path ArrayUtils.em Path em +Path CompletionConfiguredBuiltins.em [{ "label": "ArrayUtils.empty", "kind": 12, @@ -29,6 +30,7 @@ CPPipe pathFromEnv:Fastify found:false Path Fastify.doSt Path FastifyExt.doSt Path doSt +Path CompletionConfiguredBuiltins.doSt [{ "label": "FastifyExt.doStuff", "kind": 12, diff --git a/tests/analysis_tests/tests/src/expected/CompletionExpressions.res.txt b/tests/analysis_tests/tests/src/expected/CompletionExpressions.res.txt index bfea51f5fc..7b260228f3 100644 --- a/tests/analysis_tests/tests/src/expected/CompletionExpressions.res.txt +++ b/tests/analysis_tests/tests/src/expected/CompletionExpressions.res.txt @@ -1013,6 +1013,7 @@ Path fff CPPipe pathFromEnv: found:true Path CompletionExpressions.someOpt Path someOpt +Path CompletionExpressions.someOpt [{ "label": "someOptField", "kind": 5, @@ -1488,6 +1489,7 @@ Path someTyp CPPipe pathFromEnv: found:true Path CompletionExpressions. Path +Path CompletionExpressions. [{ "label": "test", "kind": 5, @@ -1549,6 +1551,7 @@ Path someTyp CPPipe pathFromEnv: found:true Path CompletionExpressions. Path +Path CompletionExpressions. [{ "label": "test", "kind": 5, diff --git a/tests/analysis_tests/tests/src/expected/CompletionFromModule.res.txt b/tests/analysis_tests/tests/src/expected/CompletionFromModule.res.txt index 8cfb06f7ea..90787cd6ee 100644 --- a/tests/analysis_tests/tests/src/expected/CompletionFromModule.res.txt +++ b/tests/analysis_tests/tests/src/expected/CompletionFromModule.res.txt @@ -13,6 +13,7 @@ Path n CPPipe pathFromEnv:SomeModule found:true Path SomeModule. Path +Path CompletionFromModule. [{ "label": "name", "kind": 5, @@ -49,6 +50,7 @@ CPPipe pathFromEnv:SomeOtherModule found:true Path SomeOtherModule. Path CompletionFromModule.SomeOtherModule. Path +Path CompletionFromModule. [{ "label": "nname", "kind": 5, @@ -132,6 +134,7 @@ CPPipe pathFromEnv: found:true Path CompletionFromModule. Path CompletionFromModule.SomeOtherModule. Path +Path CompletionFromModule. [{ "label": "SomeOtherModule.getNName", "kind": 12, @@ -159,6 +162,7 @@ CPPipe pathFromEnv: found:true Path CompletionFromModule. Path CompletionFromModule.SomeOtherModule. Path +Path CompletionFromModule. [{ "label": "getNName", "kind": 12, diff --git a/tests/analysis_tests/tests/src/expected/CompletionFromModule2.res.txt b/tests/analysis_tests/tests/src/expected/CompletionFromModule2.res.txt index eb647d43c5..37e16f5a59 100644 --- a/tests/analysis_tests/tests/src/expected/CompletionFromModule2.res.txt +++ b/tests/analysis_tests/tests/src/expected/CompletionFromModule2.res.txt @@ -13,6 +13,7 @@ Path CompletionFromModule.n CPPipe pathFromEnv:SomeModule found:true Path CompletionFromModule.SomeModule. Path +Path CompletionFromModule2. [{ "label": "name", "kind": 5, @@ -49,6 +50,7 @@ CPPipe pathFromEnv:SomeOtherModule found:true Path CompletionFromModule.SomeOtherModule. Path CompletionFromModule.SomeOtherModule. Path +Path CompletionFromModule2. [{ "label": "nname", "kind": 5, @@ -117,6 +119,7 @@ CPPipe pathFromEnv: found:true Path CompletionFromModule. Path CompletionFromModule.SomeOtherModule. Path +Path CompletionFromModule2. [{ "label": "CompletionFromModule.SomeOtherModule.getNName", "kind": 12, @@ -144,6 +147,7 @@ CPPipe pathFromEnv: found:true Path CompletionFromModule. Path CompletionFromModule.SomeOtherModule. Path +Path CompletionFromModule2. [{ "label": "getNName", "kind": 12, diff --git a/tests/analysis_tests/tests/src/expected/CompletionFunctionArguments.res.txt b/tests/analysis_tests/tests/src/expected/CompletionFunctionArguments.res.txt index 3beb757a82..bc86d8ad38 100644 --- a/tests/analysis_tests/tests/src/expected/CompletionFunctionArguments.res.txt +++ b/tests/analysis_tests/tests/src/expected/CompletionFunctionArguments.res.txt @@ -439,6 +439,7 @@ Path thisGetsBrokenLoc CPPipe pathFromEnv:JsxEvent.Mouse found:false Path JsxEvent.Mouse.a Path a +Path CompletionFunctionArguments.a [{ "label": "JsxEvent.Mouse.altKey", "kind": 12, @@ -463,6 +464,7 @@ Path reassignedWorks CPPipe pathFromEnv:JsxEvent.Mouse found:false Path JsxEvent.Mouse.a Path a +Path CompletionFunctionArguments.a [{ "label": "JsxEvent.Mouse.altKey", "kind": 12, @@ -485,6 +487,7 @@ Path fineModuleVal CPPipe pathFromEnv:FineModule found:true Path FineModule. Path +Path CompletionFunctionArguments. [{ "label": "FineModule.setToFalse", "kind": 12, diff --git a/tests/analysis_tests/tests/src/expected/CompletionInferValues.res.txt b/tests/analysis_tests/tests/src/expected/CompletionInferValues.res.txt index d9fe7877f9..a9e5af44d0 100644 --- a/tests/analysis_tests/tests/src/expected/CompletionInferValues.res.txt +++ b/tests/analysis_tests/tests/src/expected/CompletionInferValues.res.txt @@ -11,6 +11,7 @@ Path x ContextPath int Path Stdlib.Int.t Path t +Path CompletionInferValues.t [{ "label": "Int.toStringWithRadix", "kind": 12, @@ -94,6 +95,7 @@ Path getSomeRecord CPPipe pathFromEnv: found:true Path CompletionInferValues. Path +Path CompletionInferValues. [{ "label": "name", "kind": 5, @@ -133,6 +135,7 @@ Path getSomeRecord CPPipe pathFromEnv: found:true Path CompletionInferValues. Path +Path CompletionInferValues. [{ "label": "name", "kind": 5, @@ -175,6 +178,7 @@ Path someFnWithCallback CPPipe pathFromEnv: found:true Path CompletionInferValues. Path +Path CompletionInferValues. [{ "label": "name", "kind": 5, @@ -221,6 +225,7 @@ Path someFnWithCallback CPPipe pathFromEnv: found:true Path CompletionInferValues. Path +Path CompletionInferValues. [{ "label": "name", "kind": 5, @@ -253,6 +258,7 @@ Path reactEventFn CPPipe pathFromEnv:ReactEvent.Mouse found:false Path ReactEvent.Mouse.pr Path pr +Path CompletionInferValues.pr [{ "label": "ReactEvent.Mouse.preventDefault", "kind": 12, @@ -279,6 +285,7 @@ Path JsxDOM.domProps CPPipe pathFromEnv:JsxEvent.Mouse found:false Path JsxEvent.Mouse.pr Path pr +Path CompletionInferValues.pr [{ "label": "JsxEvent.Mouse.preventDefault", "kind": 12, @@ -304,6 +311,7 @@ Path Div.make CPPipe pathFromEnv:JsxEvent.Mouse found:false Path JsxEvent.Mouse.pr Path pr +Path CompletionInferValues.pr [{ "label": "JsxEvent.Mouse.preventDefault", "kind": 12, @@ -329,6 +337,7 @@ ContextPath Value[JsxEvent, Mouse, button] Path JsxEvent.Mouse.button Path Stdlib.Int.t Path t +Path CompletionInferValues.t [{ "label": "Int.toStringWithRadix", "kind": 12, @@ -426,6 +435,7 @@ Path String.split Path Stdlib.Array.ma Path ArrayUtils.ma Path ma +Path CompletionInferValues.ma [{ "label": "Array.map", "kind": 12, @@ -465,6 +475,7 @@ Path someRecordWithNestedStuff CPPipe pathFromEnv: found:true Path CompletionInferValues. Path +Path CompletionInferValues. [{ "label": "name", "kind": 5, @@ -504,6 +515,7 @@ Path someRecordWithNestedStuff CPPipe pathFromEnv: found:true Path CompletionInferValues. Path +Path CompletionInferValues. [{ "label": "someRecord", "kind": 5, @@ -537,6 +549,7 @@ Path someRecordWithNestedStuff CPPipe pathFromEnv: found:true Path CompletionInferValues. Path +Path CompletionInferValues. [{ "label": "name", "kind": 5, @@ -566,6 +579,7 @@ ContextPath Type[someRecordWithNestedStuff] Path someRecordWithNestedStuff Path Stdlib.String.slic Path slic +Path CompletionInferValues.slic [{ "label": "String.slice", "kind": 12, @@ -595,6 +609,7 @@ ContextPath Type[someRecordWithNestedStuff] Path someRecordWithNestedStuff Path Stdlib.Int.toS Path toS +Path CompletionInferValues.toS [{ "label": "Int.toStringWithRadix", "kind": 12, @@ -627,6 +642,7 @@ ContextPath Type[otherNestedRecord] Path otherNestedRecord Path Stdlib.Int.toS Path toS +Path CompletionInferValues.toS [{ "label": "Int.toStringWithRadix", "kind": 12, @@ -660,6 +676,7 @@ ContextPath Type[otherNestedRecord] Path otherNestedRecord Path Stdlib.Int.toS Path toS +Path CompletionInferValues.toS [{ "label": "Int.toStringWithRadix", "kind": 12, @@ -689,6 +706,7 @@ ContextPath Type[otherNestedRecord] Path otherNestedRecord Path Stdlib.String.slic Path slic +Path CompletionInferValues.slic [{ "label": "String.slice", "kind": 12, @@ -718,6 +736,7 @@ ContextPath Type[otherNestedRecord] Path otherNestedRecord Path Stdlib.String.slic Path slic +Path CompletionInferValues.slic [{ "label": "String.slice", "kind": 12, @@ -747,6 +766,7 @@ ContextPath Type[otherNestedRecord] Path otherNestedRecord Path Stdlib.String.slic Path slic +Path CompletionInferValues.slic [{ "label": "String.slice", "kind": 12, @@ -774,6 +794,7 @@ Path x ContextPath int Path Stdlib.Int.toSt Path toSt +Path CompletionInferValues.toSt [{ "label": "Int.toStringWithRadix", "kind": 12, @@ -835,6 +856,7 @@ Path fn2 CPPipe pathFromEnv:ReactDOM.Client.Root found:false Path ReactDOM.Client.Root. Path +Path CompletionInferValues. [{ "label": "ReactDOM.Client.Root.unmount", "kind": 12, @@ -869,6 +891,7 @@ Path fn3 CPPipe pathFromEnv:CompletionSupport.Test found:false Path CompletionSupport.Test. Path +Path CompletionInferValues. [{ "label": "CompletionSupport.Test.add", "kind": 12, @@ -949,6 +972,7 @@ Path CompletionSupport2.makeRenderer CPPipe pathFromEnv:CompletionSupport.Nested found:false Path CompletionSupport.Nested. Path +Path CompletionInferValues. [{ "label": "root", "kind": 5, @@ -977,6 +1001,7 @@ Path CompletionSupport2.makeRenderer CPPipe pathFromEnv:ReactDOM.Client.Root found:false Path ReactDOM.Client.Root. Path +Path CompletionInferValues. [{ "label": "ReactDOM.Client.Root.unmount", "kind": 12, diff --git a/tests/analysis_tests/tests/src/expected/CompletionJsx.res.txt b/tests/analysis_tests/tests/src/expected/CompletionJsx.res.txt index ed71ec31d9..2c729506aa 100644 --- a/tests/analysis_tests/tests/src/expected/CompletionJsx.res.txt +++ b/tests/analysis_tests/tests/src/expected/CompletionJsx.res.txt @@ -8,6 +8,7 @@ ContextPath Value[someString] Path someString Path Stdlib.String.st Path st +Path CompletionJsx.st [{ "label": "String.startsWith", "kind": 12, @@ -38,6 +39,7 @@ ContextPath Value[someString] Path someString Path Stdlib.String.st Path st +Path CompletionJsx.SomeComponent.st [{ "label": "React.string", "kind": 12, @@ -77,6 +79,7 @@ ContextPath Value[someString] Path someString Path Stdlib.String.st Path st +Path CompletionJsx.SomeComponent.st [{ "label": "React.string", "kind": 12, @@ -115,6 +118,7 @@ ContextPath string->st <> ContextPath string Path Stdlib.String.st Path st +Path CompletionJsx.SomeComponent.st [{ "label": "React.string", "kind": 12, @@ -155,6 +159,7 @@ ContextPath Value[String, trim] Path String.trim Path Stdlib.String.st Path st +Path CompletionJsx.SomeComponent.st [{ "label": "React.string", "kind": 12, @@ -194,6 +199,7 @@ ContextPath Value[someInt] Path someInt Path Stdlib.Int. Path +Path CompletionJsx.SomeComponent. [{ "label": "React.int", "kind": 12, @@ -364,6 +370,7 @@ ContextPath int-> <> ContextPath int Path Stdlib.Int. Path +Path CompletionJsx.SomeComponent. [{ "label": "React.int", "kind": 12, @@ -536,6 +543,7 @@ Path someArr Path Stdlib.Array.a Path ArrayUtils.a Path a +Path CompletionJsx.SomeComponent.a [{ "label": "React.array", "kind": 12, @@ -772,6 +780,7 @@ ContextPath string->s <> ContextPath string Path Stdlib.String.s Path s +Path CompletionJsx.s [{ "label": "->React.string", "kind": 12, diff --git a/tests/analysis_tests/tests/src/expected/CompletionMultipleEditorCompleteFrom.res.txt b/tests/analysis_tests/tests/src/expected/CompletionMultipleEditorCompleteFrom.res.txt index cc9888647e..dbb2cd5be6 100644 --- a/tests/analysis_tests/tests/src/expected/CompletionMultipleEditorCompleteFrom.res.txt +++ b/tests/analysis_tests/tests/src/expected/CompletionMultipleEditorCompleteFrom.res.txt @@ -15,6 +15,7 @@ Path A. Path B. Path C. Path +Path CompletionMultipleEditorCompleteFrom. [{ "label": "->B.b", "kind": 12, diff --git a/tests/analysis_tests/tests/src/expected/CompletionPipeChain.res.txt b/tests/analysis_tests/tests/src/expected/CompletionPipeChain.res.txt index dcf268e218..c3827fad88 100644 --- a/tests/analysis_tests/tests/src/expected/CompletionPipeChain.res.txt +++ b/tests/analysis_tests/tests/src/expected/CompletionPipeChain.res.txt @@ -9,6 +9,7 @@ Path int CPPipe pathFromEnv:Integer found:true Path Integer. Path +Path CompletionPipeChain. [{ "label": "Integer.toInt", "kind": 12, @@ -33,6 +34,12 @@ Path "tags": [], "detail": "Integer.t => SuperFloat.t", "documentation": null + }, { + "label": "toFlt", + "kind": 12, + "tags": [], + "detail": "Integer.t => SuperFloat.t", + "documentation": null }] Complete src/CompletionPipeChain.res 30:23 @@ -47,6 +54,7 @@ Path toFlt CPPipe pathFromEnv:SuperFloat found:true Path SuperFloat. Path +Path CompletionPipeChain. [{ "label": "SuperFloat.toInteger", "kind": 12, @@ -67,6 +75,7 @@ Path Integer.increment CPPipe pathFromEnv:Integer found:true Path Integer. Path +Path CompletionPipeChain. [{ "label": "Integer.toInt", "kind": 12, @@ -91,6 +100,12 @@ Path "tags": [], "detail": "Integer.t => SuperFloat.t", "documentation": null + }, { + "label": "toFlt", + "kind": 12, + "tags": [], + "detail": "Integer.t => SuperFloat.t", + "documentation": null }] Complete src/CompletionPipeChain.res 36:38 @@ -105,6 +120,7 @@ Path Integer.increment CPPipe pathFromEnv:Integer found:true Path Integer. Path +Path CompletionPipeChain. [{ "label": "Integer.toInt", "kind": 12, @@ -129,6 +145,12 @@ Path "tags": [], "detail": "Integer.t => SuperFloat.t", "documentation": null + }, { + "label": "toFlt", + "kind": 12, + "tags": [], + "detail": "Integer.t => SuperFloat.t", + "documentation": null }] Complete src/CompletionPipeChain.res 39:47 @@ -143,6 +165,7 @@ Path Integer.decrement CPPipe pathFromEnv:Integer found:true Path Integer. Path +Path CompletionPipeChain. [{ "label": "Integer.toInt", "kind": 12, @@ -167,6 +190,12 @@ Path "tags": [], "detail": "Integer.t => SuperFloat.t", "documentation": null + }, { + "label": "toFlt", + "kind": 12, + "tags": [], + "detail": "Integer.t => SuperFloat.t", + "documentation": null }] Complete src/CompletionPipeChain.res 42:69 @@ -181,6 +210,7 @@ Path Integer.decrement CPPipe pathFromEnv:Integer found:true Path Integer. Path +Path CompletionPipeChain. [{ "label": "Integer.toInt", "kind": 12, @@ -205,6 +235,12 @@ Path "tags": [], "detail": "Integer.t => SuperFloat.t", "documentation": null + }, { + "label": "toFlt", + "kind": 12, + "tags": [], + "detail": "Integer.t => SuperFloat.t", + "documentation": null }] Complete src/CompletionPipeChain.res 45:62 @@ -219,6 +255,7 @@ Path SuperFloat.fromInteger CPPipe pathFromEnv:SuperFloat found:true Path SuperFloat. Path +Path CompletionPipeChain. [{ "label": "SuperFloat.toInteger", "kind": 12, @@ -239,6 +276,7 @@ Path SuperFloat.fromInteger CPPipe pathFromEnv:SuperFloat found:true Path SuperFloat.t Path t +Path CompletionPipeChain.t [{ "label": "SuperFloat.toInteger", "kind": 12, @@ -259,6 +297,7 @@ Path CompletionSupport.Test.make CPPipe pathFromEnv:Test found:true Path CompletionSupport.Test. Path +Path CompletionPipeChain. [{ "label": "CompletionSupport.Test.add", "kind": 12, @@ -285,6 +324,7 @@ Path CompletionSupport.Test.addSelf CPPipe pathFromEnv:Test found:true Path CompletionSupport.Test. Path +Path CompletionPipeChain. [{ "label": "CompletionSupport.Test.add", "kind": 12, @@ -311,6 +351,7 @@ Path Array.forEach CPPipe pathFromEnv: found:true Path Stdlib_Array. Path +Path CompletionPipeChain. [] Complete src/CompletionPipeChain.res 62:6 @@ -324,6 +365,7 @@ ContextPath Value[Belt, Array, reduce] Path Belt.Array.reduce Path Stdlib.Int.t Path t +Path CompletionPipeChain.t [{ "label": "Int.toStringWithRadix", "kind": 12, @@ -397,6 +439,7 @@ Path aliased CPPipe pathFromEnv:CompletionSupport.Test found:false Path CompletionSupport.Test. Path +Path CompletionPipeChain. [{ "label": "CompletionSupport.Test.add", "kind": 12, @@ -422,6 +465,7 @@ Path notAliased CPPipe pathFromEnv:CompletionSupport.Test found:false Path CompletionSupport.Test. Path +Path CompletionPipeChain. [{ "label": "CompletionSupport.Test.add", "kind": 12, @@ -457,6 +501,7 @@ Path props CPPipe pathFromEnv:CompletionSupport2.Internal found:false Path CompletionSupport2.Internal.support Path support +Path CompletionPipeChain.support ContextPath Value[props].support->root ContextPath Value[props].support ContextPath Value[props] @@ -467,12 +512,15 @@ Path props CPPipe pathFromEnv:CompletionSupport2.Internal found:false Path CompletionSupport2.Internal.support Path support +Path CompletionPipeChain.support CPPipe pathFromEnv:CompletionSupport.Nested found:false Path CompletionSupport.Nested.root Path root +Path CompletionPipeChain.root CPPipe pathFromEnv:ReactDOM.Client.Root found:false Path ReactDOM.Client.Root.ren Path ren +Path CompletionPipeChain.ren [{ "label": "ReactDOM.Client.Root.render", "kind": 12, @@ -499,6 +547,7 @@ Path root CPPipe pathFromEnv:ReactDOM.Client.Root found:false Path ReactDOM.Client.Root.ren Path ren +Path CompletionPipeChain.ren [{ "label": "ReactDOM.Client.Root.render", "kind": 12, @@ -521,6 +570,7 @@ Path int CPPipe pathFromEnv:Integer found:true Path Integer. Path +Path CompletionPipeChain. [{ "label": "Integer.toInt", "kind": 12, @@ -545,6 +595,12 @@ Path "tags": [], "detail": "Integer.t => SuperFloat.t", "documentation": null + }, { + "label": "toFlt", + "kind": 12, + "tags": [], + "detail": "Integer.t => SuperFloat.t", + "documentation": null }] Complete src/CompletionPipeChain.res 98:21 @@ -560,6 +616,7 @@ Path int CPPipe pathFromEnv:Integer found:true Path Integer.t Path t +Path CompletionPipeChain.t [{ "label": "Integer.toInt", "kind": 12, @@ -572,6 +629,12 @@ Path t "tags": [], "detail": "Integer.t => SuperFloat.t", "documentation": null + }, { + "label": "toFlt", + "kind": 12, + "tags": [], + "detail": "Integer.t => SuperFloat.t", + "documentation": null }] Complete src/CompletionPipeChain.res 103:8 @@ -584,6 +647,7 @@ ContextPath Value[r] Path r Path Stdlib.RegExp.la Path la +Path CompletionPipeChain.la [{ "label": "RegExp.lastIndex", "kind": 12, @@ -603,6 +667,7 @@ Path xx CPPipe pathFromEnv:Xyz found:true Path Xyz. Path +Path CompletionPipeChain. [{ "label": "Xyz.do", "kind": 12, diff --git a/tests/analysis_tests/tests/src/expected/CompletionPipeProperty.res.txt b/tests/analysis_tests/tests/src/expected/CompletionPipeProperty.res.txt index 29d9652878..6d2ed15746 100644 --- a/tests/analysis_tests/tests/src/expected/CompletionPipeProperty.res.txt +++ b/tests/analysis_tests/tests/src/expected/CompletionPipeProperty.res.txt @@ -14,6 +14,7 @@ Path sprite CPPipe pathFromEnv:Sprite found:true Path Sprite.anchor Path anchor +Path CompletionPipeProperty.anchor ContextPath Value[sprite].anchor-> ContextPath Value[sprite].anchor ContextPath Value[sprite] @@ -24,9 +25,11 @@ Path sprite CPPipe pathFromEnv:Sprite found:true Path Sprite.anchor Path anchor +Path CompletionPipeProperty.anchor CPPipe pathFromEnv:ObservablePoint found:true Path ObservablePoint. Path +Path CompletionPipeProperty. [{ "label": "x", "kind": 5, diff --git a/tests/analysis_tests/tests/src/expected/CompletionPipeSubmodules.res.txt b/tests/analysis_tests/tests/src/expected/CompletionPipeSubmodules.res.txt index 6669a1e770..de9bfd142e 100644 --- a/tests/analysis_tests/tests/src/expected/CompletionPipeSubmodules.res.txt +++ b/tests/analysis_tests/tests/src/expected/CompletionPipeSubmodules.res.txt @@ -9,6 +9,7 @@ Path A.B1.xx CPPipe pathFromEnv:A.B1 found:true Path A.B1. Path +Path CompletionPipeSubmodules. [{ "label": "A.B1.d", "kind": 12, @@ -32,9 +33,11 @@ Path A.x CPPipe pathFromEnv:A found:true Path A.v Path v +Path CompletionPipeSubmodules.v CPPipe pathFromEnv:A.B1 found:true Path A.B1. Path +Path CompletionPipeSubmodules. [{ "label": "A.B1.d", "kind": 12, @@ -59,6 +62,7 @@ Path E.e CPPipe pathFromEnv:E found:true Path E.v Path v +Path CompletionPipeSubmodules.v ContextPath Value[E, e].v->v ContextPath Value[E, e].v ContextPath Value[E, e] @@ -69,12 +73,15 @@ Path E.e CPPipe pathFromEnv:E found:true Path E.v Path v +Path CompletionPipeSubmodules.v CPPipe pathFromEnv:D found:true Path D.v Path v +Path CompletionPipeSubmodules.v CPPipe pathFromEnv:C found:false Path C. Path +Path CompletionPipeSubmodules. [{ "label": "C.do", "kind": 12, @@ -99,6 +106,7 @@ Path E.e CPPipe pathFromEnv:E found:true Path E.v Path v +Path CompletionPipeSubmodules.v ContextPath Value[E, e].v->v2 ContextPath Value[E, e].v ContextPath Value[E, e] @@ -109,12 +117,15 @@ Path E.e CPPipe pathFromEnv:E found:true Path E.v Path v +Path CompletionPipeSubmodules.v CPPipe pathFromEnv:D found:true Path D.v2 Path v2 +Path CompletionPipeSubmodules.v2 CPPipe pathFromEnv:D.C2 found:true Path D.C2. Path +Path CompletionPipeSubmodules. [{ "label": "D.C2.do", "kind": 12, diff --git a/tests/analysis_tests/tests/src/expected/CompletionRegexp.res.txt b/tests/analysis_tests/tests/src/expected/CompletionRegexp.res.txt index 053f84b1d0..85f49f5ca9 100644 --- a/tests/analysis_tests/tests/src/expected/CompletionRegexp.res.txt +++ b/tests/analysis_tests/tests/src/expected/CompletionRegexp.res.txt @@ -8,6 +8,7 @@ ContextPath Value[emailPattern] Path emailPattern Path Stdlib.RegExp. Path +Path CompletionRegexp. [{ "label": "RegExp.lastIndex", "kind": 12, diff --git a/tests/analysis_tests/tests/src/expected/CompletionTaggedTemplate.res.txt b/tests/analysis_tests/tests/src/expected/CompletionTaggedTemplate.res.txt index 2cfc84238d..320a26a0bf 100644 --- a/tests/analysis_tests/tests/src/expected/CompletionTaggedTemplate.res.txt +++ b/tests/analysis_tests/tests/src/expected/CompletionTaggedTemplate.res.txt @@ -13,6 +13,7 @@ Path w CPPipe pathFromEnv:M found:true Path M. Path +Path CompletionTaggedTemplate. [{ "label": "->M.xyz", "kind": 12, @@ -67,6 +68,7 @@ Path meh CPPipe pathFromEnv:M found:true Path M. Path +Path CompletionTaggedTemplate. [{ "label": "->M.xyz", "kind": 12, diff --git a/tests/analysis_tests/tests/src/expected/DotPipeCompleteFromCurrentModule.res.txt b/tests/analysis_tests/tests/src/expected/DotPipeCompleteFromCurrentModule.res.txt index 70f6773fec..802d74c4d9 100644 --- a/tests/analysis_tests/tests/src/expected/DotPipeCompleteFromCurrentModule.res.txt +++ b/tests/analysis_tests/tests/src/expected/DotPipeCompleteFromCurrentModule.res.txt @@ -16,6 +16,7 @@ Path x CPPipe pathFromEnv:X found:true Path X. Path +Path DotPipeCompleteFromCurrentModule.Y. [{ "label": "->z", "kind": 12, @@ -28,5 +29,117 @@ Path "range": {"start": {"line": 10, "character": 12}, "end": {"line": 10, "character": 13}}, "newText": "" }] + }, { + "label": "->Y.b", + "kind": 12, + "tags": [], + "detail": "X.t => int", + "documentation": null, + "sortText": "b", + "insertText": "->Y.b", + "additionalTextEdits": [{ + "range": {"start": {"line": 10, "character": 12}, "end": {"line": 10, "character": 13}}, + "newText": "" + }] + }, { + "label": "->Y.z", + "kind": 12, + "tags": [], + "detail": "X.t => string", + "documentation": null, + "sortText": "z", + "insertText": "->Y.z", + "additionalTextEdits": [{ + "range": {"start": {"line": 10, "character": 12}, "end": {"line": 10, "character": 13}}, + "newText": "" + }] + }, { + "label": "->Y.a", + "kind": 12, + "tags": [], + "detail": "X.t => unit", + "documentation": null, + "sortText": "a", + "insertText": "->Y.a", + "additionalTextEdits": [{ + "range": {"start": {"line": 10, "character": 12}, "end": {"line": 10, "character": 13}}, + "newText": "" + }] + }] + +Complete src/DotPipeCompleteFromCurrentModule.res 59:17 +posCursor:[59:17] posNoWhite:[59:16] Found expr:[57:15->62:5] +posCursor:[59:17] posNoWhite:[59:16] Found expr:[58:8->61:9] +posCursor:[59:17] posNoWhite:[59:16] Found expr:[59:15->59:17] +Pexp_field [59:15->59:16] _:[61:8->59:17] +Completable: Cpath Value[k]."" +Package opens Stdlib.place holder Pervasives.JsxModules.place holder +Resolved opens 1 Stdlib +ContextPath Value[k]."" +ContextPath Value[k] +Path k +ContextPath Value[k]-> +ContextPath Value[k] +Path k +CPPipe pathFromEnv:Types found:true +Path Types. +Path +Path DotPipeCompleteFromCurrentModule.Wall. +[{ + "label": "->Wall.addPos", + "kind": 12, + "tags": [], + "detail": "(Types.context, float, float) => Types.comp", + "documentation": null, + "sortText": "addPos", + "insertText": "->Wall.addPos", + "additionalTextEdits": [{ + "range": {"start": {"line": 59, "character": 16}, "end": {"line": 59, "character": 17}}, + "newText": "" + }] + }, { + "label": "->Wall.addPosFromVec2", + "kind": 12, + "tags": [], + "detail": "(Types.context, Types.vec2) => Types.comp", + "documentation": null, + "sortText": "addPosFromVec2", + "insertText": "->Wall.addPosFromVec2", + "additionalTextEdits": [{ + "range": {"start": {"line": 59, "character": 16}, "end": {"line": 59, "character": 17}}, + "newText": "" + }] + }] + +Complete src/DotPipeCompleteFromCurrentModule.res 71:21 +posCursor:[71:21] posNoWhite:[71:20] Found expr:[69:19->74:9] +posCursor:[71:21] posNoWhite:[71:20] Found expr:[70:12->73:13] +posCursor:[71:21] posNoWhite:[71:20] Found expr:[71:19->71:21] +Pexp_field [71:19->71:20] _:[73:12->71:21] +Completable: Cpath Value[k]."" +Package opens Stdlib.place holder Pervasives.JsxModules.place holder +Resolved opens 1 Stdlib +ContextPath Value[k]."" +ContextPath Value[k] +Path k +ContextPath Value[k]-> +ContextPath Value[k] +Path k +CPPipe pathFromEnv:Types found:true +Path Types. +Path +Path DotPipeCompleteFromCurrentModule.Wall.Poster. +[{ + "label": "->Wall.Poster.addSprite", + "kind": 12, + "tags": [], + "detail": "(Types.context, string) => Types.comp", + "documentation": null, + "sortText": "addSprite", + "insertText": "->Wall.Poster.addSprite", + "additionalTextEdits": [{ + "range": {"start": {"line": 71, "character": 20}, "end": {"line": 71, "character": 21}}, + "newText": "" + }] }] diff --git a/tests/analysis_tests/tests/src/expected/DotPipeCompletionSpec.res.txt b/tests/analysis_tests/tests/src/expected/DotPipeCompletionSpec.res.txt index 8db5129032..01511c760f 100644 --- a/tests/analysis_tests/tests/src/expected/DotPipeCompletionSpec.res.txt +++ b/tests/analysis_tests/tests/src/expected/DotPipeCompletionSpec.res.txt @@ -13,6 +13,7 @@ Path n CPPipe pathFromEnv:SomeModule found:true Path SomeModule. Path +Path DotPipeCompletionSpec. [{ "label": "name", "kind": 5, @@ -62,6 +63,7 @@ Path SomeOtherModule. Path DotPipeCompletionSpec.CompleteFromThisToo. Path DotPipeCompletionSpec.SomeOtherModule. Path +Path DotPipeCompletionSpec. [{ "label": "nname", "kind": 5, @@ -140,6 +142,42 @@ Path "range": {"start": {"line": 44, "character": 5}, "end": {"line": 44, "character": 6}}, "newText": "" }] + }, { + "label": "->outOfScope", + "kind": 12, + "tags": [], + "detail": "typeOutsideModule => typeOutsideModule", + "documentation": null, + "sortText": "outOfScope", + "insertText": "->outOfScope", + "additionalTextEdits": [{ + "range": {"start": {"line": 44, "character": 5}, "end": {"line": 44, "character": 6}}, + "newText": "" + }] + }, { + "label": "->doWithTypeOutsideModule", + "kind": 12, + "tags": [], + "detail": "typeOutsideModule => string", + "documentation": null, + "sortText": "doWithTypeOutsideModule", + "insertText": "->doWithTypeOutsideModule", + "additionalTextEdits": [{ + "range": {"start": {"line": 44, "character": 5}, "end": {"line": 44, "character": 6}}, + "newText": "" + }] + }, { + "label": "->cc", + "kind": 12, + "tags": [], + "detail": "typeOutsideModule => typeOutsideModule", + "documentation": null, + "sortText": "cc", + "insertText": "->cc", + "additionalTextEdits": [{ + "range": {"start": {"line": 44, "character": 5}, "end": {"line": 44, "character": 6}}, + "newText": "" + }] }] Complete src/DotPipeCompletionSpec.res 62:5 @@ -158,6 +196,7 @@ CPPipe pathFromEnv:A found:true Path A. Path B. Path +Path DotPipeCompletionSpec. [{ "label": "->A.withA", "kind": 12, @@ -199,6 +238,7 @@ Path xx CPPipe pathFromEnv:CompletionFromModule.SomeModule found:false Path CompletionFromModule.SomeModule. Path +Path DotPipeCompletionSpec. [{ "label": "name", "kind": 5, @@ -234,6 +274,7 @@ Path ffff Path Stdlib.Array.u Path ArrayUtils.u Path u +Path DotPipeCompletionSpec.u [{ "label": "->Array.unshiftMany", "kind": 12, @@ -288,6 +329,7 @@ CPPipe pathFromEnv: found:true Path DotPipeCompletionSpec. Path DotPipeCompletionSpec.SomeOtherModule. Path +Path DotPipeCompletionSpec. [{ "label": "nname", "kind": 5, @@ -342,6 +384,42 @@ Path "range": {"start": {"line": 80, "character": 6}, "end": {"line": 80, "character": 7}}, "newText": "" }] + }, { + "label": "->outOfScope", + "kind": 12, + "tags": [], + "detail": "typeOutsideModule => typeOutsideModule", + "documentation": null, + "sortText": "outOfScope", + "insertText": "->outOfScope", + "additionalTextEdits": [{ + "range": {"start": {"line": 80, "character": 6}, "end": {"line": 80, "character": 7}}, + "newText": "" + }] + }, { + "label": "->doWithTypeOutsideModule", + "kind": 12, + "tags": [], + "detail": "typeOutsideModule => string", + "documentation": null, + "sortText": "doWithTypeOutsideModule", + "insertText": "->doWithTypeOutsideModule", + "additionalTextEdits": [{ + "range": {"start": {"line": 80, "character": 6}, "end": {"line": 80, "character": 7}}, + "newText": "" + }] + }, { + "label": "->cc", + "kind": 12, + "tags": [], + "detail": "typeOutsideModule => typeOutsideModule", + "documentation": null, + "sortText": "cc", + "insertText": "->cc", + "additionalTextEdits": [{ + "range": {"start": {"line": 80, "character": 6}, "end": {"line": 80, "character": 7}}, + "newText": "" + }] }] Complete src/DotPipeCompletionSpec.res 86:39 @@ -362,6 +440,7 @@ Path Array.filter Path Stdlib.Array.filt Path ArrayUtils.filt Path filt +Path DotPipeCompletionSpec.filt [{ "label": "->Array.filterMap", "kind": 12, @@ -417,6 +496,7 @@ ContextPath Value[Array, joinWith] Path Array.joinWith Path Stdlib.String.includ Path includ +Path DotPipeCompletionSpec.includ [{ "label": "->String.includes", "kind": 12, @@ -459,6 +539,7 @@ ContextPath Value[String, toLowerCase] Path String.toLowerCase Path Stdlib.String.toUpperCa Path toUpperCa +Path DotPipeCompletionSpec.toUpperCa [{ "label": "->String.toUpperCase", "kind": 12, @@ -489,6 +570,7 @@ ContextPath Value[String, toUpperCase] Path String.toUpperCase Path Stdlib.String.toLowerC Path toLowerC +Path DotPipeCompletionSpec.toLowerC [{ "label": "->String.toLowerCase", "kind": 12, @@ -520,6 +602,7 @@ CPPipe pathFromEnv: found:true Path DotPipeCompletionSpec. Path DotPipeCompletionSpec.SomeOtherModule. Path +Path DotPipeCompletionSpec. [{ "label": "nname", "kind": 5, @@ -574,6 +657,42 @@ Path "range": {"start": {"line": 101, "character": 6}, "end": {"line": 101, "character": 7}}, "newText": "" }] + }, { + "label": "->outOfScope", + "kind": 12, + "tags": [], + "detail": "typeOutsideModule => typeOutsideModule", + "documentation": null, + "sortText": "outOfScope", + "insertText": "->outOfScope", + "additionalTextEdits": [{ + "range": {"start": {"line": 101, "character": 6}, "end": {"line": 101, "character": 7}}, + "newText": "" + }] + }, { + "label": "->doWithTypeOutsideModule", + "kind": 12, + "tags": [], + "detail": "typeOutsideModule => string", + "documentation": null, + "sortText": "doWithTypeOutsideModule", + "insertText": "->doWithTypeOutsideModule", + "additionalTextEdits": [{ + "range": {"start": {"line": 101, "character": 6}, "end": {"line": 101, "character": 7}}, + "newText": "" + }] + }, { + "label": "->cc", + "kind": 12, + "tags": [], + "detail": "typeOutsideModule => typeOutsideModule", + "documentation": null, + "sortText": "cc", + "insertText": "->cc", + "additionalTextEdits": [{ + "range": {"start": {"line": 101, "character": 6}, "end": {"line": 101, "character": 7}}, + "newText": "" + }] }] Complete src/DotPipeCompletionSpec.res 108:27 @@ -754,6 +873,7 @@ CPPipe pathFromEnv:DOMAPI found:true Path DOMAPI. Path DotPipeCompletionSpec.HTMLButtonElement. Path +Path DotPipeCompletionSpec. [{ "label": "disabled", "kind": 5, diff --git a/tests/analysis_tests/tests/src/expected/ExhaustiveSwitch.res.txt b/tests/analysis_tests/tests/src/expected/ExhaustiveSwitch.res.txt index 2d5586d1f2..8212b3632d 100644 --- a/tests/analysis_tests/tests/src/expected/ExhaustiveSwitch.res.txt +++ b/tests/analysis_tests/tests/src/expected/ExhaustiveSwitch.res.txt @@ -106,6 +106,7 @@ Path x CPPipe pathFromEnv: found:true Path ExhaustiveSwitch. Path +Path Package opens Stdlib.place holder Pervasives.JsxModules.place holder Resolved opens 1 Stdlib diff --git a/tests/analysis_tests/tests/src/expected/Firebase.res.txt b/tests/analysis_tests/tests/src/expected/Firebase.res.txt index 17105d12f4..d39c5424cd 100644 --- a/tests/analysis_tests/tests/src/expected/Firebase.res.txt +++ b/tests/analysis_tests/tests/src/expected/Firebase.res.txt @@ -14,6 +14,7 @@ Path ref CPPipe pathFromEnv:Firebase.Firestore found:true Path Firebase.Firestore. Path +Path Firebase.Sample. [{ "label": "id", "kind": 5, diff --git a/tests/analysis_tests/tests/src/expected/Hover.res.txt b/tests/analysis_tests/tests/src/expected/Hover.res.txt index bf4f292975..d16f77123e 100644 --- a/tests/analysis_tests/tests/src/expected/Hover.res.txt +++ b/tests/analysis_tests/tests/src/expected/Hover.res.txt @@ -120,6 +120,7 @@ Path x1 CPPipe pathFromEnv: found:true Path Hover.content Path content +Path Hover.TypeSubstitutionRecords.content ContextPath Value[x1].content-> ContextPath Value[x1].content ContextPath Value[x1] @@ -130,9 +131,11 @@ Path x1 CPPipe pathFromEnv: found:true Path Hover.content Path content +Path Hover.TypeSubstitutionRecords.content CPPipe pathFromEnv: found:true Path Hover. Path +Path Hover.TypeSubstitutionRecords. [{ "label": "age", "kind": 5, @@ -157,6 +160,7 @@ Path x2 CPPipe pathFromEnv: found:true Path Hover.content Path content +Path Hover.TypeSubstitutionRecords.content ContextPath Value[x2].content-> ContextPath Value[x2].content ContextPath Value[x2] @@ -167,9 +171,11 @@ Path x2 CPPipe pathFromEnv: found:true Path Hover.content Path content +Path Hover.TypeSubstitutionRecords.content CPPipe pathFromEnv: found:true Path Hover. Path +Path Hover.TypeSubstitutionRecords. [{ "label": "age", "kind": 5, @@ -194,6 +200,7 @@ Path y1 CPPipe pathFromEnv: found:true Path Hover.content Path content +Path Hover.TypeSubstitutionRecords.content ContextPath Value[y1].content-> ContextPath Value[y1].content ContextPath Value[y1] @@ -204,9 +211,11 @@ Path y1 CPPipe pathFromEnv: found:true Path Hover.content Path content +Path Hover.TypeSubstitutionRecords.content CPPipe pathFromEnv: found:true Path Hover. Path +Path Hover.TypeSubstitutionRecords. [{ "label": "age", "kind": 5, @@ -231,6 +240,7 @@ Path y2 CPPipe pathFromEnv: found:true Path Hover.content Path content +Path Hover.TypeSubstitutionRecords.content ContextPath Value[y2].content-> ContextPath Value[y2].content ContextPath Value[y2] @@ -241,9 +251,11 @@ Path y2 CPPipe pathFromEnv: found:true Path Hover.content Path content +Path Hover.TypeSubstitutionRecords.content CPPipe pathFromEnv: found:true Path Hover. Path +Path Hover.TypeSubstitutionRecords. [{ "label": "age", "kind": 5, @@ -293,6 +305,7 @@ Path x CPPipe pathFromEnv: found:true Path Hover.someField Path someField +Path Hover.someField Package opens Stdlib.place holder Pervasives.JsxModules.place holder Resolved opens 1 Stdlib {"contents": {"kind": "markdown", "value": " Mighty fine field here. \n\n```rescript\nbool\n```"}} diff --git a/tests/analysis_tests/tests/src/expected/NestedRecords.res.txt b/tests/analysis_tests/tests/src/expected/NestedRecords.res.txt index c417c15932..b2e3884c3d 100644 --- a/tests/analysis_tests/tests/src/expected/NestedRecords.res.txt +++ b/tests/analysis_tests/tests/src/expected/NestedRecords.res.txt @@ -27,6 +27,7 @@ Path options CPPipe pathFromEnv: found:true Path NestedRecords.extra Path extra +Path NestedRecords.extra Package opens Stdlib.place holder Pervasives.JsxModules.place holder Resolved opens 1 Stdlib {"contents": {"kind": "markdown", "value": "```rescript\ntype options.extra = {name: string, superExtra: {age: int}}\n```"}} @@ -48,6 +49,7 @@ Path options CPPipe pathFromEnv: found:true Path NestedRecords.extra Path extra +Path NestedRecords.extra ContextPath Value[options].extra->superExtra ContextPath Value[options].extra ContextPath Value[options] @@ -58,9 +60,11 @@ Path options CPPipe pathFromEnv: found:true Path NestedRecords.extra Path extra +Path NestedRecords.extra CPPipe pathFromEnv: found:true Path NestedRecords.superExtra Path superExtra +Path NestedRecords.superExtra Package opens Stdlib.place holder Pervasives.JsxModules.place holder Resolved opens 1 Stdlib {"contents": {"kind": "markdown", "value": "```rescript\ntype options.extra.superExtra = {age: int}\n```"}} @@ -83,6 +87,7 @@ Path options CPPipe pathFromEnv: found:true Path NestedRecords.extra Path extra +Path NestedRecords.extra ContextPath Value[options].extra->superExtra ContextPath Value[options].extra ContextPath Value[options] @@ -93,9 +98,11 @@ Path options CPPipe pathFromEnv: found:true Path NestedRecords.extra Path extra +Path NestedRecords.extra CPPipe pathFromEnv: found:true Path NestedRecords.superExtra Path superExtra +Path NestedRecords.superExtra ContextPath Value[options].extra.superExtra->age ContextPath Value[options].extra.superExtra ContextPath Value[options].extra @@ -107,6 +114,7 @@ Path options CPPipe pathFromEnv: found:true Path NestedRecords.extra Path extra +Path NestedRecords.extra ContextPath Value[options].extra->superExtra ContextPath Value[options].extra ContextPath Value[options] @@ -117,12 +125,15 @@ Path options CPPipe pathFromEnv: found:true Path NestedRecords.extra Path extra +Path NestedRecords.extra CPPipe pathFromEnv: found:true Path NestedRecords.superExtra Path superExtra +Path NestedRecords.superExtra CPPipe pathFromEnv: found:true Path NestedRecords.age Path age +Path NestedRecords.age Package opens Stdlib.place holder Pervasives.JsxModules.place holder Resolved opens 1 Stdlib {"contents": {"kind": "markdown", "value": "```rescript\nint\n```"}} diff --git a/tests/analysis_tests/tests/src/expected/RecordCompletion.res.txt b/tests/analysis_tests/tests/src/expected/RecordCompletion.res.txt index bef7e1df39..3806c7fb4a 100644 --- a/tests/analysis_tests/tests/src/expected/RecordCompletion.res.txt +++ b/tests/analysis_tests/tests/src/expected/RecordCompletion.res.txt @@ -13,9 +13,11 @@ Path t CPPipe pathFromEnv: found:true Path RecordCompletion.n Path n +Path RecordCompletion.n Path Stdlib.Array.m Path ArrayUtils.m Path m +Path RecordCompletion.m [{ "label": "Array.map", "kind": 12, @@ -46,6 +48,7 @@ Path t2 CPPipe pathFromEnv: found:true Path RecordCompletion.n2 Path n2 +Path RecordCompletion.n2 ContextPath Value[t2].n2->n ContextPath Value[t2].n2 ContextPath Value[t2] @@ -56,12 +59,15 @@ Path t2 CPPipe pathFromEnv: found:true Path RecordCompletion.n2 Path n2 +Path RecordCompletion.n2 CPPipe pathFromEnv: found:true Path RecordCompletion.n Path n +Path RecordCompletion.n Path Stdlib.Array.m Path ArrayUtils.m Path m +Path RecordCompletion.m [{ "label": "Array.map", "kind": 12, diff --git a/tests/analysis_tests/tests/src/expected/RxjsCompletion.res.txt b/tests/analysis_tests/tests/src/expected/RxjsCompletion.res.txt index 9ab09fb999..4390165da8 100644 --- a/tests/analysis_tests/tests/src/expected/RxjsCompletion.res.txt +++ b/tests/analysis_tests/tests/src/expected/RxjsCompletion.res.txt @@ -22,6 +22,7 @@ CPPipe pathFromEnv:Observable found:true Path Rxjs.Observable. Path Rxjs. Path +Path RxjsCompletion. [{ "label": "->Observable.subscribe", "kind": 12, @@ -105,6 +106,7 @@ CPPipe pathFromEnv:Observable found:true Path Rxjs.Observable. Path Rxjs. Path +Path RxjsCompletion. [{ "label": "->Rxjs.Observable.subscribe", "kind": 12,