diff --git a/analysis/tests/bsconfig.json b/analysis/tests/bsconfig.json index cef97db16..239591d8e 100644 --- a/analysis/tests/bsconfig.json +++ b/analysis/tests/bsconfig.json @@ -9,7 +9,7 @@ "subdirs": true } ], - "bsc-flags": ["-w -33-44"], - "bs-dependencies": ["@rescript/react"], + "bsc-flags": ["-w -33-44", "-open RescriptCore"], + "bs-dependencies": ["@rescript/react", "@rescript/core"], "jsx": { "version": 3 } } diff --git a/analysis/tests/package-lock.json b/analysis/tests/package-lock.json index 0ff61cc9d..f74f4cebc 100644 --- a/analysis/tests/package-lock.json +++ b/analysis/tests/package-lock.json @@ -5,12 +5,18 @@ "packages": { "": { "dependencies": { + "@rescript/core": "^0.1.0", "rescript": "^10.1.3" }, "devDependencies": { "@rescript/react": "^0.11.0-rc.3" } }, + "node_modules/@rescript/core": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@rescript/core/-/core-0.1.0.tgz", + "integrity": "sha512-+nJiH67zp/CD6qwFv9VxlAknlYf/lIb6Q72Nqc0tvoMUizX+sRKQxQVUQSIqG+MSoxCUlSVye1wmZFwbNmJKpw==" + }, "node_modules/@rescript/react": { "version": "0.11.0-rc.3", "resolved": "https://registry.npmjs.org/@rescript/react/-/react-0.11.0-rc.3.tgz", @@ -92,6 +98,11 @@ } }, "dependencies": { + "@rescript/core": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@rescript/core/-/core-0.1.0.tgz", + "integrity": "sha512-+nJiH67zp/CD6qwFv9VxlAknlYf/lIb6Q72Nqc0tvoMUizX+sRKQxQVUQSIqG+MSoxCUlSVye1wmZFwbNmJKpw==" + }, "@rescript/react": { "version": "0.11.0-rc.3", "resolved": "https://registry.npmjs.org/@rescript/react/-/react-0.11.0-rc.3.tgz", diff --git a/analysis/tests/package.json b/analysis/tests/package.json index 057f41b9c..bfe351415 100644 --- a/analysis/tests/package.json +++ b/analysis/tests/package.json @@ -8,6 +8,7 @@ "@rescript/react": "^0.11.0-rc.3" }, "dependencies": { + "@rescript/core": "^0.1.0", "rescript": "^10.1.3" } } diff --git a/analysis/tests/src/Completion.res b/analysis/tests/src/Completion.res index 9246c2bdd..b9dcc7e84 100644 --- a/analysis/tests/src/Completion.res +++ b/analysis/tests/src/Completion.res @@ -96,11 +96,11 @@ let nestedObj = {"x": {"y": {"name": "a", "age": 32}}} // nestedObj["x"]["y"][" // ^com -let o: Object.objT = assert false +let o: Objects.objT = assert false // o["a // ^com -type nestedObjT = {"x": Object.nestedObjT} +type nestedObjT = {"x": Objects.nestedObjT} let no: nestedObjT = assert false // no["x"]["y"][" // ^com diff --git a/analysis/tests/src/Object.res b/analysis/tests/src/Objects.res similarity index 100% rename from analysis/tests/src/Object.res rename to analysis/tests/src/Objects.res diff --git a/analysis/tests/src/expected/BrokenParserCases.res.txt b/analysis/tests/src/expected/BrokenParserCases.res.txt index 1c1134ac2..11089525a 100644 --- a/analysis/tests/src/expected/BrokenParserCases.res.txt +++ b/analysis/tests/src/expected/BrokenParserCases.res.txt @@ -2,12 +2,16 @@ Complete src/BrokenParserCases.res 2:24 posCursor:[2:24] posNoWhite:[2:23] Found expr:[2:11->2:30] Pexp_apply ...[2:11->2:17] (~isOff2:19->2:24=...[2:27->2:29]) Completable: CnamedArg(Value[someFn], isOff, [isOff]) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [] Complete src/BrokenParserCases.res 6:17 posCursor:[6:17] posNoWhite:[6:16] Found expr:[6:3->6:21] posCursor:[6:17] posNoWhite:[6:16] Found pattern:[6:16->6:19] Completable: Cpattern Value[s]=t +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [] Complete src/BrokenParserCases.res 10:29 @@ -16,5 +20,7 @@ posCursor:[10:29] posNoWhite:[10:27] Found pattern:[10:24->10:39] posCursor:[10:29] posNoWhite:[10:27] Found pattern:[10:24->10:28] Ppat_construct None:[10:24->10:28] Completable: Cpath Value[None] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [] diff --git a/analysis/tests/src/expected/CompletePrioritize1.res.txt b/analysis/tests/src/expected/CompletePrioritize1.res.txt index 3f5485410..ef022c3c4 100644 --- a/analysis/tests/src/expected/CompletePrioritize1.res.txt +++ b/analysis/tests/src/expected/CompletePrioritize1.res.txt @@ -1,6 +1,8 @@ Complete src/CompletePrioritize1.res 5:6 posCursor:[5:6] posNoWhite:[5:5] Found expr:[5:3->0:-1] Completable: Cpath Value[a]-> +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "Test.add", "kind": 12, diff --git a/analysis/tests/src/expected/CompletePrioritize2.res.txt b/analysis/tests/src/expected/CompletePrioritize2.res.txt index b3b9674e1..934794e1b 100644 --- a/analysis/tests/src/expected/CompletePrioritize2.res.txt +++ b/analysis/tests/src/expected/CompletePrioritize2.res.txt @@ -1,6 +1,8 @@ Complete src/CompletePrioritize2.res 9:7 posCursor:[9:7] posNoWhite:[9:6] Found expr:[9:3->0:-1] Completable: Cpath Value[ax]-> +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "Test.add", "kind": 12, @@ -13,6 +15,8 @@ Complete src/CompletePrioritize2.res 12:5 posCursor:[12:5] posNoWhite:[12:4] Found expr:[12:3->12:5] Pexp_ident ax:[12:3->12:5] Completable: Cpath Value[ax] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "ax", "kind": 12, diff --git a/analysis/tests/src/expected/Completion.res.txt b/analysis/tests/src/expected/Completion.res.txt index c98e1a2c8..1f6705387 100644 --- a/analysis/tests/src/expected/Completion.res.txt +++ b/analysis/tests/src/expected/Completion.res.txt @@ -2,6 +2,8 @@ Complete src/Completion.res 1:11 posCursor:[1:11] posNoWhite:[1:10] Found expr:[1:3->1:11] Pexp_ident MyList.m:[1:3->1:11] Completable: Cpath Value[MyList, m] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "mapReverse", "kind": 12, @@ -74,282 +76,450 @@ Complete src/Completion.res 3:9 posCursor:[3:9] posNoWhite:[3:8] Found expr:[3:3->3:9] Pexp_ident Array.:[3:3->3:9] Completable: Cpath Value[Array, ""] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ - "label": "fold_left", + "label": "concat", "kind": 12, "tags": [], - "detail": "(('a, 'b) => 'a, 'a, array<'b>) => 'a", - "documentation": {"kind": "markdown", "value": " [Array.fold_left f x a] computes\n [f (... (f (f x a.(0)) a.(1)) ...) a.(n-1)],\n where [n] is the length of the array [a]. "} + "detail": "(array<'a>, array<'a>) => array<'a>", + "documentation": null }, { - "label": "concat", + "label": "filterMap", "kind": 12, "tags": [], - "detail": "list> => array<'a>", - "documentation": {"kind": "markdown", "value": " Same as {!Array.append}, but concatenates a list of arrays. "} + "detail": "(array<'a>, 'a => option<'b>) => array<'b>", + "documentation": null }, { - "label": "mapi", + "label": "shift", "kind": 12, "tags": [], - "detail": "((int, 'a) => 'b, array<'a>) => array<'b>", - "documentation": {"kind": "markdown", "value": " Same as {!Array.map}, but the\n function is applied to the index of the element as first argument,\n and the element itself as second argument. "} + "detail": "array<'a> => option<'a>", + "documentation": null }, { - "label": "exists", + "label": "reduceReverse", "kind": 12, "tags": [], - "detail": "('a => bool, array<'a>) => bool", - "documentation": {"kind": "markdown", "value": " [Array.exists p [|a1; ...; an|]] checks if at least one element of\n the array satisfies the predicate [p]. That is, it returns\n [(p a1) || (p a2) || ... || (p an)].\n @since 4.03.0 "} + "detail": "(array<'b>, 'a, ('a, 'b) => 'a) => 'a", + "documentation": {"kind": "markdown", "value": "\n `reduceReverse(xs, init, f)`\n\n Works like `Array.reduce`; except that function `f` is applied to each item of `xs` from the last back to the first.\n\n ```res example\n Array.reduceReverse([\"a\", \"b\", \"c\", \"d\"], \"\", (a, b) => a ++ b) == \"dcba\"\n ```\n"} }, { - "label": "for_all", + "label": "fillInPlace", "kind": 12, "tags": [], - "detail": "('a => bool, array<'a>) => bool", - "documentation": {"kind": "markdown", "value": " [Array.for_all p [|a1; ...; an|]] checks if all elements of the array\n satisfy the predicate [p]. That is, it returns\n [(p a1) && (p a2) && ... && (p an)].\n @since 4.03.0 "} + "detail": "(array<'a>, 'a, ~start: int, ~end: int) => unit", + "documentation": null }, { - "label": "copy", + "label": "concatMany", "kind": 12, "tags": [], - "detail": "array<'a> => array<'a>", - "documentation": {"kind": "markdown", "value": " [Array.copy a] returns a copy of [a], that is, a fresh array\n containing the same elements as [a]. "} + "detail": "(array<'a>, array>) => array<'a>", + "documentation": null }, { - "label": "iter2", + "label": "joinWith", "kind": 12, "tags": [], - "detail": "(('a, 'b) => unit, array<'a>, array<'b>) => unit", - "documentation": {"kind": "markdown", "value": " [Array.iter2 f a b] applies function [f] to all the elements of [a]\n and [b].\n Raise [Invalid_argument] if the arrays are not the same size.\n @since 4.03.0 "} + "detail": "(array<'a>, string) => string", + "documentation": null }, { - "label": "to_list", + "label": "getSymbol", "kind": 12, "tags": [], - "detail": "array<'a> => list<'a>", - "documentation": {"kind": "markdown", "value": " [Array.to_list a] returns the list of all the elements of [a]. "} + "detail": "(array<'a>, Core__Symbol.t) => option<'b>", + "documentation": null }, { - "label": "stable_sort", + "label": "getSymbolUnsafe", "kind": 12, "tags": [], - "detail": "(('a, 'a) => int, array<'a>) => unit", - "documentation": {"kind": "markdown", "value": " Same as {!Array.sort}, but the sorting algorithm is stable (i.e.\n elements that compare equal are kept in their original order) and\n not guaranteed to run in constant heap space.\n\n The current implementation uses Merge Sort. It uses [n/2]\n words of heap space, where [n] is the length of the array.\n It is usually faster than the current implementation of {!Array.sort}.\n"} + "detail": "(array<'a>, Core__Symbol.t) => 'b", + "documentation": null }, { - "label": "iteri", + "label": "findIndexOpt", "kind": 12, "tags": [], - "detail": "((int, 'a) => unit, array<'a>) => unit", - "documentation": {"kind": "markdown", "value": " Same as {!Array.iter}, but the\n function is applied with the index of the element as first argument,\n and the element itself as second argument. "} + "detail": "(array<'a>, 'a => bool) => option", + "documentation": null }, { - "label": "memq", + "label": "shuffle", "kind": 12, "tags": [], - "detail": "('a, array<'a>) => bool", - "documentation": {"kind": "markdown", "value": " Same as {!Array.mem}, but uses physical equality instead of structural\n equality to compare array elements.\n @since 4.03.0 "} + "detail": "array<'a> => array<'a>", + "documentation": null }, { - "label": "map2", + "label": "copy", "kind": 12, "tags": [], - "detail": "(('a, 'b) => 'c, array<'a>, array<'b>) => array<'c>", - "documentation": {"kind": "markdown", "value": " [Array.map2 f a b] applies function [f] to all the elements of [a]\n and [b], and builds an array with the results returned by [f]:\n [[| f a.(0) b.(0); ...; f a.(Array.length a - 1) b.(Array.length b - 1)|]].\n Raise [Invalid_argument] if the arrays are not the same size.\n @since 4.03.0 "} + "detail": "array<'a> => array<'a>", + "documentation": null }, { - "label": "set", + "label": "setUnsafe", "kind": 12, "tags": [], "detail": "(array<'a>, int, 'a) => unit", - "documentation": {"kind": "markdown", "value": " [Array.set a n x] modifies array [a] in place, replacing\n element number [n] with [x].\n You can also write [a.(n) <- x] instead of [Array.set a n x].\n\n Raise [Invalid_argument \"index out of bounds\"]\n if [n] is outside the range 0 to [Array.length a - 1]. "} + "documentation": null }, { - "label": "make", + "label": "findIndexWithIndex", + "kind": 12, + "tags": [], + "detail": "(array<'a>, ('a, int) => bool) => int", + "documentation": null + }, { + "label": "someWithIndex", + "kind": 12, + "tags": [], + "detail": "(array<'a>, ('a, int) => bool) => bool", + "documentation": null + }, { + "label": "slice", + "kind": 12, + "tags": [], + "detail": "(array<'a>, ~start: int, ~end: int) => array<'a>", + "documentation": null + }, { + "label": "includes", "kind": 12, "tags": [], - "detail": "(int, 'a) => array<'a>", - "documentation": {"kind": "markdown", "value": " [Array.make n x] returns a fresh array of length [n],\n initialized with [x].\n All the elements of this new array are initially\n physically equal to [x] (in the sense of the [==] predicate).\n Consequently, if [x] is mutable, it is shared among all elements\n of the array, and modifying [x] through one of the array entries\n will modify all other entries at the same time.\n\n Raise [Invalid_argument] if [n < 0] or [n > Sys.max_array_length].\n If the value of [x] is a floating-point number, then the maximum\n size is only [Sys.max_array_length / 2]."} + "detail": "(array<'a>, 'a) => bool", + "documentation": null }, { - "label": "make_float", + "label": "find", "kind": 12, "tags": [], - "detail": "int => array", - "documentation": {"kind": "markdown", "value": " @deprecated [Array.make_float] is an alias for {!Array.create_float}. "} + "detail": "(array<'a>, 'a => bool) => option<'a>", + "documentation": null }, { - "label": "fold_right", + "label": "lastIndexOfFrom", "kind": 12, "tags": [], - "detail": "(('b, 'a) => 'a, array<'b>, 'a) => 'a", - "documentation": {"kind": "markdown", "value": " [Array.fold_right f a x] computes\n [f a.(0) (f a.(1) ( ... (f a.(n-1) x) ...))],\n where [n] is the length of the array [a]. "} + "detail": "(array<'a>, 'a, int) => int", + "documentation": null }, { - "label": "sort", + "label": "toLocaleString", "kind": 12, "tags": [], - "detail": "(('a, 'a) => int, array<'a>) => unit", - "documentation": {"kind": "markdown", "value": " Sort an array in increasing order according to a comparison\n function. The comparison function must return 0 if its arguments\n compare as equal, a positive integer if the first is greater,\n and a negative integer if the first is smaller (see below for a\n complete specification). For example, {!Pervasives.compare} is\n a suitable comparison function, provided there are no floating-point\n NaN values in the data. After calling [Array.sort], the\n array is sorted in place in increasing order.\n [Array.sort] is guaranteed to run in constant heap space\n and (at most) logarithmic stack space.\n\n The current implementation uses Heap Sort. It runs in constant\n stack space.\n\n Specification of the comparison function:\n Let [a] be the array and [cmp] the comparison function. The following\n must be true for all x, y, z in a :\n- [cmp x y] > 0 if and only if [cmp y x] < 0\n- if [cmp x y] >= 0 and [cmp y z] >= 0 then [cmp x z] >= 0\n\n When [Array.sort] returns, [a] contains the same elements as before,\n reordered in such a way that for all i and j valid indices of [a] :\n- [cmp a.(i) a.(j)] >= 0 if and only if i >= j\n"} + "detail": "array<'a> => string", + "documentation": null }, { "label": "length", "kind": 12, "tags": [], "detail": "array<'a> => int", - "documentation": {"kind": "markdown", "value": " Return the length (number of elements) of the given array. "} + "documentation": null }, { - "label": "sub", + "label": "every", "kind": 12, "tags": [], - "detail": "(array<'a>, int, int) => array<'a>", - "documentation": {"kind": "markdown", "value": " [Array.sub a start len] returns a fresh array of length [len],\n containing the elements number [start] to [start + len - 1]\n of array [a].\n\n Raise [Invalid_argument \"Array.sub\"] if [start] and [len] do not\n designate a valid subarray of [a]; that is, if\n [start < 0], or [len < 0], or [start + len > Array.length a]. "} + "detail": "(array<'a>, 'a => bool) => bool", + "documentation": null }, { - "label": "of_list", + "label": "sortInPlace", "kind": 12, "tags": [], - "detail": "list<'a> => array<'a>", - "documentation": {"kind": "markdown", "value": " [Array.of_list l] returns a fresh array containing the elements\n of [l]. "} + "detail": "(array<'a>, ('a, 'a) => int) => unit", + "documentation": null }, { - "label": "iter", + "label": "flat", "kind": 12, "tags": [], - "detail": "('a => unit, array<'a>) => unit", - "documentation": {"kind": "markdown", "value": " [Array.iter f a] applies function [f] in turn to all\n the elements of [a]. It is equivalent to\n [f a.(0); f a.(1); ...; f a.(Array.length a - 1); ()]. "} + "detail": "array> => array<'a>", + "documentation": null }, { "label": "map", "kind": 12, "tags": [], - "detail": "('a => 'b, array<'a>) => array<'b>", - "documentation": {"kind": "markdown", "value": " [Array.map f a] applies function [f] to all the elements of [a],\n and builds an array with the results returned by [f]:\n [[| f a.(0); f a.(1); ...; f a.(Array.length a - 1) |]]. "} + "detail": "(array<'a>, 'a => 'b) => array<'b>", + "documentation": null }, { - "label": "unsafe_get", + "label": "lastIndexOfOpt", "kind": 12, "tags": [], - "detail": "(array<'a>, int) => 'a", + "detail": "(array<'a>, 'a) => option", "documentation": null }, { - "label": "make_matrix", + "label": "copyWithin", "kind": 12, "tags": [], - "detail": "(int, int, 'a) => array>", - "documentation": {"kind": "markdown", "value": " [Array.make_matrix dimx dimy e] returns a two-dimensional array\n (an array of arrays) with first dimension [dimx] and\n second dimension [dimy]. All the elements of this new matrix\n are initially physically equal to [e].\n The element ([x,y]) of a matrix [m] is accessed\n with the notation [m.(x).(y)].\n\n Raise [Invalid_argument] if [dimx] or [dimy] is negative or\n greater than {!Sys.max_array_length}.\n If the value of [e] is a floating-point number, then the maximum\n size is only [Sys.max_array_length / 2]. "} + "detail": "(\n array<'a>,\n ~target: int,\n ~start: int,\n ~end: int,\n) => array<'a>", + "documentation": null }, { - "label": "mem", + "label": "fromWithMap", "kind": 12, "tags": [], - "detail": "('a, array<'a>) => bool", - "documentation": {"kind": "markdown", "value": " [mem a l] is true if and only if [a] is equal\n to an element of [l].\n @since 4.03.0 "} + "detail": "('a, 'b => 'c) => array<'c>", + "documentation": null }, { - "label": "get", + "label": "toString", + "kind": 12, + "tags": [], + "detail": "array<'a> => string", + "documentation": null + }, { + "label": "everyWithIndex", + "kind": 12, + "tags": [], + "detail": "(array<'a>, ('a, int) => bool) => bool", + "documentation": null + }, { + "label": "findWithIndex", + "kind": 12, + "tags": [], + "detail": "(array<'a>, ('a, int) => bool) => option<'a>", + "documentation": null + }, { + "label": "reverse", + "kind": 12, + "tags": [], + "detail": "array<'a> => array<'a>", + "documentation": null + }, { + "label": "getUnsafe", "kind": 12, "tags": [], "detail": "(array<'a>, int) => 'a", - "documentation": {"kind": "markdown", "value": " [Array.get a n] returns the element number [n] of array [a].\n The first element has number 0.\n The last element has number [Array.length a - 1].\n You can also write [a.(n)] instead of [Array.get a n].\n\n Raise [Invalid_argument \"index out of bounds\"]\n if [n] is outside the range 0 to [(Array.length a - 1)]. "} + "documentation": null }, { - "label": "append", + "label": "unshiftMany", "kind": 12, "tags": [], - "detail": "(array<'a>, array<'a>) => array<'a>", - "documentation": {"kind": "markdown", "value": " [Array.append v1 v2] returns a fresh array containing the\n concatenation of the arrays [v1] and [v2]. "} + "detail": "(array<'a>, array<'a>) => unit", + "documentation": null + }, { + "label": "lastIndexOf", + "kind": 12, + "tags": [], + "detail": "(array<'a>, 'a) => int", + "documentation": null + }, { + "label": "filter", + "kind": 12, + "tags": [], + "detail": "(array<'a>, 'a => bool) => array<'a>", + "documentation": null + }, { + "label": "isArray", + "kind": 12, + "tags": [], + "detail": "'a => bool", + "documentation": null }, { - "label": "unsafe_set", + "label": "shuffleInPlace", + "kind": 12, + "tags": [], + "detail": "array<'a> => unit", + "documentation": null + }, { + "label": "fromIteratorWithMap", + "kind": 12, + "tags": [], + "detail": "(Core__Iterator.t<'a>, 'a => 'c) => array<'a>", + "documentation": null + }, { + "label": "indexOfOpt", + "kind": 12, + "tags": [], + "detail": "(array<'a>, 'a) => option", + "documentation": null + }, { + "label": "forEachWithIndex", + "kind": 12, + "tags": [], + "detail": "(array<'a>, ('a, int) => unit) => unit", + "documentation": null + }, { + "label": "reduce", + "kind": 12, + "tags": [], + "detail": "(array<'b>, 'a, ('a, 'b) => 'a) => 'a", + "documentation": {"kind": "markdown", "value": "\n `reduce(xs, init, f)`\n\n Applies `f` to each element of `xs` from beginning to end. Function `f` has two parameters: the item from the list and an “accumulator”; which starts with a value of `init`. `reduce` returns the final value of the accumulator.\n\n ```res example\n Array.reduce([2, 3, 4], 1, (a, b) => a + b) == 10\n\n Array.reduce([\"a\", \"b\", \"c\", \"d\"], \"\", (a, b) => a ++ b) == \"abcd\"\n ```\n"} + }, { + "label": "sliceToEnd", + "kind": 12, + "tags": [], + "detail": "(array<'a>, ~start: int) => array<'a>", + "documentation": null + }, { + "label": "from", + "kind": 12, + "tags": [], + "detail": "'a => array<'b>", + "documentation": null + }, { + "label": "fromArrayLikeWithMap", + "kind": 12, + "tags": [], + "detail": "(Js.Array2.array_like<'a>, 'a => 'b) => array<'a>", + "documentation": null + }, { + "label": "set", "kind": 12, "tags": [], "detail": "(array<'a>, int, 'a) => unit", "documentation": null }, { - "label": "create_matrix", + "label": "filterWithIndex", "kind": 12, "tags": [], - "detail": "(int, int, 'a) => array>", - "documentation": {"kind": "markdown", "value": " @deprecated [Array.create_matrix] is an alias for {!Array.make_matrix}. "} + "detail": "(array<'a>, ('a, int) => bool) => array<'a>", + "documentation": null }, { - "label": "create_float", + "label": "findIndex", "kind": 12, "tags": [], - "detail": "int => array", - "documentation": {"kind": "markdown", "value": " [Array.create_float n] returns a fresh float array of length [n],\n with uninitialized data.\n @since 4.03 "} + "detail": "(array<'a>, 'a => bool) => int", + "documentation": null }, { - "label": "create", + "label": "setSymbol", "kind": 12, "tags": [], - "detail": "(int, 'a) => array<'a>", - "documentation": {"kind": "markdown", "value": " @deprecated [Array.create] is an alias for {!Array.make}. "} + "detail": "(array<'a>, Core__Symbol.t, 'b) => unit", + "documentation": null }, { - "label": "init", + "label": "reverseInPlace", "kind": 12, "tags": [], - "detail": "(int, int => 'a) => array<'a>", - "documentation": {"kind": "markdown", "value": " [Array.init n f] returns a fresh array of length [n],\n with element number [i] initialized to the result of [f i].\n In other terms, [Array.init n f] tabulates the results of [f]\n applied to the integers [0] to [n-1].\n\n Raise [Invalid_argument] if [n < 0] or [n > Sys.max_array_length].\n If the return type of [f] is [float], then the maximum\n size is only [Sys.max_array_length / 2]."} + "detail": "array<'a> => unit", + "documentation": null }, { - "label": "fast_sort", + "label": "mapWithIndex", "kind": 12, "tags": [], - "detail": "(('a, 'a) => int, array<'a>) => unit", - "documentation": {"kind": "markdown", "value": " Same as {!Array.sort} or {!Array.stable_sort}, whichever is faster\n on typical input.\n"} + "detail": "(array<'a>, ('a, int) => 'b) => array<'b>", + "documentation": null }, { - "label": "fill", + "label": "copyWithinToEnd", "kind": 12, "tags": [], - "detail": "(array<'a>, int, int, 'a) => unit", - "documentation": {"kind": "markdown", "value": " [Array.fill a ofs len x] modifies the array [a] in place,\n storing [x] in elements number [ofs] to [ofs + len - 1].\n\n Raise [Invalid_argument \"Array.fill\"] if [ofs] and [len] do not\n designate a valid subarray of [a]. "} + "detail": "(array<'a>, ~target: int, ~start: int) => array<'a>", + "documentation": null }, { - "label": "blit", + "label": "unshift", "kind": 12, "tags": [], - "detail": "(array<'a>, int, array<'a>, int, int) => unit", - "documentation": {"kind": "markdown", "value": " [Array.blit v1 o1 v2 o2 len] copies [len] elements\n from array [v1], starting at element number [o1], to array [v2],\n starting at element number [o2]. It works correctly even if\n [v1] and [v2] are the same array, and the source and\n destination chunks overlap.\n\n Raise [Invalid_argument \"Array.blit\"] if [o1] and [len] do not\n designate a valid subarray of [v1], or if [o2] and [len] do not\n designate a valid subarray of [v2]. "} + "detail": "(array<'a>, 'a) => unit", + "documentation": null }, { - "label": "Floatarray", - "kind": 9, + "label": "indexOf", + "kind": 12, "tags": [], - "detail": "module", + "detail": "(array<'a>, 'a) => int", "documentation": null - }] - -Complete src/Completion.res 5:10 -posCursor:[5:10] posNoWhite:[5:9] Found expr:[5:3->5:10] -Pexp_ident Array.m:[5:3->5:10] -Completable: Cpath Value[Array, m] -[{ - "label": "mapi", + }, { + "label": "fillInPlaceToEnd", "kind": 12, "tags": [], - "detail": "((int, 'a) => 'b, array<'a>) => array<'b>", - "documentation": {"kind": "markdown", "value": " Same as {!Array.map}, but the\n function is applied to the index of the element as first argument,\n and the element itself as second argument. "} + "detail": "(array<'a>, 'a, ~start: int) => unit", + "documentation": null }, { - "label": "memq", + "label": "push", "kind": 12, "tags": [], - "detail": "('a, array<'a>) => bool", - "documentation": {"kind": "markdown", "value": " Same as {!Array.mem}, but uses physical equality instead of structural\n equality to compare array elements.\n @since 4.03.0 "} + "detail": "(array<'a>, 'a) => unit", + "documentation": null }, { - "label": "map2", + "label": "reduceWithIndex", "kind": 12, "tags": [], - "detail": "(('a, 'b) => 'c, array<'a>, array<'b>) => array<'c>", - "documentation": {"kind": "markdown", "value": " [Array.map2 f a b] applies function [f] to all the elements of [a]\n and [b], and builds an array with the results returned by [f]:\n [[| f a.(0) b.(0); ...; f a.(Array.length a - 1) b.(Array.length b - 1)|]].\n Raise [Invalid_argument] if the arrays are not the same size.\n @since 4.03.0 "} + "detail": "(array<'a>, 'b, ('b, 'a, int) => 'b) => 'b", + "documentation": {"kind": "markdown", "value": "\n Applies `f` to each element of `xs` from beginning to end. Function `f` has three parameters: the item from the array and an “accumulator”, which starts with a value of `init` and the index of each element. `reduceWithIndex` returns the final value of the accumulator.\n\n ```res example\n Array.reduceWithIndex([1, 2, 3, 4], 0, (acc, x, i) => acc + x + i) == 16\n ```\n"} }, { - "label": "make", + "label": "some", "kind": 12, "tags": [], - "detail": "(int, 'a) => array<'a>", - "documentation": {"kind": "markdown", "value": " [Array.make n x] returns a fresh array of length [n],\n initialized with [x].\n All the elements of this new array are initially\n physically equal to [x] (in the sense of the [==] predicate).\n Consequently, if [x] is mutable, it is shared among all elements\n of the array, and modifying [x] through one of the array entries\n will modify all other entries at the same time.\n\n Raise [Invalid_argument] if [n < 0] or [n > Sys.max_array_length].\n If the value of [x] is a floating-point number, then the maximum\n size is only [Sys.max_array_length / 2]."} + "detail": "(array<'a>, 'a => bool) => bool", + "documentation": null }, { - "label": "make_float", + "label": "copyAllWithin", "kind": 12, "tags": [], - "detail": "int => array", - "documentation": {"kind": "markdown", "value": " @deprecated [Array.make_float] is an alias for {!Array.create_float}. "} + "detail": "(array<'a>, ~target: int) => array<'a>", + "documentation": null }, { - "label": "map", + "label": "pop", + "kind": 12, + "tags": [], + "detail": "array<'a> => option<'a>", + "documentation": null + }, { + "label": "get", + "kind": 12, + "tags": [], + "detail": "(array<'a>, int) => option<'a>", + "documentation": null + }, { + "label": "fillAllInPlace", + "kind": 12, + "tags": [], + "detail": "(array<'a>, 'a) => unit", + "documentation": null + }, { + "label": "pushMany", + "kind": 12, + "tags": [], + "detail": "(array<'a>, array<'a>) => unit", + "documentation": null + }, { + "label": "spliceInPlace", "kind": 12, "tags": [], - "detail": "('a => 'b, array<'a>) => array<'b>", - "documentation": {"kind": "markdown", "value": " [Array.map f a] applies function [f] to all the elements of [a],\n and builds an array with the results returned by [f]:\n [[| f a.(0); f a.(1); ...; f a.(Array.length a - 1) |]]. "} + "detail": "(\n array<'a>,\n ~start: int,\n ~remove: int,\n ~insert: array<'a>,\n) => unit", + "documentation": null + }, { + "label": "fromIterator", + "kind": 12, + "tags": [], + "detail": "Core__Iterator.t<'a> => array<'a>", + "documentation": null }, { - "label": "make_matrix", + "label": "forEach", "kind": 12, "tags": [], - "detail": "(int, int, 'a) => array>", - "documentation": {"kind": "markdown", "value": " [Array.make_matrix dimx dimy e] returns a two-dimensional array\n (an array of arrays) with first dimension [dimx] and\n second dimension [dimy]. All the elements of this new matrix\n are initially physically equal to [e].\n The element ([x,y]) of a matrix [m] is accessed\n with the notation [m.(x).(y)].\n\n Raise [Invalid_argument] if [dimx] or [dimy] is negative or\n greater than {!Sys.max_array_length}.\n If the value of [e] is a floating-point number, then the maximum\n size is only [Sys.max_array_length / 2]. "} + "detail": "(array<'a>, 'a => unit) => unit", + "documentation": null + }, { + "label": "flatMap", + "kind": 12, + "tags": [], + "detail": "(array<'a>, 'a => array<'b>) => array<'b>", + "documentation": null }, { - "label": "mem", + "label": "fromArrayLike", "kind": 12, "tags": [], - "detail": "('a, array<'a>) => bool", - "documentation": {"kind": "markdown", "value": " [mem a l] is true if and only if [a] is equal\n to an element of [l].\n @since 4.03.0 "} + "detail": "Js.Array2.array_like<'a> => array<'a>", + "documentation": null + }, { + "label": "indexOfFrom", + "kind": 12, + "tags": [], + "detail": "(array<'a>, 'a, int) => int", + "documentation": null + }] + +Complete src/Completion.res 5:10 +posCursor:[5:10] posNoWhite:[5:9] Found expr:[5:3->5:10] +Pexp_ident Array.m:[5:3->5:10] +Completable: Cpath Value[Array, m] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res +[{ + "label": "map", + "kind": 12, + "tags": [], + "detail": "(array<'a>, 'a => 'b) => array<'b>", + "documentation": null + }, { + "label": "mapWithIndex", + "kind": 12, + "tags": [], + "detail": "(array<'a>, ('a, int) => 'b) => array<'b>", + "documentation": null }] Complete src/Completion.res 15:17 posCursor:[15:17] posNoWhite:[15:16] Found expr:[15:12->15:17] Pexp_ident Dep.c:[15:12->15:17] Completable: Cpath Value[Dep, c] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "customDouble", "kind": 12, @@ -362,6 +532,8 @@ Complete src/Completion.res 23:20 posCursor:[23:20] posNoWhite:[23:19] Found expr:[23:11->23:20] Pexp_apply ...[23:11->23:18] () Completable: CnamedArg(Value[Lib, foo], "", []) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res Found type for function (~age: int, ~name: string) => string [{ "label": "age", @@ -380,46 +552,46 @@ Found type for function (~age: int, ~name: string) => string Complete src/Completion.res 26:13 posCursor:[26:13] posNoWhite:[26:12] Found expr:[26:3->26:13] Completable: Cpath array->m +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ - "label": "Js.Array2.mapi", + "label": "Array.map", "kind": 12, "tags": [], - "detail": "(t<'a>, ('a, int) => 'b) => t<'b>", - "documentation": {"kind": "markdown", "value": "\nApplies the function (the second argument) to each item in the array, returning\na new array. The function acceps two arguments: an item from the array and its\nindex number. The result array does not have to have elements of the same type\nas the input array. See\n[`Array.map`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map)\non MDN.\n\n```res example\n// multiply each item in array by its position\nlet product = (item, index) => item * index\nJs.Array2.mapi([10, 11, 12], product) == [0, 11, 24]\n```\n"} + "detail": "(array<'a>, 'a => 'b) => array<'b>", + "documentation": null }, { - "label": "Js.Array2.map", + "label": "Array.mapWithIndex", "kind": 12, "tags": [], - "detail": "(t<'a>, 'a => 'b) => t<'b>", - "documentation": {"kind": "markdown", "value": "\nApplies the function (the second argument) to each item in the array, returning\na new array. The result array does not have to have elements of the same type\nas the input array. See\n[`Array.map`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map)\non MDN.\n\n```res example\nJs.Array2.map([12, 4, 8], x => x * x) == [144, 16, 64]\nJs.Array2.map([\"animal\", \"vegetable\", \"mineral\"], Js.String.length) == [6, 9, 7]\n```\n"} + "detail": "(array<'a>, ('a, int) => 'b) => array<'b>", + "documentation": null }] Complete src/Completion.res 29:13 posCursor:[29:13] posNoWhite:[29:12] Found expr:[29:3->29:13] Completable: Cpath string->toU +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ - "label": "Js.String2.toUpperCase", + "label": "String.toUpperCase", "kind": 12, "tags": [], - "detail": "t => t", - "documentation": {"kind": "markdown", "value": "\n`toUpperCase(str)` converts `str` to upper case using the locale-insensitive\ncase mappings in the Unicode Character Database. Notice that the conversion can\nexpand the number of letters in the result; for example the German ß\ncapitalizes to two Ses in a row.\n\nSee [`String.toUpperCase`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toUpperCase)\non MDN.\n\n```res example\nJs.String2.toUpperCase(\"abc\") == \"ABC\"\nJs.String2.toUpperCase(`Straße`) == `STRASSE`\nJs.String2.toUpperCase(`πς`) == `ΠΣ`\n```\n"} + "detail": "string => string", + "documentation": null }] Complete src/Completion.res 34:8 posCursor:[34:8] posNoWhite:[34:7] Found expr:[34:3->34:8] Completable: Cpath Value[op]->e +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ - "label": "Belt.Option.eqU", - "kind": 12, - "tags": [], - "detail": "(option<'a>, option<'b>, (. 'a, 'b) => bool) => bool", - "documentation": {"kind": "markdown", "value": "\n Uncurried version of `eq`\n"} - }, { - "label": "Belt.Option.eq", + "label": "Option.eq", "kind": 12, "tags": [], "detail": "(option<'a>, option<'b>, ('a, 'b) => bool) => bool", - "documentation": {"kind": "markdown", "value": "\n Evaluates two optional values for equality with respect to a predicate\n function. If both `optValue1` and `optValue2` are `None`, returns `true`.\n If one of the arguments is `Some(value)` and the other is `None`, returns\n `false`.\n\n If arguments are `Some(value1)` and `Some(value2)`, returns the result of\n `predicate(value1, value2)`; the predicate function must return a bool.\n\n ```res example\n let clockEqual = (a, b) => mod(a, 12) == mod(b, 12)\n\n open Belt.Option\n\n eq(Some(3), Some(15), clockEqual) /* true */\n\n eq(Some(3), None, clockEqual) /* false */\n\n eq(None, Some(3), clockEqual) /* false */\n\n eq(None, None, clockEqual) /* true */\n ```\n"} + "documentation": {"kind": "markdown", "value": "\n Evaluates two optional values for equality with respect to a predicate\n function. If both `optValue1` and `optValue2` are `None`, returns `true`.\n If one of the arguments is `Some(value)` and the other is `None`, returns\n `false`.\n\n If arguments are `Some(value1)` and `Some(value2)`, returns the result of\n `predicate(value1, value2)`; the predicate function must return a bool.\n\n ```res example\n let clockEqual = (a, b) => mod(a, 12) == mod(b, 12)\n\n open Option\n\n eq(Some(3), Some(15), clockEqual) /* true */\n\n eq(Some(3), None, clockEqual) /* false */\n\n eq(None, Some(3), clockEqual) /* false */\n\n eq(None, None, clockEqual) /* true */\n ```\n"} }] Complete src/Completion.res 44:7 @@ -427,6 +599,8 @@ posCursor:[44:7] posNoWhite:[44:6] Found expr:[44:3->54:3] Pexp_apply ...[50:9->50:10] (...[44:3->50:8], ...[51:2->54:3]) posCursor:[44:7] posNoWhite:[44:6] Found expr:[44:3->50:8] Completable: Cpath Value[fa]-> +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "ForAuto.abc", "kind": 12, @@ -446,6 +620,8 @@ posCursor:[47:21] posNoWhite:[47:20] Found expr:[47:3->47:21] posCursor:[47:21] posNoWhite:[47:20] Found expr:[47:12->47:21] Pexp_ident Js.Dict.u:[47:12->47:21] Completable: Cpath Value[Js, Dict, u] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "unsafeGet", "kind": 12, @@ -464,6 +640,8 @@ Complete src/Completion.res 59:30 posCursor:[59:30] posNoWhite:[59:29] Found expr:[59:15->59:30] JSX 59:21] second[59:22->59:28]=...[59:29->59:30]> _children:None Completable: Cexpression CJsxPropValue [O, Comp] second=z +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "zzz", "kind": 12, @@ -476,6 +654,8 @@ Complete src/Completion.res 62:23 posCursor:[62:23] posNoWhite:[62:22] Found expr:[62:15->62:23] JSX 62:21] z[62:22->62:23]=...[62:22->62:23]> _children:None Completable: Cjsx([O, Comp], z, [z]) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "zoo", "kind": 4, @@ -487,6 +667,8 @@ Completable: Cjsx([O, Comp], z, [z]) Complete src/Completion.res 65:8 Attribute id:reac:[65:3->65:8] label:reac Completable: Cdecorator(reac) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "react.component", "kind": 4, @@ -500,6 +682,8 @@ posCursor:[68:10] posNoWhite:[68:9] Found expr:[0:-1->86:1] Pexp_apply ...[80:6->80:7] (...[80:8->86:1]) Attribute id:react.let:[68:3->80:3] label:react. Completable: Cdecorator(react.) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "component", "kind": 4, @@ -512,6 +696,8 @@ Complete src/Completion.res 71:27 posCursor:[71:27] posNoWhite:[71:26] Found expr:[71:11->71:27] Pexp_apply ...[71:11->71:18] (~name71:20->71:24=...[71:20->71:24]) Completable: CnamedArg(Value[Lib, foo], "", [name]) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res Found type for function (~age: int, ~name: string) => string [{ "label": "age", @@ -525,6 +711,8 @@ Complete src/Completion.res 74:26 posCursor:[74:26] posNoWhite:[74:25] Found expr:[74:11->74:26] Pexp_apply ...[74:11->74:18] (~age74:20->74:23=...[74:20->74:23]) Completable: CnamedArg(Value[Lib, foo], "", [age]) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res Found type for function (~age: int, ~name: string) => string [{ "label": "name", @@ -538,6 +726,8 @@ Complete src/Completion.res 77:32 posCursor:[77:32] posNoWhite:[77:31] Found expr:[77:11->77:32] Pexp_apply ...[77:11->77:18] (~age77:20->77:23=...[77:25->77:28]) Completable: CnamedArg(Value[Lib, foo], "", [age]) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res Found type for function (~age: int, ~name: string) => string [{ "label": "name", @@ -551,6 +741,8 @@ Complete src/Completion.res 82:5 posCursor:[82:5] posNoWhite:[82:4] Found expr:[80:8->86:1] Pexp_apply ...[80:8->80:15] (~age84:3->84:6=...[84:7->84:8], ~name85:3->85:7=...[85:8->85:10]) Completable: CnamedArg(Value[Lib, foo], "", [age, name]) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res Found type for function (~age: int, ~name: string) => string [] @@ -558,6 +750,8 @@ Complete src/Completion.res 90:13 posCursor:[90:13] posNoWhite:[90:12] Found expr:[90:3->93:18] Pexp_send a[90:12->90:13] e:[90:3->90:10] Completable: Cpath Value[someObj]["a"] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "age", "kind": 4, @@ -570,6 +764,8 @@ Complete src/Completion.res 95:24 posCursor:[95:24] posNoWhite:[95:23] Found expr:[95:3->99:6] Pexp_send [95:24->95:24] e:[95:3->95:22] Completable: Cpath Value[nestedObj]["x"]["y"][""] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "age", "kind": 4, @@ -588,6 +784,8 @@ Complete src/Completion.res 99:7 posCursor:[99:7] posNoWhite:[99:6] Found expr:[99:3->102:20] Pexp_send a[99:6->99:7] e:[99:3->99:4] Completable: Cpath Value[o]["a"] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "age", "kind": 4, @@ -600,6 +798,8 @@ Complete src/Completion.res 104:17 posCursor:[104:17] posNoWhite:[104:16] Found expr:[104:3->125:18] Pexp_send [104:17->104:17] e:[104:3->104:15] Completable: Cpath Value[no]["x"]["y"][""] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "name", "kind": 4, @@ -618,6 +818,8 @@ Complete src/Completion.res 110:5 posCursor:[110:5] posNoWhite:[110:4] Found expr:[110:3->110:5] Pexp_field [110:3->110:4] _:[116:0->110:5] Completable: Cpath Value[r]."" +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "x", "kind": 5, @@ -636,19 +838,9 @@ Complete src/Completion.res 113:24 posCursor:[113:24] posNoWhite:[113:23] Found expr:[113:3->113:24] Pexp_field [113:3->113:23] _:[116:0->113:24] Completable: Cpath Value[Object, Rec, recordVal]."" -[{ - "label": "xx", - "kind": 5, - "tags": [], - "detail": "xx: int\n\ntype recordt = {xx: int, ss: string}", - "documentation": null - }, { - "label": "ss", - "kind": 5, - "tags": [], - "detail": "ss: string\n\ntype recordt = {xx: int, ss: string}", - "documentation": null - }] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res +[] Complete src/Completion.res 120:7 posCursor:[120:7] posNoWhite:[120:6] Found expr:[119:11->123:1] @@ -656,6 +848,8 @@ posCursor:[120:7] posNoWhite:[120:6] Found expr:[120:5->122:5] posCursor:[120:7] posNoWhite:[120:6] Found expr:[120:5->120:7] Pexp_ident my:[120:5->120:7] Completable: Cpath Value[my] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "myAmazingFunction", "kind": 12, @@ -668,24 +862,16 @@ Complete src/Completion.res 125:18 posCursor:[125:18] posNoWhite:[125:17] Found expr:[125:3->145:32] Pexp_send [125:18->125:18] e:[125:3->125:16] Completable: Cpath Value[Object, object][""] -[{ - "label": "name", - "kind": 4, - "tags": [], - "detail": "string", - "documentation": null - }, { - "label": "age", - "kind": 4, - "tags": [], - "detail": "int", - "documentation": null - }] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res +[] Complete src/Completion.res 151:6 posCursor:[151:6] posNoWhite:[151:5] Found expr:[151:4->151:6] JSX 151:6] > _children:None Completable: Cpath Module[O, ""] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "Comp", "kind": 9, @@ -698,6 +884,8 @@ Complete src/Completion.res 157:8 posCursor:[157:8] posNoWhite:[157:7] Found expr:[157:3->157:8] Pexp_field [157:3->157:7] _:[165:0->157:8] Completable: Cpath Value[q].aa."" +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "x", "kind": 5, @@ -716,6 +904,8 @@ Complete src/Completion.res 159:9 posCursor:[159:9] posNoWhite:[159:8] Found expr:[159:3->159:9] Pexp_field [159:3->159:7] n:[159:8->159:9] Completable: Cpath Value[q].aa.n +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "name", "kind": 5, @@ -728,7 +918,15 @@ Complete src/Completion.res 162:6 posCursor:[162:6] posNoWhite:[162:5] Found expr:[162:3->162:6] Pexp_construct Lis:[162:3->162:6] None Completable: Cpath Value[Lis] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ + "label": "List", + "kind": 9, + "tags": [], + "detail": "module", + "documentation": null + }, { "label": "List", "kind": 9, "tags": [], @@ -746,6 +944,8 @@ Complete src/Completion.res 169:16 posCursor:[169:16] posNoWhite:[169:15] Found expr:[169:4->169:16] JSX 169:16] > _children:None Completable: Cpath Module[WithChildren] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "WithChildren", "kind": 9, @@ -758,6 +958,8 @@ Complete src/Completion.res 172:16 posCursor:[172:16] posNoWhite:[172:15] Found type:[172:12->172:16] Ptyp_constr Js.n:[172:12->172:16] Completable: Cpath Type[Js, n] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "null_undefined", "kind": 22, @@ -782,6 +984,8 @@ Complete src/Completion.res 174:20 posCursor:[174:20] posNoWhite:[174:19] Found type:[174:12->174:20] Ptyp_constr ForAuto.:[174:12->174:20] Completable: Cpath Type[ForAuto, ""] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "t", "kind": 22, @@ -794,17 +998,27 @@ Complete src/Completion.res 179:13 posCursor:[179:13] posNoWhite:[179:12] Found expr:[179:11->179:13] Pexp_construct As:[179:11->179:13] None Completable: Cpath Value[As] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "Asterix", "kind": 4, "tags": [], "detail": "Asterix\n\ntype z = Allo | Asterix | Baba", "documentation": null + }, { + "label": "AsyncIterator", + "kind": 9, + "tags": [], + "detail": "module", + "documentation": null }] Complete src/Completion.res 182:17 Pmod_ident For:[182:14->182:17] Completable: Cpath Module[For] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "ForAuto", "kind": 9, @@ -817,6 +1031,8 @@ Complete src/Completion.res 190:11 posCursor:[190:11] posNoWhite:[190:10] Found expr:[190:3->190:11] Pexp_ident Private.:[190:3->190:11] Completable: Cpath Value[Private, ""] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "b", "kind": 12, @@ -829,6 +1045,8 @@ Complete src/Completion.res 202:6 posCursor:[202:6] posNoWhite:[202:5] Found expr:[202:3->202:6] Pexp_ident sha:[202:3->202:6] Completable: Cpath Value[sha] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [] Complete src/Completion.res 205:6 @@ -836,7 +1054,8 @@ posCursor:[205:6] posNoWhite:[205:5] Found expr:[205:3->205:6] Pexp_ident sha:[205:3->205:6] Completable: Cpath Value[sha] Raw opens: 1 Shadow.A.place holder -Resolved opens 1 Completion.res +Package opens RescriptCore.place holder +Resolved opens 2 Completion.res RescriptCore.res [{ "label": "shadowed", "kind": 12, @@ -850,7 +1069,8 @@ posCursor:[208:6] posNoWhite:[208:5] Found expr:[208:3->208:6] Pexp_ident sha:[208:3->208:6] Completable: Cpath Value[sha] Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res [{ "label": "shadowed", "kind": 12, @@ -864,7 +1084,8 @@ posCursor:[221:22] posNoWhite:[221:21] Found expr:[221:3->224:22] Pexp_send [221:22->221:22] e:[221:3->221:20] Completable: Cpath Value[FAO, forAutoObject][""] Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res [{ "label": "age", "kind": 4, @@ -884,7 +1105,8 @@ posCursor:[224:37] posNoWhite:[224:36] Found expr:[224:3->224:37] Pexp_field [224:3->224:36] _:[233:0->224:37] Completable: Cpath Value[FAO, forAutoObject]["forAutoLabel"]."" Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res [{ "label": "forAuto", "kind": 5, @@ -903,7 +1125,8 @@ Complete src/Completion.res 227:46 posCursor:[227:46] posNoWhite:[227:45] Found expr:[227:3->0:-1] Completable: Cpath Value[FAO, forAutoObject]["forAutoLabel"].forAuto-> Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res [{ "label": "ForAuto.abc", "kind": 12, @@ -924,7 +1147,8 @@ posCursor:[230:55] posNoWhite:[230:54] Found expr:[230:46->230:55] Pexp_ident ForAuto.a:[230:46->230:55] Completable: Cpath Value[ForAuto, a] Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res [{ "label": "abc", "kind": 12, @@ -948,7 +1172,8 @@ posCursor:[234:34] posNoWhite:[234:33] Found expr:[234:32->234:34] Pexp_ident na:[234:32->234:34] Completable: Cpath Value[na] Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res [{ "label": "name", "kind": 12, @@ -961,7 +1186,8 @@ Complete src/Completion.res 237:17 posCursor:[237:17] posNoWhite:[237:14] Found expr:[237:14->237:22] Completable: Cnone Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res [] Complete src/Completion.res 243:8 @@ -972,7 +1198,8 @@ posCursor:[243:8] posNoWhite:[243:7] Found expr:[243:5->243:8] Pexp_field [243:5->243:7] _:[245:0->243:8] Completable: Cpath Value[_z]."" Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res [{ "label": "x", "kind": 5, @@ -992,7 +1219,8 @@ posCursor:[254:17] posNoWhite:[254:16] Found expr:[254:11->254:17] Pexp_construct SomeLo:[254:11->254:17] None Completable: Cpath Value[SomeLo] Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res [{ "label": "SomeLocalModule", "kind": 9, @@ -1006,7 +1234,8 @@ posCursor:[256:29] posNoWhite:[256:28] Found type:[256:13->256:29] Ptyp_constr SomeLocalModule.:[256:13->256:29] Completable: Cpath Type[SomeLocalModule, ""] Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res [{ "label": "zz", "kind": 22, @@ -1020,7 +1249,8 @@ posCursor:[261:33] posNoWhite:[261:32] Found type:[261:17->263:11] Ptyp_constr SomeLocalModule.:[261:17->263:11] Completable: Cpath Type[SomeLocalModule, ""] Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res [{ "label": "zz", "kind": 22, @@ -1033,7 +1263,8 @@ Complete src/Completion.res 268:21 Ptype_variant unary SomeLocal:[268:12->268:21] Completable: Cpath Value[SomeLocal] Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res [{ "label": "SomeLocalVariantItem", "kind": 4, @@ -1054,7 +1285,8 @@ posCursor:[271:20] posNoWhite:[271:19] Found type:[271:11->274:3] Ptyp_constr SomeLocal:[271:11->274:3] Completable: Cpath Type[SomeLocal] Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res [{ "label": "SomeLocalModule", "kind": 9, @@ -1070,7 +1302,8 @@ posCursor:[275:15] posNoWhite:[275:14] Found expr:[275:13->275:15] Pexp_ident _w:[275:13->275:15] Completable: Cpath Value[_w] Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res [{ "label": "_world", "kind": 12, @@ -1084,7 +1317,8 @@ posCursor:[281:22] posNoWhite:[281:21] Found type:[281:21->281:22] Ptyp_constr s:[281:21->281:22] Completable: Cpath Type[s] Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res [{ "label": "someType", "kind": 22, @@ -1104,7 +1338,8 @@ posCursor:[291:30] posNoWhite:[291:29] Found expr:[291:11->291:32] Pexp_apply ...[291:11->291:28] () Completable: CnamedArg(Value[funRecord].someFun, "", []) Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res Found type for function (~name: string) => unit [{ "label": "name", @@ -1119,7 +1354,8 @@ posCursor:[296:11] posNoWhite:[296:10] Found expr:[296:3->296:11] Pexp_field [296:3->296:10] _:[299:0->296:11] Completable: Cpath Value[retAA](Nolabel)."" Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res [{ "label": "x", "kind": 5, @@ -1139,7 +1375,8 @@ posCursor:[301:13] posNoWhite:[301:12] Found expr:[301:3->301:13] Pexp_apply ...[301:3->301:11] () Completable: CnamedArg(Value[ff](~c), "", []) Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res Found type for function ( ~opt1: int=?, ~a: int, @@ -1179,7 +1416,8 @@ posCursor:[304:15] posNoWhite:[304:14] Found expr:[304:3->304:15] Pexp_apply ...[304:3->304:13] () Completable: CnamedArg(Value[ff](~c)(Nolabel), "", []) Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res Found type for function (~a: int, ~b: int, ~opt2: int=?, unit) => int [{ "label": "a", @@ -1206,7 +1444,8 @@ posCursor:[307:17] posNoWhite:[307:16] Found expr:[307:3->307:17] Pexp_apply ...[307:3->307:15] () Completable: CnamedArg(Value[ff](~c, Nolabel), "", []) Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res Found type for function (~a: int, ~b: int, ~opt2: int=?, unit) => int [{ "label": "a", @@ -1233,7 +1472,8 @@ posCursor:[310:21] posNoWhite:[310:20] Found expr:[310:3->310:21] Pexp_apply ...[310:3->310:19] () Completable: CnamedArg(Value[ff](~c, Nolabel, Nolabel), "", []) Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res Found type for function (~a: int, ~b: int) => int [{ "label": "a", @@ -1254,7 +1494,8 @@ posCursor:[313:23] posNoWhite:[313:22] Found expr:[313:3->313:23] Pexp_apply ...[313:3->313:21] () Completable: CnamedArg(Value[ff](~c, Nolabel, ~b), "", []) Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res Found type for function (~a: int, ~opt2: int=?, unit) => int [{ "label": "a", @@ -1275,7 +1516,8 @@ posCursor:[316:16] posNoWhite:[316:15] Found expr:[316:3->316:16] Pexp_apply ...[316:3->316:14] () Completable: CnamedArg(Value[ff](~opt2), "", []) Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res Found type for function (~opt1: int=?, ~a: int, ~b: int, unit, unit, ~c: int) => int [{ "label": "opt1", @@ -1308,7 +1550,8 @@ posCursor:[323:17] posNoWhite:[323:16] Found expr:[323:3->323:17] Pexp_apply ...[323:3->323:15] () Completable: CnamedArg(Value[withCallback], "", []) Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res Found type for function (~b: int) => callback [{ "label": "b", @@ -1329,7 +1572,8 @@ posCursor:[326:21] posNoWhite:[326:20] Found expr:[326:3->326:21] Pexp_apply ...[326:3->326:19] () Completable: CnamedArg(Value[withCallback](~a), "", []) Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res Found type for function (~b: int) => int [{ "label": "b", @@ -1344,7 +1588,8 @@ posCursor:[329:21] posNoWhite:[329:20] Found expr:[329:3->329:21] Pexp_apply ...[329:3->329:19] () Completable: CnamedArg(Value[withCallback](~b), "", []) Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res Found type for function (~a: int) => int [{ "label": "a", @@ -1366,8 +1611,21 @@ posCursor:[336:26] posNoWhite:[336:25] Found type:[336:23->338:5] Ptyp_constr Res:[336:23->338:5] Completable: Cpath Type[Res] Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res [{ + "label": "Result", + "kind": 9, + "tags": [], + "detail": "module", + "documentation": null + }, { + "label": "RescriptCore", + "kind": 9, + "tags": [], + "detail": "file module", + "documentation": null + }, { "label": "RescriptReactErrorBoundary", "kind": 9, "tags": [], @@ -1388,7 +1646,8 @@ posCursor:[343:57] posNoWhite:[343:56] Found expr:[343:53->343:57] Pexp_ident this:[343:53->343:57] Completable: Cpath Value[this] Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res [{ "label": "thisIsNotSaved", "kind": 12, @@ -1403,7 +1662,8 @@ posCursor:[346:14] posNoWhite:[346:13] Found expr:[346:9->346:23] JSX 346:12] name[346:13->346:17]=...[346:18->346:20]> _children:346:21 Completable: Cjsx([div], name, [name]) Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res {"contents": {"kind": "markdown", "value": "```rescript\nstring\n```"}} Hover src/Completion.res 349:17 @@ -1414,7 +1674,8 @@ posCursor:[349:17] posNoWhite:[349:16] Found expr:[349:11->349:28] Pexp_ident FAO.forAutoObject:[349:11->349:28] Completable: Cpath Value[FAO, forAutoObject] Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res {"contents": {"kind": "markdown", "value": "```rescript\n{\"age\": int, \"forAutoLabel\": FAR.forAutoRecord}\n```"}} Hover src/Completion.res 352:17 @@ -1423,7 +1684,8 @@ posCursor:[352:17] posNoWhite:[352:16] Found expr:[352:11->352:22] Pexp_apply ...[352:11->352:13] (~opt1352:15->352:19=...[352:20->352:21]) Completable: CnamedArg(Value[ff], opt1, [opt1]) Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res Found type for function ( ~opt1: int=?, ~a: int, @@ -1448,9 +1710,11 @@ posCursor:[362:8] posNoWhite:[362:7] Found pattern:[362:7->362:8] Ppat_construct T:[362:7->362:8] Completable: Cpattern Value[x]=T Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res [{ "label": "That", "kind": 4, @@ -1463,6 +1727,18 @@ Resolved opens 2 Completion.res Completion.res "tags": [], "detail": "This\n\ntype v = This | That", "documentation": null + }, { + "label": "TypedArray", + "kind": 9, + "tags": [], + "detail": "module", + "documentation": null + }, { + "label": "Type", + "kind": 9, + "tags": [], + "detail": "module", + "documentation": null }, { "label": "TableclothMap", "kind": 9, @@ -1485,7 +1761,8 @@ posCursor:[373:21] posNoWhite:[373:20] Found pattern:[373:7->373:21] Ppat_construct AndThatOther.T:[373:7->373:21] Completable: Cpath Value[AndThatOther, T] Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res [{ "label": "ThatOther", "kind": 4, @@ -1503,7 +1780,8 @@ posCursor:[378:24] posNoWhite:[378:23] Found expr:[378:16->378:24] Pexp_ident ForAuto.:[378:16->378:24] Completable: Cpath Value[ForAuto, ""] Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res [{ "label": "abc", "kind": 12, @@ -1527,7 +1805,8 @@ posCursor:[381:38] posNoWhite:[381:37] Found expr:[381:19->381:39] Pexp_send [381:38->381:38] e:[381:19->381:36] Completable: Cpath Value[FAO, forAutoObject][""] Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res [{ "label": "age", "kind": 4, @@ -1551,7 +1830,8 @@ posCursor:[384:24] posNoWhite:[384:23] Found expr:[384:14->384:24] Pexp_field [384:14->384:23] _:[384:24->384:24] Completable: Cpath Value[funRecord]."" Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res [{ "label": "someFun", "kind": 5, @@ -1573,19 +1853,20 @@ posCursor:[389:12] posNoWhite:[389:11] Found expr:[389:6->391:4] posCursor:[389:12] posNoWhite:[389:11] Found expr:[389:6->389:12] Completable: Cpath array->ma Raw opens: 3 Js.place holder ... Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 3 Completion.res Completion.res js.ml +Package opens RescriptCore.place holder +Resolved opens 4 Completion.res Completion.res js.ml RescriptCore.res [{ - "label": "Array2.mapi", + "label": "Array.map", "kind": 12, "tags": [], - "detail": "(t<'a>, ('a, int) => 'b) => t<'b>", - "documentation": {"kind": "markdown", "value": "\nApplies the function (the second argument) to each item in the array, returning\na new array. The function acceps two arguments: an item from the array and its\nindex number. The result array does not have to have elements of the same type\nas the input array. See\n[`Array.map`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map)\non MDN.\n\n```res example\n// multiply each item in array by its position\nlet product = (item, index) => item * index\nJs.Array2.mapi([10, 11, 12], product) == [0, 11, 24]\n```\n"} + "detail": "(array<'a>, 'a => 'b) => array<'b>", + "documentation": null }, { - "label": "Array2.map", + "label": "Array.mapWithIndex", "kind": 12, "tags": [], - "detail": "(t<'a>, 'a => 'b) => t<'b>", - "documentation": {"kind": "markdown", "value": "\nApplies the function (the second argument) to each item in the array, returning\na new array. The result array does not have to have elements of the same type\nas the input array. See\n[`Array.map`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map)\non MDN.\n\n```res example\nJs.Array2.map([12, 4, 8], x => x * x) == [144, 16, 64]\nJs.Array2.map([\"animal\", \"vegetable\", \"mineral\"], Js.String.length) == [6, 9, 7]\n```\n"} + "detail": "(array<'a>, ('a, int) => 'b) => array<'b>", + "documentation": null }] Complete src/Completion.res 397:14 @@ -1597,7 +1878,8 @@ posCursor:[397:14] posNoWhite:[397:13] Found expr:[397:13->397:16] Pexp_ident red:[397:13->397:16] Completable: Cpath Value[red] Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res [{ "label": "red", "kind": 12, @@ -1615,7 +1897,8 @@ posCursor:[402:25] posNoWhite:[402:24] Found expr:[402:24->402:27] Pexp_ident red:[402:24->402:27] Completable: Cpath Value[red] Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res [{ "label": "red", "kind": 12, @@ -1634,7 +1917,8 @@ posCursor:[405:22] posNoWhite:[405:21] Found expr:[405:21->405:22] Pexp_ident r:[405:21->405:22] Completable: Cpath Value[r] Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res [{ "label": "red", "kind": 12, @@ -1663,7 +1947,8 @@ posCursor:[409:21] posNoWhite:[409:20] Found expr:[409:5->411:5] Pexp_ident SomeLocalModule.:[409:5->411:5] Completable: Cpath Value[SomeLocalModule, ""] Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res [{ "label": "bb", "kind": 12, @@ -1687,7 +1972,8 @@ posCursor:[412:21] posNoWhite:[412:20] Found expr:[412:5->414:8] Pexp_ident SomeLocalModule.:[412:5->414:8] Completable: Cpath Value[SomeLocalModule, ""] Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res [{ "label": "bb", "kind": 12, @@ -1706,57 +1992,156 @@ Complete src/Completion.res 417:17 posCursor:[417:17] posNoWhite:[417:16] Found expr:[417:11->417:17] Completable: Cpath int->t Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res [{ - "label": "Belt.Int.toString", + "label": "Int.toStringWithRadix", + "kind": 12, + "tags": [], + "detail": "(int, ~radix: int) => string", + "documentation": null + }, { + "label": "Int.toExponentialWithPrecision", + "kind": 12, + "tags": [], + "detail": "(int, ~digits: int) => string", + "documentation": null + }, { + "label": "Int.toPrecisionWithPrecision", + "kind": 12, + "tags": [], + "detail": "(int, ~digits: int) => string", + "documentation": null + }, { + "label": "Int.toFixedWithPrecision", + "kind": 12, + "tags": [], + "detail": "(int, ~digits: int) => string", + "documentation": null + }, { + "label": "Int.toPrecision", "kind": 12, "tags": [], "detail": "int => string", - "documentation": {"kind": "markdown", "value": "\n Converts a given `int` to a `string`. Uses the JavaScript `String` constructor under the hood.\n\n ```res example\n Js.log(Belt.Int.toString(1) === \"1\") /* true */\n ```\n"} + "documentation": null + }, { + "label": "Int.toString", + "kind": 12, + "tags": [], + "detail": "int => string", + "documentation": null }, { - "label": "Belt.Int.toFloat", + "label": "Int.toFloat", "kind": 12, "tags": [], "detail": "int => float", - "documentation": {"kind": "markdown", "value": "\n Converts a given `int` to a `float`.\n\n ```res example\n Js.log(Belt.Int.toFloat(1) === 1.0) /* true */\n ```\n"} + "documentation": null + }, { + "label": "Int.toLocaleString", + "kind": 12, + "tags": [], + "detail": "int => string", + "documentation": null + }, { + "label": "Int.toFixed", + "kind": 12, + "tags": [], + "detail": "int => string", + "documentation": null + }, { + "label": "Int.toExponential", + "kind": 12, + "tags": [], + "detail": "int => string", + "documentation": null }] Complete src/Completion.res 420:19 posCursor:[420:19] posNoWhite:[420:18] Found expr:[420:11->420:19] Completable: Cpath float->t Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res [{ - "label": "Belt.Float.toInt", + "label": "Float.toStringWithRadix", + "kind": 12, + "tags": [], + "detail": "(float, ~radix: int) => string", + "documentation": null + }, { + "label": "Float.toExponentialWithPrecision", + "kind": 12, + "tags": [], + "detail": "(float, ~digits: int) => string", + "documentation": null + }, { + "label": "Float.toInt", "kind": 12, "tags": [], "detail": "float => int", - "documentation": {"kind": "markdown", "value": "\nConverts a given `float` to an `int`.\n\n```res example\nJs.log(Belt.Float.toInt(1.0) === 1) /* true */\n```\n"} + "documentation": null + }, { + "label": "Float.toFixedWithPrecision", + "kind": 12, + "tags": [], + "detail": "(float, ~digits: int) => string", + "documentation": null + }, { + "label": "Float.toPrecisionWithPrecision", + "kind": 12, + "tags": [], + "detail": "(float, ~digits: int) => string", + "documentation": null + }, { + "label": "Float.toPrecision", + "kind": 12, + "tags": [], + "detail": "float => string", + "documentation": null + }, { + "label": "Float.toString", + "kind": 12, + "tags": [], + "detail": "float => string", + "documentation": null + }, { + "label": "Float.toLocaleString", + "kind": 12, + "tags": [], + "detail": "float => string", + "documentation": null + }, { + "label": "Float.toExponential", + "kind": 12, + "tags": [], + "detail": "float => string", + "documentation": null }, { - "label": "Belt.Float.toString", + "label": "Float.toFixed", "kind": 12, "tags": [], "detail": "float => string", - "documentation": {"kind": "markdown", "value": "\n Converts a given `float` to a `string`. Uses the JavaScript `String` constructor under the hood.\n\n ```res example\n Js.log(Belt.Float.toString(1.0) === \"1.0\") /* true */\n ```\n"} + "documentation": null }] Complete src/Completion.res 425:8 posCursor:[425:8] posNoWhite:[425:7] Found expr:[425:3->425:8] Completable: Cpath Value[ok]->g Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res [{ - "label": "Belt.Result.getExn", + "label": "Result.getExn", "kind": 12, "tags": [], "detail": "t<'a, 'b> => 'a", - "documentation": {"kind": "markdown", "value": "\n `getExn(res)`: when `res` is `Ok(n)`, returns `n` when `res` is `Error(m)`, raise an exception\n\n ```res example\n Belt.Result.getExn(Belt.Result.Ok(42)) == 42\n\n Belt.Result.getExn(Belt.Result.Error(\"Invalid data\")) /* raises exception */\n ```\n"} + "documentation": {"kind": "markdown", "value": "\n `getExn(res)`: when `res` is `Ok(n)`, returns `n` when `res` is `Error(m)`, raise an exception\n\n ```res example\n Result.getExn(Result.Ok(42)) == 42\n\n Result.getExn(Result.Error(\"Invalid data\")) /* raises exception */\n ```\n"} }, { - "label": "Belt.Result.getWithDefault", + "label": "Result.getWithDefault", "kind": 12, "tags": [], "detail": "(t<'a, 'b>, 'a) => 'a", - "documentation": {"kind": "markdown", "value": "\n `getWithDefault(res, defaultValue)`: If `res` is `Ok(n)`, returns `n`,\n otherwise `default`\n\n ```res example\n Belt.Result.getWithDefault(Ok(42), 0) == 42\n\n Belt.Result.getWithDefault(Error(\"Invalid Data\"), 0) == 0\n ```\n"} + "documentation": {"kind": "markdown", "value": "\n `getWithDefault(res, defaultValue)`: If `res` is `Ok(n)`, returns `n`,\n otherwise `default`\n\n ```res example\n Result.getWithDefault(Ok(42), 0) == 42\n\n Result.getWithDefault(Error(\"Invalid Data\"), 0) == 0\n ```\n"} }] Complete src/Completion.res 443:15 @@ -1764,7 +2149,8 @@ posCursor:[443:15] posNoWhite:[443:14] Found expr:[443:3->443:15] Pexp_field [443:3->443:12] so:[443:13->443:15] Completable: Cpath Value[rWithDepr].so Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res [{ "label": "someInt", "kind": 5, @@ -1783,7 +2169,8 @@ Complete src/Completion.res 450:37 XXX Not found! Completable: Cexpression Type[someVariantWithDeprecated] Raw opens: 2 Shadow.B.place holder ... Shadow.A.place holder -Resolved opens 2 Completion.res Completion.res +Package opens RescriptCore.place holder +Resolved opens 3 Completion.res Completion.res RescriptCore.res [{ "label": "DoNotUseMe", "kind": 4, diff --git a/analysis/tests/src/expected/CompletionExpressions.res.txt b/analysis/tests/src/expected/CompletionExpressions.res.txt index 5f3324514..8d2817379 100644 --- a/analysis/tests/src/expected/CompletionExpressions.res.txt +++ b/analysis/tests/src/expected/CompletionExpressions.res.txt @@ -1,6 +1,8 @@ Complete src/CompletionExpressions.res 3:20 XXX Not found! Completable: Cpattern CTuple(Value[s], Value[f]) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "(_, _)", "kind": 12, @@ -15,6 +17,8 @@ Complete src/CompletionExpressions.res 26:27 posCursor:[26:27] posNoWhite:[26:26] Found expr:[26:11->26:29] Pexp_apply ...[26:11->26:25] (...[26:26->26:28]) Completable: Cexpression CArgument Value[fnTakingRecord]($0)->recordBody +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "age", "kind": 5, @@ -57,6 +61,8 @@ Complete src/CompletionExpressions.res 29:28 posCursor:[29:28] posNoWhite:[29:27] Found expr:[29:11->29:30] Pexp_apply ...[29:11->29:25] (...[29:27->29:28]) Completable: Cexpression CArgument Value[fnTakingRecord]($0)=n->recordBody +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "nested", "kind": 5, @@ -69,6 +75,8 @@ Complete src/CompletionExpressions.res 32:35 posCursor:[32:35] posNoWhite:[32:34] Found expr:[32:11->32:38] Pexp_apply ...[32:11->32:25] (...[32:26->32:38]) Completable: Cexpression CArgument Value[fnTakingRecord]($0)->recordField(offline) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "true", "kind": 4, @@ -87,6 +95,8 @@ Complete src/CompletionExpressions.res 35:36 posCursor:[35:36] posNoWhite:[35:35] Found expr:[35:11->35:39] Pexp_apply ...[35:11->35:25] (...[35:26->35:38]) Completable: Cexpression CArgument Value[fnTakingRecord]($0)->recordBody +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "offline", "kind": 5, @@ -123,6 +133,8 @@ Complete src/CompletionExpressions.res 38:37 posCursor:[38:37] posNoWhite:[38:35] Found expr:[38:11->38:53] Pexp_apply ...[38:11->38:25] (...[38:26->38:52]) Completable: Cexpression CArgument Value[fnTakingRecord]($0)->recordBody +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "online", "kind": 5, @@ -153,6 +165,8 @@ Complete src/CompletionExpressions.res 41:44 posCursor:[41:44] posNoWhite:[41:43] Found expr:[41:11->41:47] Pexp_apply ...[41:11->41:25] (...[41:26->41:47]) Completable: Cexpression CArgument Value[fnTakingRecord]($0)->recordField(nested) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "None", "kind": 4, @@ -181,12 +195,16 @@ Complete src/CompletionExpressions.res 44:46 posCursor:[44:46] posNoWhite:[44:45] Found expr:[44:11->44:49] Pexp_apply ...[44:11->44:25] (...[44:26->44:48]) Completable: Cexpression CArgument Value[fnTakingRecord]($0)->recordField(nested), recordBody +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [] Complete src/CompletionExpressions.res 47:51 posCursor:[47:51] posNoWhite:[47:50] Found expr:[47:11->47:55] Pexp_apply ...[47:11->47:25] (...[47:26->47:54]) Completable: Cexpression CArgument Value[fnTakingRecord]($0)->recordField(nested), variantPayload::Some($0), recordBody +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "someField", "kind": 5, @@ -205,6 +223,8 @@ Complete src/CompletionExpressions.res 50:45 posCursor:[50:45] posNoWhite:[50:44] Found expr:[50:11->50:48] Pexp_apply ...[50:11->50:25] (...[50:26->50:48]) Completable: Cexpression CArgument Value[fnTakingRecord]($0)->recordField(variant) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "One", "kind": 4, @@ -235,6 +255,8 @@ Complete src/CompletionExpressions.res 53:47 posCursor:[53:47] posNoWhite:[53:46] Found expr:[53:11->53:50] Pexp_apply ...[53:11->53:25] (...[53:26->53:49]) Completable: Cexpression CArgument Value[fnTakingRecord]($0)=O->recordField(variant) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "One", "kind": 4, @@ -244,6 +266,24 @@ Completable: Cexpression CArgument Value[fnTakingRecord]($0)=O->recordField(vari "sortText": "A One", "insertText": "One", "insertTextFormat": 2 + }, { + "label": "Option", + "kind": 9, + "tags": [], + "detail": "module", + "documentation": null + }, { + "label": "Object", + "kind": 9, + "tags": [], + "detail": "module", + "documentation": null + }, { + "label": "OCamlCompat", + "kind": 9, + "tags": [], + "detail": "file module", + "documentation": null }, { "label": "Obj", "kind": 9, @@ -251,7 +291,7 @@ Completable: Cexpression CArgument Value[fnTakingRecord]($0)=O->recordField(vari "detail": "file module", "documentation": null }, { - "label": "Object", + "label": "Objects", "kind": 9, "tags": [], "detail": "file module", @@ -262,6 +302,8 @@ Complete src/CompletionExpressions.res 56:57 posCursor:[56:57] posNoWhite:[56:56] Found expr:[56:11->56:61] Pexp_apply ...[56:11->56:25] (...[56:26->56:60]) Completable: Cexpression CArgument Value[fnTakingRecord]($0)->recordField(polyvariant), polyvariantPayload::three($0) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "{}", "kind": 12, @@ -277,6 +319,8 @@ Complete src/CompletionExpressions.res 59:60 posCursor:[59:60] posNoWhite:[59:59] Found expr:[59:11->59:65] Pexp_apply ...[59:11->59:25] (...[59:26->59:64]) Completable: Cexpression CArgument Value[fnTakingRecord]($0)->recordField(polyvariant), polyvariantPayload::three($1) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "true", "kind": 4, @@ -295,11 +339,20 @@ Complete src/CompletionExpressions.res 62:62 posCursor:[62:62] posNoWhite:[62:61] Found expr:[62:11->62:66] Pexp_apply ...[62:11->62:25] (...[62:26->62:65]) Completable: Cexpression CArgument Value[fnTakingRecord]($0)=t->recordField(polyvariant), polyvariantPayload::three($1) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "true", "kind": 4, "tags": [], "detail": "bool", + "documentation": null, + "sortText": "A true" + }, { + "label": "typeof", + "kind": 12, + "tags": [], + "detail": "'a => Core__Type.t", "documentation": null }] @@ -307,6 +360,8 @@ Complete src/CompletionExpressions.res 69:25 posCursor:[69:25] posNoWhite:[69:24] Found expr:[69:11->69:26] Pexp_apply ...[69:11->69:24] (...[69:25->69:26]) Completable: Cexpression CArgument Value[fnTakingArray]($0) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "[]", "kind": 12, @@ -322,6 +377,8 @@ Complete src/CompletionExpressions.res 72:26 posCursor:[72:26] posNoWhite:[72:25] Found expr:[72:11->72:28] Pexp_apply ...[72:11->72:24] (...[72:25->72:27]) Completable: Cexpression CArgument Value[fnTakingArray]($0)->array +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "None", "kind": 4, @@ -354,18 +411,46 @@ Complete src/CompletionExpressions.res 75:26 posCursor:[75:26] posNoWhite:[75:25] Found expr:[75:11->75:27] Pexp_apply ...[75:11->75:24] (...[75:25->75:26]) Completable: Cexpression CArgument Value[fnTakingArray]($0)=s +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "s", "kind": 12, "tags": [], "detail": "bool", "documentation": null + }, { + "label": "setTimeoutFloat", + "kind": 12, + "tags": [], + "detail": "(unit => unit, float) => timeoutId", + "documentation": null + }, { + "label": "setIntervalFloat", + "kind": 12, + "tags": [], + "detail": "(unit => unit, float) => intervalId", + "documentation": null + }, { + "label": "setInterval", + "kind": 12, + "tags": [], + "detail": "(unit => unit, int) => intervalId", + "documentation": null + }, { + "label": "setTimeout", + "kind": 12, + "tags": [], + "detail": "(unit => unit, int) => timeoutId", + "documentation": null }] Complete src/CompletionExpressions.res 78:31 posCursor:[78:31] posNoWhite:[78:30] Found expr:[78:11->78:34] Pexp_apply ...[78:11->78:24] (...[78:25->78:33]) Completable: Cexpression CArgument Value[fnTakingArray]($0)->array, variantPayload::Some($0) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "true", "kind": 4, @@ -384,6 +469,8 @@ Complete src/CompletionExpressions.res 81:31 posCursor:[81:31] posNoWhite:[81:30] Found expr:[81:11->81:34] Pexp_apply ...[81:11->81:24] (...[81:25->81:33]) Completable: Cexpression CArgument Value[fnTakingArray]($0)->array +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "None", "kind": 4, @@ -416,6 +503,8 @@ Complete src/CompletionExpressions.res 84:31 posCursor:[84:31] posNoWhite:[84:30] Found expr:[84:11->84:40] Pexp_apply ...[84:11->84:24] (...[84:25->84:39]) Completable: Cexpression CArgument Value[fnTakingArray]($0)->array +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "None", "kind": 4, @@ -448,6 +537,8 @@ Complete src/CompletionExpressions.res 89:38 posCursor:[89:38] posNoWhite:[89:37] Found expr:[89:11->89:41] Pexp_apply ...[89:11->89:25] (...[89:26->89:40]) Completable: Cexpression CArgument Value[fnTakingRecord]($0)=so +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "someBoolVar", "kind": 12, @@ -460,6 +551,8 @@ Complete src/CompletionExpressions.res 96:43 posCursor:[96:43] posNoWhite:[96:42] Found expr:[96:11->96:46] Pexp_apply ...[96:11->96:30] (...[96:31->96:46]) Completable: Cexpression CArgument Value[fnTakingOtherRecord]($0)->recordField(otherField) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "\"\"", "kind": 12, @@ -475,6 +568,8 @@ Complete src/CompletionExpressions.res 108:57 posCursor:[108:57] posNoWhite:[108:56] Found expr:[108:11->108:60] Pexp_apply ...[108:11->108:42] (...[108:43->108:60]) Completable: Cexpression CArgument Value[fnTakingRecordWithOptionalField]($0)->recordField(someOptField) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "true", "kind": 4, @@ -493,6 +588,8 @@ Complete src/CompletionExpressions.res 116:53 posCursor:[116:53] posNoWhite:[116:52] Found expr:[116:11->116:56] Pexp_apply ...[116:11->116:39] (...[116:40->116:56]) Completable: Cexpression CArgument Value[fnTakingRecordWithOptVariant]($0)->recordField(someVariant) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "None", "kind": 4, @@ -537,6 +634,8 @@ Complete src/CompletionExpressions.res 126:49 posCursor:[126:49] posNoWhite:[126:48] Found expr:[126:11->126:51] Pexp_apply ...[126:11->126:31] (...[126:32->126:50]) Completable: Cexpression CArgument Value[fnTakingInlineRecord]($0)->variantPayload::WithInlineRecord($0) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "{}", "kind": 4, @@ -552,6 +651,8 @@ Complete src/CompletionExpressions.res 129:50 posCursor:[129:50] posNoWhite:[129:49] Found expr:[129:11->129:53] Pexp_apply ...[129:11->129:31] (...[129:32->129:52]) Completable: Cexpression CArgument Value[fnTakingInlineRecord]($0)->variantPayload::WithInlineRecord($0), recordBody +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "someBoolField", "kind": 4, @@ -576,6 +677,8 @@ Complete src/CompletionExpressions.res 132:51 posCursor:[132:51] posNoWhite:[132:50] Found expr:[132:11->132:54] Pexp_apply ...[132:11->132:31] (...[132:32->132:53]) Completable: Cexpression CArgument Value[fnTakingInlineRecord]($0)=s->variantPayload::WithInlineRecord($0), recordBody +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "someBoolField", "kind": 4, @@ -588,6 +691,8 @@ Complete src/CompletionExpressions.res 135:63 posCursor:[135:63] posNoWhite:[135:62] Found expr:[135:11->135:67] Pexp_apply ...[135:11->135:31] (...[135:32->135:66]) Completable: Cexpression CArgument Value[fnTakingInlineRecord]($0)->variantPayload::WithInlineRecord($0), recordField(nestedRecord) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "{}", "kind": 12, @@ -603,6 +708,8 @@ Complete src/CompletionExpressions.res 138:65 posCursor:[138:65] posNoWhite:[138:64] Found expr:[138:11->138:70] Pexp_apply ...[138:11->138:31] (...[138:32->138:69]) Completable: Cexpression CArgument Value[fnTakingInlineRecord]($0)->variantPayload::WithInlineRecord($0), recordField(nestedRecord), recordBody +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "someField", "kind": 5, @@ -621,6 +728,8 @@ Complete src/CompletionExpressions.res 159:20 posCursor:[159:20] posNoWhite:[159:19] Found expr:[159:3->159:21] Pexp_apply ...[159:3->159:19] (...[159:20->159:21]) Completable: Cexpression CArgument Value[fnTakingCallback]($0) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "() => {}", "kind": 12, @@ -636,12 +745,16 @@ Complete src/CompletionExpressions.res 162:21 posCursor:[162:21] posNoWhite:[162:20] Found expr:[162:3->162:22] Pexp_apply ...[162:3->162:19] (...[162:20->162:21]) Completable: Cexpression CArgument Value[fnTakingCallback]($0)=a +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [] Complete src/CompletionExpressions.res 165:22 posCursor:[165:22] posNoWhite:[165:21] Found expr:[165:3->165:24] Pexp_apply ...[165:3->165:19] (...[165:20->165:21]) Completable: Cexpression CArgument Value[fnTakingCallback]($1) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "v => {}", "kind": 12, @@ -657,6 +770,8 @@ Complete src/CompletionExpressions.res 168:25 posCursor:[168:25] posNoWhite:[168:24] Found expr:[168:3->168:27] Pexp_apply ...[168:3->168:19] (...[168:20->168:21], ...[168:23->168:24]) Completable: Cexpression CArgument Value[fnTakingCallback]($2) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "event => {}", "kind": 12, @@ -672,6 +787,8 @@ Complete src/CompletionExpressions.res 171:29 posCursor:[171:29] posNoWhite:[171:27] Found expr:[171:3->171:30] Pexp_apply ...[171:3->171:19] (...[171:20->171:21], ...[171:23->171:24], ...[171:26->171:27]) Completable: Cexpression CArgument Value[fnTakingCallback]($3) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "(~on, ~off=?, v1) => {}", "kind": 12, @@ -687,6 +804,8 @@ Complete src/CompletionExpressions.res 174:32 posCursor:[174:32] posNoWhite:[174:30] Found expr:[174:3->174:33] Pexp_apply ...[174:3->174:19] (...[174:20->174:21], ...[174:23->174:24], ...[174:26->174:27], ...[174:29->174:30]) Completable: Cexpression CArgument Value[fnTakingCallback]($4) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "(v1, v2, v3) => {}", "kind": 12, @@ -702,6 +821,8 @@ Complete src/CompletionExpressions.res 177:34 posCursor:[177:34] posNoWhite:[177:33] Found expr:[177:3->177:36] Pexp_apply ...[177:3->177:19] (...[177:20->177:21], ...[177:23->177:24], ...[177:26->177:27], ...[177:29->177:30], ...[177:32->177:33]) Completable: Cexpression CArgument Value[fnTakingCallback]($5) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "(~on=?, ~off=?, ()) => {}", "kind": 12, @@ -721,6 +842,8 @@ posCursor:[185:10] posNoWhite:[185:9] Found expr:[184:2->185:11] posCursor:[185:10] posNoWhite:[185:9] Found expr:[185:2->185:11] Pexp_apply ...[185:2->185:8] (...[185:9->185:10]) Completable: Cexpression CArgument Value[Js, log]($0)=s +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "second2", "kind": 12, @@ -745,12 +868,38 @@ Completable: Cexpression CArgument Value[Js, log]($0)=s "tags": [], "detail": "bool", "documentation": null + }, { + "label": "setTimeoutFloat", + "kind": 12, + "tags": [], + "detail": "(unit => unit, float) => timeoutId", + "documentation": null + }, { + "label": "setIntervalFloat", + "kind": 12, + "tags": [], + "detail": "(unit => unit, float) => intervalId", + "documentation": null + }, { + "label": "setInterval", + "kind": 12, + "tags": [], + "detail": "(unit => unit, int) => intervalId", + "documentation": null + }, { + "label": "setTimeout", + "kind": 12, + "tags": [], + "detail": "(unit => unit, int) => timeoutId", + "documentation": null }] Complete src/CompletionExpressions.res 196:14 posCursor:[196:14] posNoWhite:[196:13] Found expr:[196:3->196:14] Pexp_field [196:3->196:6] someOpt:[196:7->196:14] Completable: Cpath Value[fff].someOpt +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "someOptField", "kind": 5, diff --git a/analysis/tests/src/expected/CompletionFunctionArguments.res.txt b/analysis/tests/src/expected/CompletionFunctionArguments.res.txt index a2b6236f6..4e66064ba 100644 --- a/analysis/tests/src/expected/CompletionFunctionArguments.res.txt +++ b/analysis/tests/src/expected/CompletionFunctionArguments.res.txt @@ -2,6 +2,8 @@ Complete src/CompletionFunctionArguments.res 10:24 posCursor:[10:24] posNoWhite:[10:23] Found expr:[10:11->10:25] Pexp_apply ...[10:11->10:17] (~isOn10:19->10:23=...__ghost__[0:-1->0:-1]) Completable: Cexpression CArgument Value[someFn](~isOn) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "true", "kind": 4, @@ -20,6 +22,8 @@ Complete src/CompletionFunctionArguments.res 13:25 posCursor:[13:25] posNoWhite:[13:24] Found expr:[13:11->13:26] Pexp_apply ...[13:11->13:17] (~isOn13:19->13:23=...[13:24->13:25]) Completable: Cexpression CArgument Value[someFn](~isOn)=t +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "true", "kind": 4, @@ -33,12 +37,20 @@ Completable: Cexpression CArgument Value[someFn](~isOn)=t "tags": [], "detail": "bool", "documentation": null + }, { + "label": "typeof", + "kind": 12, + "tags": [], + "detail": "'a => Core__Type.t", + "documentation": null }] Complete src/CompletionFunctionArguments.res 16:25 posCursor:[16:25] posNoWhite:[16:24] Found expr:[16:11->16:26] Pexp_apply ...[16:11->16:17] (~isOff16:19->16:24=...__ghost__[0:-1->0:-1]) Completable: Cexpression CArgument Value[someFn](~isOff) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "true", "kind": 4, @@ -61,6 +73,8 @@ posCursor:[21:27] posNoWhite:[21:26] Found expr:[21:7->21:28] posCursor:[21:27] posNoWhite:[21:26] Found expr:[21:14->21:28] Pexp_apply ...[21:14->21:20] (~isOn21:22->21:26=...__ghost__[0:-1->0:-1]) Completable: Cexpression CArgument Value[someFn](~isOn) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "true", "kind": 4, @@ -79,6 +93,8 @@ Complete src/CompletionFunctionArguments.res 34:24 posCursor:[34:24] posNoWhite:[34:23] Found expr:[34:11->34:25] Pexp_apply ...[34:11->34:22] (...[34:23->34:24]) Completable: Cexpression CArgument Value[someOtherFn]($0)=f +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "false", "kind": 4, @@ -91,6 +107,8 @@ Complete src/CompletionFunctionArguments.res 51:39 posCursor:[51:39] posNoWhite:[51:38] Found expr:[51:11->51:40] Pexp_apply ...[51:11->51:30] (~config51:32->51:38=...__ghost__[0:-1->0:-1]) Completable: Cexpression CArgument Value[someFnTakingVariant](~config) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "One", "kind": 4, @@ -121,6 +139,8 @@ Complete src/CompletionFunctionArguments.res 54:40 posCursor:[54:40] posNoWhite:[54:39] Found expr:[54:11->54:41] Pexp_apply ...[54:11->54:30] (~config54:32->54:38=...[54:39->54:40]) Completable: Cexpression CArgument Value[someFnTakingVariant](~config)=O +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "One", "kind": 4, @@ -136,6 +156,24 @@ Completable: Cexpression CArgument Value[someFnTakingVariant](~config)=O "tags": [], "detail": "module", "documentation": null + }, { + "label": "Option", + "kind": 9, + "tags": [], + "detail": "module", + "documentation": null + }, { + "label": "Object", + "kind": 9, + "tags": [], + "detail": "module", + "documentation": null + }, { + "label": "OCamlCompat", + "kind": 9, + "tags": [], + "detail": "file module", + "documentation": null }, { "label": "Obj", "kind": 9, @@ -143,7 +181,7 @@ Completable: Cexpression CArgument Value[someFnTakingVariant](~config)=O "detail": "file module", "documentation": null }, { - "label": "Object", + "label": "Objects", "kind": 9, "tags": [], "detail": "file module", @@ -154,6 +192,8 @@ Complete src/CompletionFunctionArguments.res 57:33 posCursor:[57:33] posNoWhite:[57:32] Found expr:[57:11->57:34] Pexp_apply ...[57:11->57:30] (...[57:31->57:33]) Completable: Cexpression CArgument Value[someFnTakingVariant]($0)=So +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "Some(_)", "kind": 4, @@ -175,6 +215,8 @@ Complete src/CompletionFunctionArguments.res 60:44 posCursor:[60:44] posNoWhite:[60:43] Found expr:[60:11->60:45] Pexp_apply ...[60:11->60:30] (~configOpt260:32->60:42=...[60:43->60:44]) Completable: Cexpression CArgument Value[someFnTakingVariant](~configOpt2)=O +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "One", "kind": 4, @@ -190,6 +232,24 @@ Completable: Cexpression CArgument Value[someFnTakingVariant](~configOpt2)=O "tags": [], "detail": "module", "documentation": null + }, { + "label": "Option", + "kind": 9, + "tags": [], + "detail": "module", + "documentation": null + }, { + "label": "Object", + "kind": 9, + "tags": [], + "detail": "module", + "documentation": null + }, { + "label": "OCamlCompat", + "kind": 9, + "tags": [], + "detail": "file module", + "documentation": null }, { "label": "Obj", "kind": 9, @@ -197,7 +257,7 @@ Completable: Cexpression CArgument Value[someFnTakingVariant](~configOpt2)=O "detail": "file module", "documentation": null }, { - "label": "Object", + "label": "Objects", "kind": 9, "tags": [], "detail": "file module", @@ -208,6 +268,8 @@ Complete src/CompletionFunctionArguments.res 63:23 posCursor:[63:23] posNoWhite:[63:22] Found expr:[63:11->63:24] Pexp_apply ...[63:11->63:22] (...[63:23->63:24]) Completable: Cexpression CArgument Value[someOtherFn]($0) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "true", "kind": 4, @@ -226,6 +288,8 @@ Complete src/CompletionFunctionArguments.res 66:28 posCursor:[66:28] posNoWhite:[66:27] Found expr:[66:11->66:30] Pexp_apply ...[66:11->66:22] (...[66:23->66:24], ...[66:26->66:27]) Completable: Cexpression CArgument Value[someOtherFn]($2) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "true", "kind": 4, @@ -243,6 +307,8 @@ Completable: Cexpression CArgument Value[someOtherFn]($2) Complete src/CompletionFunctionArguments.res 69:30 posCursor:[69:30] posNoWhite:[69:29] Found expr:[69:11->69:31] Completable: Cexpression CArgument Value[someOtherFn]($2)=t +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "true", "kind": 4, @@ -256,12 +322,20 @@ Completable: Cexpression CArgument Value[someOtherFn]($2)=t "tags": [], "detail": "bool", "documentation": null + }, { + "label": "typeof", + "kind": 12, + "tags": [], + "detail": "'a => Core__Type.t", + "documentation": null }] Complete src/CompletionFunctionArguments.res 76:25 posCursor:[76:25] posNoWhite:[76:24] Found expr:[76:11->76:26] Pexp_apply ...[76:11->76:24] (...[76:25->76:26]) Completable: Cexpression CArgument Value[fnTakingTuple]($0) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "(_, _, _)", "kind": 12, @@ -276,6 +350,8 @@ Complete src/CompletionFunctionArguments.res 89:27 posCursor:[89:27] posNoWhite:[89:26] Found expr:[89:11->89:29] Pexp_apply ...[89:11->89:25] (...[89:26->89:28]) Completable: Cexpression CArgument Value[fnTakingRecord]($0)->recordBody +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "age", "kind": 5, @@ -304,6 +380,8 @@ posCursor:[109:29] posNoWhite:[109:28] Found expr:[107:6->109:29] posCursor:[109:29] posNoWhite:[109:28] Found expr:[108:6->109:29] posCursor:[109:29] posNoWhite:[109:28] Found expr:[109:9->109:29] Completable: Cpath Value[thisGetsBrokenLoc]->a <> +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "ReactEvent.Mouse.altKey", "kind": 12, @@ -320,6 +398,8 @@ posCursor:[111:27] posNoWhite:[111:26] Found expr:[107:6->111:27] posCursor:[111:27] posNoWhite:[111:26] Found expr:[108:6->111:27] posCursor:[111:27] posNoWhite:[111:26] Found expr:[111:9->111:27] Completable: Cpath Value[reassignedWorks]->a <> +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "ReactEvent.Mouse.altKey", "kind": 12, diff --git a/analysis/tests/src/expected/CompletionJsx.res.txt b/analysis/tests/src/expected/CompletionJsx.res.txt index aae7edac3..3d007907d 100644 --- a/analysis/tests/src/expected/CompletionJsx.res.txt +++ b/analysis/tests/src/expected/CompletionJsx.res.txt @@ -1,18 +1,20 @@ Complete src/CompletionJsx.res 3:17 posCursor:[3:17] posNoWhite:[3:16] Found expr:[3:3->3:17] Completable: Cpath Value[someString]->st +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ - "label": "Js.String2.startsWith", + "label": "String.startsWith", "kind": 12, "tags": [], - "detail": "(t, t) => bool", - "documentation": {"kind": "markdown", "value": "\nES2015: `startsWith(str, substr)` returns `true` if the `str` starts with\n`substr`, `false` otherwise.\n\nSee [`String.startsWith`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith)\non MDN.\n\n```res example\nJs.String2.startsWith(\"BuckleScript\", \"Buckle\") == true\nJs.String2.startsWith(\"BuckleScript\", \"\") == true\nJs.String2.startsWith(\"JavaScript\", \"Buckle\") == false\n```\n"} + "detail": "(string, string) => bool", + "documentation": null }, { - "label": "Js.String2.startsWithFrom", + "label": "String.startsWithFrom", "kind": 12, "tags": [], - "detail": "(t, t, int) => bool", - "documentation": {"kind": "markdown", "value": "\nES2015: `startsWithFrom(str, substr, n)` returns `true` if the `str` starts\nwith `substr` starting at position `n`, false otherwise. If `n` is negative,\nthe search starts at the beginning of `str`.\n\nSee [`String.startsWith`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith)\non MDN.\n\n```res example\nJs.String2.startsWithFrom(\"BuckleScript\", \"kle\", 3) == true\nJs.String2.startsWithFrom(\"BuckleScript\", \"\", 3) == true\nJs.String2.startsWithFrom(\"JavaScript\", \"Buckle\", 2) == false\n```\n"} + "detail": "(string, string, int) => bool", + "documentation": null }] Complete src/CompletionJsx.res 13:21 @@ -24,6 +26,8 @@ posCursor:[13:21] posNoWhite:[13:20] Found expr:[12:4->32:10] posCursor:[13:21] posNoWhite:[13:20] Found expr:[13:7->32:10] posCursor:[13:21] posNoWhite:[13:20] Found expr:[13:7->13:21] Completable: Cpath Value[someString]->st <> +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "React.string", "kind": 12, @@ -33,17 +37,17 @@ Completable: Cpath Value[someString]->st <> "sortText": "A", "insertTextFormat": 2 }, { - "label": "Js.String2.startsWith", + "label": "String.startsWith", "kind": 12, "tags": [], - "detail": "(t, t) => bool", - "documentation": {"kind": "markdown", "value": "\nES2015: `startsWith(str, substr)` returns `true` if the `str` starts with\n`substr`, `false` otherwise.\n\nSee [`String.startsWith`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith)\non MDN.\n\n```res example\nJs.String2.startsWith(\"BuckleScript\", \"Buckle\") == true\nJs.String2.startsWith(\"BuckleScript\", \"\") == true\nJs.String2.startsWith(\"JavaScript\", \"Buckle\") == false\n```\n"} + "detail": "(string, string) => bool", + "documentation": null }, { - "label": "Js.String2.startsWithFrom", + "label": "String.startsWithFrom", "kind": 12, "tags": [], - "detail": "(t, t, int) => bool", - "documentation": {"kind": "markdown", "value": "\nES2015: `startsWithFrom(str, substr, n)` returns `true` if the `str` starts\nwith `substr` starting at position `n`, false otherwise. If `n` is negative,\nthe search starts at the beginning of `str`.\n\nSee [`String.startsWith`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith)\non MDN.\n\n```res example\nJs.String2.startsWithFrom(\"BuckleScript\", \"kle\", 3) == true\nJs.String2.startsWithFrom(\"BuckleScript\", \"\", 3) == true\nJs.String2.startsWithFrom(\"JavaScript\", \"Buckle\", 2) == false\n```\n"} + "detail": "(string, string, int) => bool", + "documentation": null }] Complete src/CompletionJsx.res 18:24 @@ -65,6 +69,8 @@ Pexp_construct :::[18:10->32:4] [18:10->32:4] posCursor:[18:24] posNoWhite:[18:23] Found expr:[18:10->32:4] posCursor:[18:24] posNoWhite:[18:23] Found expr:[18:10->18:24] Completable: Cpath Value[someString]->st <> +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "React.string", "kind": 12, @@ -74,17 +80,17 @@ Completable: Cpath Value[someString]->st <> "sortText": "A", "insertTextFormat": 2 }, { - "label": "Js.String2.startsWith", + "label": "String.startsWith", "kind": 12, "tags": [], - "detail": "(t, t) => bool", - "documentation": {"kind": "markdown", "value": "\nES2015: `startsWith(str, substr)` returns `true` if the `str` starts with\n`substr`, `false` otherwise.\n\nSee [`String.startsWith`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith)\non MDN.\n\n```res example\nJs.String2.startsWith(\"BuckleScript\", \"Buckle\") == true\nJs.String2.startsWith(\"BuckleScript\", \"\") == true\nJs.String2.startsWith(\"JavaScript\", \"Buckle\") == false\n```\n"} + "detail": "(string, string) => bool", + "documentation": null }, { - "label": "Js.String2.startsWithFrom", + "label": "String.startsWithFrom", "kind": 12, "tags": [], - "detail": "(t, t, int) => bool", - "documentation": {"kind": "markdown", "value": "\nES2015: `startsWithFrom(str, substr, n)` returns `true` if the `str` starts\nwith `substr` starting at position `n`, false otherwise. If `n` is negative,\nthe search starts at the beginning of `str`.\n\nSee [`String.startsWith`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith)\non MDN.\n\n```res example\nJs.String2.startsWithFrom(\"BuckleScript\", \"kle\", 3) == true\nJs.String2.startsWithFrom(\"BuckleScript\", \"\", 3) == true\nJs.String2.startsWithFrom(\"JavaScript\", \"Buckle\", 2) == false\n```\n"} + "detail": "(string, string, int) => bool", + "documentation": null }] Complete src/CompletionJsx.res 20:27 @@ -106,6 +112,8 @@ Pexp_construct :::[20:10->32:4] [20:10->32:4] posCursor:[20:27] posNoWhite:[20:26] Found expr:[20:10->32:4] posCursor:[20:27] posNoWhite:[20:26] Found expr:[20:10->20:27] Completable: Cpath string->st <> +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "React.string", "kind": 12, @@ -115,17 +123,17 @@ Completable: Cpath string->st <> "sortText": "A", "insertTextFormat": 2 }, { - "label": "Js.String2.startsWith", + "label": "String.startsWith", "kind": 12, "tags": [], - "detail": "(t, t) => bool", - "documentation": {"kind": "markdown", "value": "\nES2015: `startsWith(str, substr)` returns `true` if the `str` starts with\n`substr`, `false` otherwise.\n\nSee [`String.startsWith`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith)\non MDN.\n\n```res example\nJs.String2.startsWith(\"BuckleScript\", \"Buckle\") == true\nJs.String2.startsWith(\"BuckleScript\", \"\") == true\nJs.String2.startsWith(\"JavaScript\", \"Buckle\") == false\n```\n"} + "detail": "(string, string) => bool", + "documentation": null }, { - "label": "Js.String2.startsWithFrom", + "label": "String.startsWithFrom", "kind": 12, "tags": [], - "detail": "(t, t, int) => bool", - "documentation": {"kind": "markdown", "value": "\nES2015: `startsWithFrom(str, substr, n)` returns `true` if the `str` starts\nwith `substr` starting at position `n`, false otherwise. If `n` is negative,\nthe search starts at the beginning of `str`.\n\nSee [`String.startsWith`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith)\non MDN.\n\n```res example\nJs.String2.startsWithFrom(\"BuckleScript\", \"kle\", 3) == true\nJs.String2.startsWithFrom(\"BuckleScript\", \"\", 3) == true\nJs.String2.startsWithFrom(\"JavaScript\", \"Buckle\", 2) == false\n```\n"} + "detail": "(string, string, int) => bool", + "documentation": null }] Complete src/CompletionJsx.res 22:44 @@ -147,6 +155,8 @@ Pexp_construct :::[22:10->32:4] [22:10->32:4] posCursor:[22:44] posNoWhite:[22:43] Found expr:[22:10->32:4] posCursor:[22:44] posNoWhite:[22:43] Found expr:[22:10->22:44] Completable: Cpath Value[Js, String2, trim](Nolabel)->st <> +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "React.string", "kind": 12, @@ -156,17 +166,17 @@ Completable: Cpath Value[Js, String2, trim](Nolabel)->st <> "sortText": "A", "insertTextFormat": 2 }, { - "label": "Js.String2.startsWith", + "label": "String.startsWith", "kind": 12, "tags": [], - "detail": "(t, t) => bool", - "documentation": {"kind": "markdown", "value": "\nES2015: `startsWith(str, substr)` returns `true` if the `str` starts with\n`substr`, `false` otherwise.\n\nSee [`String.startsWith`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith)\non MDN.\n\n```res example\nJs.String2.startsWith(\"BuckleScript\", \"Buckle\") == true\nJs.String2.startsWith(\"BuckleScript\", \"\") == true\nJs.String2.startsWith(\"JavaScript\", \"Buckle\") == false\n```\n"} + "detail": "(string, string) => bool", + "documentation": null }, { - "label": "Js.String2.startsWithFrom", + "label": "String.startsWithFrom", "kind": 12, "tags": [], - "detail": "(t, t, int) => bool", - "documentation": {"kind": "markdown", "value": "\nES2015: `startsWithFrom(str, substr, n)` returns `true` if the `str` starts\nwith `substr` starting at position `n`, false otherwise. If `n` is negative,\nthe search starts at the beginning of `str`.\n\nSee [`String.startsWith`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith)\non MDN.\n\n```res example\nJs.String2.startsWithFrom(\"BuckleScript\", \"kle\", 3) == true\nJs.String2.startsWithFrom(\"BuckleScript\", \"\", 3) == true\nJs.String2.startsWithFrom(\"JavaScript\", \"Buckle\", 2) == false\n```\n"} + "detail": "(string, string, int) => bool", + "documentation": null }] Complete src/CompletionJsx.res 24:19 @@ -188,6 +198,8 @@ Pexp_construct :::[24:10->32:4] [24:10->32:4] posCursor:[24:19] posNoWhite:[24:18] Found expr:[24:10->32:4] posCursor:[24:19] posNoWhite:[24:18] Found expr:[24:10->0:-1] Completable: Cpath Value[someInt]-> <> +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "React.int", "kind": 12, @@ -197,53 +209,89 @@ Completable: Cpath Value[someInt]-> <> "sortText": "A", "insertTextFormat": 2 }, { - "label": "Belt.Int.fromString", + "label": "Int.fromString", "kind": 12, "tags": [], - "detail": "string => option", - "documentation": {"kind": "markdown", "value": "\n Converts a given `string` to an `int`. Returns `Some(int)` when the input is a number, `None` otherwise.\n\n ```res example\n Js.log(Belt.Int.fromString(\"1\") === Some(1)) /* true */\n ```\n"} + "detail": "(~radix: int=?, 'a) => option", + "documentation": null }, { - "label": "Belt.Int.*", + "label": "Int.toStringWithRadix", "kind": 12, "tags": [], - "detail": "(int, int) => int", - "documentation": {"kind": "markdown", "value": "\n Multiplication of two `int` values. Same as the multiplication from `Pervasives`.\n\n ```res example\n open Belt.Int\n Js.log(2 * 2 === 4) /* true */\n ```\n"} + "detail": "(int, ~radix: int) => string", + "documentation": null }, { - "label": "Belt.Int./", + "label": "Int.toExponentialWithPrecision", "kind": 12, "tags": [], - "detail": "(int, int) => int", - "documentation": {"kind": "markdown", "value": "\n Division of two `int` values. Same as the division from `Pervasives`.\n\n ```res example\n open Belt.Int\n Js.log(4 / 2 === 2); /* true */\n ```\n"} + "detail": "(int, ~digits: int) => string", + "documentation": null + }, { + "label": "Int.toPrecisionWithPrecision", + "kind": 12, + "tags": [], + "detail": "(int, ~digits: int) => string", + "documentation": null + }, { + "label": "Int.toFixedWithPrecision", + "kind": 12, + "tags": [], + "detail": "(int, ~digits: int) => string", + "documentation": null }, { - "label": "Belt.Int.toString", + "label": "Int.toPrecision", "kind": 12, "tags": [], "detail": "int => string", - "documentation": {"kind": "markdown", "value": "\n Converts a given `int` to a `string`. Uses the JavaScript `String` constructor under the hood.\n\n ```res example\n Js.log(Belt.Int.toString(1) === \"1\") /* true */\n ```\n"} + "documentation": null }, { - "label": "Belt.Int.toFloat", + "label": "Int.toString", + "kind": 12, + "tags": [], + "detail": "int => string", + "documentation": null + }, { + "label": "Int.mod", + "kind": 12, + "tags": [], + "detail": "(int, int) => int", + "documentation": null + }, { + "label": "Int.toFloat", "kind": 12, "tags": [], "detail": "int => float", - "documentation": {"kind": "markdown", "value": "\n Converts a given `int` to a `float`.\n\n ```res example\n Js.log(Belt.Int.toFloat(1) === 1.0) /* true */\n ```\n"} + "documentation": null }, { - "label": "Belt.Int.fromFloat", + "label": "Int.fromFloat", "kind": 12, "tags": [], "detail": "float => int", - "documentation": {"kind": "markdown", "value": "\n Converts a given `float` to an `int`.\n\n ```res example\n Js.log(Belt.Int.fromFloat(1.0) === 1) /* true */\n ```\n"} + "documentation": null }, { - "label": "Belt.Int.-", + "label": "Int.toLocaleString", "kind": 12, "tags": [], - "detail": "(int, int) => int", - "documentation": {"kind": "markdown", "value": "\n Subtraction of two `int` values. Same as the subtraction from `Pervasives`.\n\n ```res example\n open Belt.Int\n Js.log(2 - 1 === 1) /* true */\n ```\n"} + "detail": "int => string", + "documentation": null }, { - "label": "Belt.Int.+", + "label": "Int.toFixed", "kind": 12, "tags": [], - "detail": "(int, int) => int", - "documentation": {"kind": "markdown", "value": "\n Addition of two `int` values. Same as the addition from `Pervasives`.\n\n ```res example\n open Belt.Int\n Js.log(2 + 2 === 4) /* true */\n ```\n"} + "detail": "int => string", + "documentation": null + }, { + "label": "Int.toExponential", + "kind": 12, + "tags": [], + "detail": "int => string", + "documentation": null + }, { + "label": "Int.Constants", + "kind": 9, + "tags": [], + "detail": "module", + "documentation": null }] Complete src/CompletionJsx.res 26:14 @@ -265,6 +313,8 @@ Pexp_construct :::[26:10->32:4] [26:10->32:4] posCursor:[26:14] posNoWhite:[26:13] Found expr:[26:10->32:4] posCursor:[26:14] posNoWhite:[26:13] Found expr:[26:10->0:-1] Completable: Cpath int-> <> +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "React.int", "kind": 12, @@ -274,53 +324,89 @@ Completable: Cpath int-> <> "sortText": "A", "insertTextFormat": 2 }, { - "label": "Belt.Int.fromString", + "label": "Int.fromString", "kind": 12, "tags": [], - "detail": "string => option", - "documentation": {"kind": "markdown", "value": "\n Converts a given `string` to an `int`. Returns `Some(int)` when the input is a number, `None` otherwise.\n\n ```res example\n Js.log(Belt.Int.fromString(\"1\") === Some(1)) /* true */\n ```\n"} + "detail": "(~radix: int=?, 'a) => option", + "documentation": null }, { - "label": "Belt.Int.*", + "label": "Int.toStringWithRadix", "kind": 12, "tags": [], - "detail": "(int, int) => int", - "documentation": {"kind": "markdown", "value": "\n Multiplication of two `int` values. Same as the multiplication from `Pervasives`.\n\n ```res example\n open Belt.Int\n Js.log(2 * 2 === 4) /* true */\n ```\n"} + "detail": "(int, ~radix: int) => string", + "documentation": null }, { - "label": "Belt.Int./", + "label": "Int.toExponentialWithPrecision", "kind": 12, "tags": [], - "detail": "(int, int) => int", - "documentation": {"kind": "markdown", "value": "\n Division of two `int` values. Same as the division from `Pervasives`.\n\n ```res example\n open Belt.Int\n Js.log(4 / 2 === 2); /* true */\n ```\n"} + "detail": "(int, ~digits: int) => string", + "documentation": null + }, { + "label": "Int.toPrecisionWithPrecision", + "kind": 12, + "tags": [], + "detail": "(int, ~digits: int) => string", + "documentation": null }, { - "label": "Belt.Int.toString", + "label": "Int.toFixedWithPrecision", + "kind": 12, + "tags": [], + "detail": "(int, ~digits: int) => string", + "documentation": null + }, { + "label": "Int.toPrecision", "kind": 12, "tags": [], "detail": "int => string", - "documentation": {"kind": "markdown", "value": "\n Converts a given `int` to a `string`. Uses the JavaScript `String` constructor under the hood.\n\n ```res example\n Js.log(Belt.Int.toString(1) === \"1\") /* true */\n ```\n"} + "documentation": null + }, { + "label": "Int.toString", + "kind": 12, + "tags": [], + "detail": "int => string", + "documentation": null + }, { + "label": "Int.mod", + "kind": 12, + "tags": [], + "detail": "(int, int) => int", + "documentation": null }, { - "label": "Belt.Int.toFloat", + "label": "Int.toFloat", "kind": 12, "tags": [], "detail": "int => float", - "documentation": {"kind": "markdown", "value": "\n Converts a given `int` to a `float`.\n\n ```res example\n Js.log(Belt.Int.toFloat(1) === 1.0) /* true */\n ```\n"} + "documentation": null }, { - "label": "Belt.Int.fromFloat", + "label": "Int.fromFloat", "kind": 12, "tags": [], "detail": "float => int", - "documentation": {"kind": "markdown", "value": "\n Converts a given `float` to an `int`.\n\n ```res example\n Js.log(Belt.Int.fromFloat(1.0) === 1) /* true */\n ```\n"} + "documentation": null }, { - "label": "Belt.Int.-", + "label": "Int.toLocaleString", "kind": 12, "tags": [], - "detail": "(int, int) => int", - "documentation": {"kind": "markdown", "value": "\n Subtraction of two `int` values. Same as the subtraction from `Pervasives`.\n\n ```res example\n open Belt.Int\n Js.log(2 - 1 === 1) /* true */\n ```\n"} + "detail": "int => string", + "documentation": null }, { - "label": "Belt.Int.+", + "label": "Int.toFixed", "kind": 12, "tags": [], - "detail": "(int, int) => int", - "documentation": {"kind": "markdown", "value": "\n Addition of two `int` values. Same as the addition from `Pervasives`.\n\n ```res example\n open Belt.Int\n Js.log(2 + 2 === 4) /* true */\n ```\n"} + "detail": "int => string", + "documentation": null + }, { + "label": "Int.toExponential", + "kind": 12, + "tags": [], + "detail": "int => string", + "documentation": null + }, { + "label": "Int.Constants", + "kind": 9, + "tags": [], + "detail": "module", + "documentation": null }] Complete src/CompletionJsx.res 28:20 @@ -342,6 +428,8 @@ Pexp_construct :::[28:10->32:4] [28:10->32:4] posCursor:[28:20] posNoWhite:[28:19] Found expr:[28:10->32:4] posCursor:[28:20] posNoWhite:[28:19] Found expr:[28:10->28:20] Completable: Cpath Value[someArr]->a <> +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "React.array", "kind": 12, @@ -350,12 +438,6 @@ Completable: Cpath Value[someArr]->a <> "documentation": {"kind": "markdown", "value": "Turns `array` into `React.element` so it can be used inside of JSX."}, "sortText": "A", "insertTextFormat": 2 - }, { - "label": "Js.Array2.append", - "kind": 12, - "tags": [1], - "detail": "(t<'a>, 'a) => t<'a>", - "documentation": {"kind": "markdown", "value": "Deprecated: `append` is not type-safe. Use `concat` instead.\n\n"} }] Complete src/CompletionJsx.res 30:12 @@ -378,6 +460,8 @@ posCursor:[30:12] posNoWhite:[30:11] Found expr:[30:10->32:4] posCursor:[30:12] posNoWhite:[30:11] Found expr:[30:10->30:12] JSX 30:12] > _children:None Completable: ChtmlElement ", "kind": 4, @@ -405,6 +489,8 @@ Complete src/CompletionJsx.res 45:23 posCursor:[45:23] posNoWhite:[45:22] Found expr:[45:4->45:23] JSX 45:21] n[45:22->45:23]=...[45:22->45:23]> _children:None Completable: Cjsx([CompWithoutJsxPpx], n, [n]) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "name", "kind": 4, diff --git a/analysis/tests/src/expected/CompletionJsxProps.res.txt b/analysis/tests/src/expected/CompletionJsxProps.res.txt index 45885f535..64b2e75ac 100644 --- a/analysis/tests/src/expected/CompletionJsxProps.res.txt +++ b/analysis/tests/src/expected/CompletionJsxProps.res.txt @@ -2,6 +2,8 @@ Complete src/CompletionJsxProps.res 0:47 posCursor:[0:47] posNoWhite:[0:46] Found expr:[0:12->0:47] JSX 0:43] on[0:44->0:46]=...__ghost__[0:-1->0:-1]> _children:None Completable: Cexpression CJsxPropValue [CompletionSupport, TestComponent] on +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "true", "kind": 4, @@ -20,11 +22,20 @@ Complete src/CompletionJsxProps.res 3:48 posCursor:[3:48] posNoWhite:[3:47] Found expr:[3:12->3:48] JSX 3:43] on[3:44->3:46]=...[3:47->3:48]> _children:None Completable: Cexpression CJsxPropValue [CompletionSupport, TestComponent] on=t +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "true", "kind": 4, "tags": [], "detail": "bool", + "documentation": null, + "sortText": "A true" + }, { + "label": "typeof", + "kind": 12, + "tags": [], + "detail": "'a => Core__Type.t", "documentation": null }] @@ -32,6 +43,8 @@ Complete src/CompletionJsxProps.res 6:50 posCursor:[6:50] posNoWhite:[6:49] Found expr:[6:12->6:50] JSX 6:43] test[6:44->6:48]=...[6:49->6:50]> _children:None Completable: Cexpression CJsxPropValue [CompletionSupport, TestComponent] test=T +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "Two", "kind": 4, @@ -50,6 +63,18 @@ Completable: Cexpression CJsxPropValue [CompletionSupport, TestComponent] test=T "sortText": "A Three(_)", "insertText": "{Three(${1:_})}", "insertTextFormat": 2 + }, { + "label": "TypedArray", + "kind": 9, + "tags": [], + "detail": "module", + "documentation": null + }, { + "label": "Type", + "kind": 9, + "tags": [], + "detail": "module", + "documentation": null }, { "label": "TableclothMap", "kind": 9, @@ -68,6 +93,8 @@ Complete src/CompletionJsxProps.res 9:52 posCursor:[9:52] posNoWhite:[9:51] Found expr:[9:12->9:52] JSX 9:43] polyArg[9:44->9:51]=...__ghost__[0:-1->0:-1]> _children:None Completable: Cexpression CJsxPropValue [CompletionSupport, TestComponent] polyArg +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "#one", "kind": 4, @@ -106,6 +133,8 @@ Complete src/CompletionJsxProps.res 12:54 posCursor:[12:54] posNoWhite:[12:53] Found expr:[12:12->12:54] JSX 12:43] polyArg[12:44->12:51]=...[12:52->12:54]> _children:None Completable: Cexpression CJsxPropValue [CompletionSupport, TestComponent] polyArg=#t +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "#three(_, _)", "kind": 4, @@ -136,6 +165,8 @@ Complete src/CompletionJsxProps.res 15:22 posCursor:[15:22] posNoWhite:[15:21] Found expr:[15:12->15:25] JSX 15:15] muted[15:16->15:21]=...__ghost__[0:-1->0:-1]> _children:15:23 Completable: Cexpression CJsxPropValue [div] muted +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "true", "kind": 4, @@ -154,6 +185,8 @@ Complete src/CompletionJsxProps.res 18:29 posCursor:[18:29] posNoWhite:[18:28] Found expr:[18:12->18:32] JSX 18:15] onMouseEnter[18:16->18:28]=...__ghost__[0:-1->0:-1]> _children:18:30 Completable: Cexpression CJsxPropValue [div] onMouseEnter +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "event => {}", "kind": 12, @@ -169,6 +202,8 @@ Complete src/CompletionJsxProps.res 22:52 posCursor:[22:52] posNoWhite:[22:51] Found expr:[22:12->22:52] JSX 22:43] testArr[22:44->22:51]=...__ghost__[0:-1->0:-1]> _children:None Completable: Cexpression CJsxPropValue [CompletionSupport, TestComponent] testArr +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "[]", "kind": 12, @@ -184,6 +219,8 @@ Complete src/CompletionJsxProps.res 26:54 posCursor:[26:54] posNoWhite:[26:53] Found expr:[26:12->26:56] JSX 26:43] testArr[26:44->26:51]=...[26:53->26:55]> _children:None Completable: Cexpression CJsxPropValue [CompletionSupport, TestComponent] testArr->array +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "One", "kind": 4, diff --git a/analysis/tests/src/expected/CompletionPattern.res.txt b/analysis/tests/src/expected/CompletionPattern.res.txt index e935e98ca..4c057d11a 100644 --- a/analysis/tests/src/expected/CompletionPattern.res.txt +++ b/analysis/tests/src/expected/CompletionPattern.res.txt @@ -5,6 +5,8 @@ posCursor:[7:13] posNoWhite:[7:12] Found expr:[7:3->7:13] Complete src/CompletionPattern.res 10:15 XXX Not found! Completable: Cpattern Value[v] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "(_, _, _)", "kind": 12, @@ -20,6 +22,8 @@ posCursor:[13:18] posNoWhite:[13:17] Found expr:[13:3->13:24] posCursor:[13:18] posNoWhite:[13:17] Found pattern:[13:16->13:22] posCursor:[13:18] posNoWhite:[13:17] Found pattern:[13:17->13:18] Completable: Cpattern Value[v]=t->tuple($0) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "true", "kind": 4, @@ -34,6 +38,8 @@ posCursor:[16:25] posNoWhite:[16:24] Found pattern:[16:16->16:30] posCursor:[16:25] posNoWhite:[16:24] Found pattern:[16:23->16:29] posCursor:[16:25] posNoWhite:[16:24] Found pattern:[16:24->16:25] Completable: Cpattern Value[v]=f->tuple($2), tuple($0) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "false", "kind": 4, @@ -45,6 +51,8 @@ Completable: Cpattern Value[v]=f->tuple($2), tuple($0) Complete src/CompletionPattern.res 21:15 XXX Not found! Completable: Cpattern Value[x] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "true", "kind": 4, @@ -63,6 +71,8 @@ Complete src/CompletionPattern.res 24:17 posCursor:[24:17] posNoWhite:[24:16] Found expr:[24:3->24:17] posCursor:[24:17] posNoWhite:[24:16] Found pattern:[24:16->24:17] Completable: Cpattern Value[x]=t +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "true", "kind": 4, @@ -74,6 +84,8 @@ Completable: Cpattern Value[x]=t Complete src/CompletionPattern.res 46:15 XXX Not found! Completable: Cpattern Value[f] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "{}", "kind": 22, @@ -89,6 +101,8 @@ Complete src/CompletionPattern.res 49:17 posCursor:[49:17] posNoWhite:[49:16] Found expr:[49:3->49:19] posCursor:[49:17] posNoWhite:[49:16] Found pattern:[49:16->49:18] Completable: Cpattern Value[f]->recordBody +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "first", "kind": 5, @@ -119,6 +133,8 @@ Complete src/CompletionPattern.res 52:24 posCursor:[52:24] posNoWhite:[52:22] Found expr:[52:3->52:36] posCursor:[52:24] posNoWhite:[52:22] Found pattern:[52:16->52:35] Completable: Cpattern Value[f]->recordBody +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "optThird", "kind": 5, @@ -138,6 +154,8 @@ posCursor:[55:19] posNoWhite:[55:18] Found expr:[55:3->55:21] posCursor:[55:19] posNoWhite:[55:18] Found pattern:[55:16->55:20] posCursor:[55:19] posNoWhite:[55:18] Found pattern:[55:17->55:19] Completable: Cpattern Value[f]=fi->recordBody +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "first", "kind": 5, @@ -152,6 +170,8 @@ posCursor:[58:19] posNoWhite:[58:18] Found pattern:[58:16->58:24] posCursor:[58:19] posNoWhite:[58:18] Found pattern:[58:17->58:20] posCursor:[58:19] posNoWhite:[58:18] Found pattern:[58:18->58:19] Completable: Cpattern Value[z]=o->tuple($0), recordBody +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "optThird", "kind": 5, @@ -164,6 +184,8 @@ Complete src/CompletionPattern.res 61:22 posCursor:[61:22] posNoWhite:[61:21] Found expr:[61:3->74:1] posCursor:[61:22] posNoWhite:[61:21] Found pattern:[61:16->61:25] Completable: Cpattern Value[f]->recordField(nest) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "{}", "kind": 22, @@ -180,6 +202,8 @@ posCursor:[64:24] posNoWhite:[64:23] Found expr:[64:3->64:27] posCursor:[64:24] posNoWhite:[64:23] Found pattern:[64:16->64:26] posCursor:[64:24] posNoWhite:[64:23] Found pattern:[64:23->64:25] Completable: Cpattern Value[f]->recordField(nest), recordBody +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "nested", "kind": 5, @@ -195,6 +219,8 @@ posCursor:[70:22] posNoWhite:[70:21] Found expr:[70:5->72:13] posCursor:[70:22] posNoWhite:[70:21] Found expr:[70:5->70:24] posCursor:[70:22] posNoWhite:[70:21] Found pattern:[70:21->70:23] Completable: Cpattern Value[nest]->recordBody +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "nested", "kind": 5, @@ -206,6 +232,8 @@ Completable: Cpattern Value[nest]->recordBody Complete src/CompletionPattern.res 76:8 posCursor:[76:8] posNoWhite:[76:7] Found pattern:[76:7->76:9] Completable: Cpattern Value[f]->recordBody +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "first", "kind": 5, @@ -237,6 +265,8 @@ posCursor:[79:16] posNoWhite:[79:15] Found pattern:[79:7->79:18] posCursor:[79:16] posNoWhite:[79:15] Found pattern:[79:14->79:17] posCursor:[79:16] posNoWhite:[79:15] Found pattern:[79:15->79:16] Completable: Cpattern Value[f]=n->recordField(nest), recordBody +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "nested", "kind": 5, @@ -252,6 +282,8 @@ Ppat_construct Two:[87:16->87:19] posCursor:[87:20] posNoWhite:[87:19] Found pattern:[87:19->87:21] Ppat_construct ():[87:19->87:21] Completable: Cpattern Value[z]->variantPayload::Two($0) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "true", "kind": 4, @@ -272,6 +304,8 @@ posCursor:[90:21] posNoWhite:[90:20] Found pattern:[90:16->90:22] Ppat_construct Two:[90:16->90:19] posCursor:[90:21] posNoWhite:[90:20] Found pattern:[90:20->90:21] Completable: Cpattern Value[z]=t->variantPayload::Two($0) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "true", "kind": 4, @@ -286,6 +320,8 @@ posCursor:[93:23] posNoWhite:[93:22] Found pattern:[93:16->93:25] Ppat_construct Three:[93:16->93:21] posCursor:[93:23] posNoWhite:[93:22] Found pattern:[93:22->93:24] Completable: Cpattern Value[z]->variantPayload::Three($0), recordBody +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "first", "kind": 5, @@ -319,6 +355,8 @@ Ppat_construct Three:[96:16->96:21] posCursor:[96:27] posNoWhite:[96:26] Found pattern:[96:21->96:29] posCursor:[96:27] posNoWhite:[96:26] Found pattern:[96:26->96:27] Completable: Cpattern Value[z]=t->variantPayload::Three($1) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "true", "kind": 4, @@ -333,6 +371,8 @@ posCursor:[103:21] posNoWhite:[103:20] Found pattern:[103:16->103:22] posCursor:[103:21] posNoWhite:[103:20] Found pattern:[103:20->103:21] Ppat_construct ():[103:20->103:21] Completable: Cpattern Value[b]->polyvariantPayload::two($0) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "true", "kind": 4, @@ -352,6 +392,8 @@ posCursor:[106:22] posNoWhite:[106:21] Found expr:[106:3->106:24] posCursor:[106:22] posNoWhite:[106:21] Found pattern:[106:16->106:23] posCursor:[106:22] posNoWhite:[106:21] Found pattern:[106:21->106:22] Completable: Cpattern Value[b]=t->polyvariantPayload::two($0) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "true", "kind": 4, @@ -365,6 +407,8 @@ posCursor:[109:24] posNoWhite:[109:23] Found expr:[109:3->109:27] posCursor:[109:24] posNoWhite:[109:23] Found pattern:[109:16->109:26] posCursor:[109:24] posNoWhite:[109:23] Found pattern:[109:23->109:25] Completable: Cpattern Value[b]->polyvariantPayload::three($0), recordBody +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "first", "kind": 5, @@ -397,6 +441,8 @@ posCursor:[112:28] posNoWhite:[112:27] Found pattern:[112:16->112:29] posCursor:[112:28] posNoWhite:[112:27] Found pattern:[112:22->112:29] posCursor:[112:28] posNoWhite:[112:27] Found pattern:[112:27->112:28] Completable: Cpattern Value[b]=t->polyvariantPayload::three($1) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "true", "kind": 4, @@ -408,6 +454,8 @@ Completable: Cpattern Value[b]=t->polyvariantPayload::three($1) Complete src/CompletionPattern.res 118:15 XXX Not found! Completable: Cpattern Value[c] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "[]", "kind": 22, @@ -423,6 +471,8 @@ Complete src/CompletionPattern.res 121:17 posCursor:[121:17] posNoWhite:[121:16] Found expr:[121:3->121:20] posCursor:[121:17] posNoWhite:[121:16] Found pattern:[121:16->121:18] Completable: Cpattern Value[c]->array +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "true", "kind": 4, @@ -444,6 +494,8 @@ Ppat_construct Some:[127:16->127:20] posCursor:[127:21] posNoWhite:[127:20] Found pattern:[127:20->127:22] Ppat_construct ():[127:20->127:22] Completable: Cpattern Value[o]->variantPayload::Some($0) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "true", "kind": 4, @@ -463,6 +515,8 @@ posCursor:[134:23] posNoWhite:[134:22] Found expr:[134:3->134:26] posCursor:[134:23] posNoWhite:[134:22] Found pattern:[134:16->134:25] Ppat_construct Test:[134:16->134:20] Completable: Cpattern Value[p]->variantPayload::Test($1) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "true", "kind": 4, @@ -483,6 +537,8 @@ posCursor:[137:29] posNoWhite:[137:28] Found pattern:[137:16->137:31] Ppat_construct Test:[137:16->137:20] posCursor:[137:29] posNoWhite:[137:28] Found pattern:[137:20->137:32] Completable: Cpattern Value[p]->variantPayload::Test($2) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "None", "kind": 4, @@ -517,6 +573,8 @@ posCursor:[140:23] posNoWhite:[140:22] Found pattern:[140:16->140:31] Ppat_construct Test:[140:16->140:20] posCursor:[140:23] posNoWhite:[140:22] Found pattern:[140:20->140:32] Completable: Cpattern Value[p]->variantPayload::Test($1) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "true", "kind": 4, @@ -537,6 +595,8 @@ posCursor:[143:35] posNoWhite:[143:34] Found pattern:[143:16->143:37] Ppat_construct Test:[143:16->143:20] posCursor:[143:35] posNoWhite:[143:34] Found pattern:[143:20->143:38] Completable: Cpattern Value[p]->variantPayload::Test($3) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "[]", "kind": 22, @@ -552,6 +612,8 @@ Complete src/CompletionPattern.res 150:24 posCursor:[150:24] posNoWhite:[150:23] Found expr:[150:3->150:27] posCursor:[150:24] posNoWhite:[150:23] Found pattern:[150:16->150:26] Completable: Cpattern Value[v]->polyvariantPayload::test($1) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "true", "kind": 4, @@ -571,6 +633,8 @@ posCursor:[153:30] posNoWhite:[153:29] Found expr:[153:3->153:33] posCursor:[153:30] posNoWhite:[153:29] Found pattern:[153:16->153:32] posCursor:[153:30] posNoWhite:[153:29] Found pattern:[153:21->153:32] Completable: Cpattern Value[v]->polyvariantPayload::test($2) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "None", "kind": 4, @@ -604,6 +668,8 @@ posCursor:[156:24] posNoWhite:[156:23] Found expr:[156:3->156:33] posCursor:[156:24] posNoWhite:[156:23] Found pattern:[156:16->156:32] posCursor:[156:24] posNoWhite:[156:23] Found pattern:[156:21->156:32] Completable: Cpattern Value[v]->polyvariantPayload::test($1) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "true", "kind": 4, @@ -623,6 +689,8 @@ posCursor:[159:36] posNoWhite:[159:35] Found expr:[159:3->159:39] posCursor:[159:36] posNoWhite:[159:35] Found pattern:[159:16->159:38] posCursor:[159:36] posNoWhite:[159:35] Found pattern:[159:21->159:38] Completable: Cpattern Value[v]->polyvariantPayload::test($3) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "[]", "kind": 22, @@ -639,6 +707,8 @@ posCursor:[164:17] posNoWhite:[164:16] Found expr:[164:3->164:20] posCursor:[164:17] posNoWhite:[164:16] Found pattern:[164:16->164:18] Ppat_construct ():[164:16->164:18] Completable: Cpattern Value[s]->tuple($0) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "true", "kind": 4, @@ -657,6 +727,8 @@ Complete src/CompletionPattern.res 167:23 posCursor:[167:23] posNoWhite:[167:21] Found expr:[167:3->167:26] posCursor:[167:23] posNoWhite:[167:21] Found pattern:[167:16->167:24] Completable: Cpattern Value[s]->tuple($1) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "None", "kind": 4, @@ -689,6 +761,8 @@ Complete src/CompletionPattern.res 170:22 posCursor:[170:22] posNoWhite:[170:21] Found expr:[170:3->170:30] posCursor:[170:22] posNoWhite:[170:21] Found pattern:[170:16->170:28] Completable: Cpattern Value[s]->tuple($1) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "None", "kind": 4, @@ -720,6 +794,8 @@ Completable: Cpattern Value[s]->tuple($1) Complete src/CompletionPattern.res 173:35 XXX Not found! Completable: Cpattern Value[s] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "(_, _, _)", "kind": 12, @@ -734,6 +810,8 @@ Complete src/CompletionPattern.res 176:41 posCursor:[176:41] posNoWhite:[176:40] Found expr:[176:3->176:50] posCursor:[176:41] posNoWhite:[176:40] Found pattern:[176:35->176:47] Completable: Cpattern Value[s]->tuple($1) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "None", "kind": 4, @@ -765,6 +843,8 @@ Completable: Cpattern Value[s]->tuple($1) Complete src/CompletionPattern.res 179:21 XXX Not found! Completable: Cpattern Value[z] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "One", "kind": 4, @@ -797,6 +877,8 @@ posCursor:[182:32] posNoWhite:[182:31] Found pattern:[182:16->182:34] posCursor:[182:32] posNoWhite:[182:31] Found pattern:[182:22->182:34] Ppat_construct Two:[182:22->182:25] Completable: Cpattern Value[z]->variantPayload::Two($0) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "true", "kind": 4, @@ -818,6 +900,8 @@ posCursor:[185:48] posNoWhite:[185:47] Found pattern:[185:22->185:50] Ppat_construct Three:[185:22->185:27] posCursor:[185:48] posNoWhite:[185:47] Found pattern:[185:27->185:53] Completable: Cpattern Value[z]->variantPayload::Three($1) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "true", "kind": 4, @@ -837,6 +921,8 @@ posCursor:[188:34] posNoWhite:[188:33] Found expr:[188:3->188:39] posCursor:[188:34] posNoWhite:[188:33] Found pattern:[188:16->188:36] posCursor:[188:34] posNoWhite:[188:33] Found pattern:[188:23->188:36] Completable: Cpattern Value[b]->polyvariantPayload::two($0) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "true", "kind": 4, @@ -857,6 +943,8 @@ posCursor:[191:50] posNoWhite:[191:49] Found pattern:[191:16->191:52] posCursor:[191:50] posNoWhite:[191:49] Found pattern:[191:23->191:52] posCursor:[191:50] posNoWhite:[191:49] Found pattern:[191:29->191:52] Completable: Cpattern Value[b]->polyvariantPayload::three($1) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "true", "kind": 4, @@ -876,6 +964,8 @@ posCursor:[194:24] posNoWhite:[194:23] Found expr:[194:3->194:31] posCursor:[194:24] posNoWhite:[194:23] Found pattern:[194:16->194:29] posCursor:[194:24] posNoWhite:[194:23] Found pattern:[194:23->194:24] Completable: Cpattern Value[s]->tuple($1) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "None", "kind": 4, @@ -908,13 +998,17 @@ Complete src/CompletionPattern.res 201:25 posCursor:[201:25] posNoWhite:[201:24] Found expr:[201:3->204:25] posCursor:[201:25] posNoWhite:[201:24] Found pattern:[201:17->201:28] Completable: Cpattern Value[ff]->recordField(someFn) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [] Complete src/CompletionPattern.res 206:16 XXX Not found! Completable: Cpattern Value[xn] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ - "label": "Js.Exn.Error(error)", + "label": "Exn.Error(error)", "kind": 4, "tags": [], "detail": "Catches errors from JavaScript errors.", diff --git a/analysis/tests/src/expected/CompletionPipeChain.res.txt b/analysis/tests/src/expected/CompletionPipeChain.res.txt index c149770fe..8c584ba11 100644 --- a/analysis/tests/src/expected/CompletionPipeChain.res.txt +++ b/analysis/tests/src/expected/CompletionPipeChain.res.txt @@ -1,6 +1,8 @@ Complete src/CompletionPipeChain.res 27:16 posCursor:[27:16] posNoWhite:[27:15] Found expr:[27:11->0:-1] Completable: Cpath Value[int]-> +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "Integer.toInt", "kind": 12, @@ -30,6 +32,8 @@ Completable: Cpath Value[int]-> Complete src/CompletionPipeChain.res 30:23 posCursor:[30:23] posNoWhite:[30:22] Found expr:[30:11->0:-1] Completable: Cpath Value[toFlt](Nolabel)-> +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "SuperFloat.fromInteger", "kind": 12, @@ -47,6 +51,8 @@ Completable: Cpath Value[toFlt](Nolabel)-> Complete src/CompletionPipeChain.res 33:38 posCursor:[33:38] posNoWhite:[33:37] Found expr:[33:11->0:-1] Completable: Cpath Value[Integer, increment](Nolabel, Nolabel)-> +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "Integer.toInt", "kind": 12, @@ -76,6 +82,8 @@ Completable: Cpath Value[Integer, increment](Nolabel, Nolabel)-> Complete src/CompletionPipeChain.res 36:38 posCursor:[36:38] posNoWhite:[36:37] Found expr:[36:11->0:-1] Completable: Cpath Value[Integer, increment](Nolabel, Nolabel)-> +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "Integer.toInt", "kind": 12, @@ -105,6 +113,8 @@ Completable: Cpath Value[Integer, increment](Nolabel, Nolabel)-> Complete src/CompletionPipeChain.res 39:47 posCursor:[39:47] posNoWhite:[39:46] Found expr:[39:11->0:-1] Completable: Cpath Value[Integer, decrement](Nolabel, Nolabel)-> +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "Integer.toInt", "kind": 12, @@ -134,6 +144,8 @@ Completable: Cpath Value[Integer, decrement](Nolabel, Nolabel)-> Complete src/CompletionPipeChain.res 42:69 posCursor:[42:69] posNoWhite:[42:68] Found expr:[42:11->0:-1] Completable: Cpath Value[Integer, decrement](Nolabel, Nolabel)-> +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "Integer.toInt", "kind": 12, @@ -163,6 +175,8 @@ Completable: Cpath Value[Integer, decrement](Nolabel, Nolabel)-> Complete src/CompletionPipeChain.res 45:62 posCursor:[45:62] posNoWhite:[45:61] Found expr:[45:11->0:-1] Completable: Cpath Value[SuperFloat, fromInteger](Nolabel)-> +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "SuperFloat.fromInteger", "kind": 12, @@ -180,6 +194,8 @@ Completable: Cpath Value[SuperFloat, fromInteger](Nolabel)-> Complete src/CompletionPipeChain.res 48:63 posCursor:[48:63] posNoWhite:[48:62] Found expr:[48:11->48:63] Completable: Cpath Value[SuperFloat, fromInteger](Nolabel)->t +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "SuperFloat.toInteger", "kind": 12, @@ -191,6 +207,8 @@ Completable: Cpath Value[SuperFloat, fromInteger](Nolabel)->t Complete src/CompletionPipeChain.res 51:82 posCursor:[51:82] posNoWhite:[51:81] Found expr:[51:11->0:-1] Completable: Cpath Value[CompletionSupport, Test, make](Nolabel)-> +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "CompletionSupport.Test.add", "kind": 12, @@ -214,6 +232,8 @@ Completable: Cpath Value[CompletionSupport, Test, make](Nolabel)-> Complete src/CompletionPipeChain.res 54:78 posCursor:[54:78] posNoWhite:[54:77] Found expr:[54:11->0:-1] Completable: Cpath Value[CompletionSupport, Test, addSelf](Nolabel, Nolabel)-> +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "CompletionSupport.Test.add", "kind": 12, @@ -237,28 +257,82 @@ Completable: Cpath Value[CompletionSupport, Test, addSelf](Nolabel, Nolabel)-> Complete src/CompletionPipeChain.res 58:5 posCursor:[58:5] posNoWhite:[58:4] Found expr:[57:8->0:-1] Completable: Cpath Value[Js, Array2, forEach](Nolabel, Nolabel)-> +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [] Complete src/CompletionPipeChain.res 62:6 posCursor:[62:6] posNoWhite:[62:5] Found expr:[61:8->62:6] Completable: Cpath Value[Belt, Array, reduce](Nolabel, Nolabel, Nolabel)->t +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ - "label": "Belt.Int.toString", + "label": "Int.toStringWithRadix", + "kind": 12, + "tags": [], + "detail": "(int, ~radix: int) => string", + "documentation": null + }, { + "label": "Int.toExponentialWithPrecision", + "kind": 12, + "tags": [], + "detail": "(int, ~digits: int) => string", + "documentation": null + }, { + "label": "Int.toPrecisionWithPrecision", + "kind": 12, + "tags": [], + "detail": "(int, ~digits: int) => string", + "documentation": null + }, { + "label": "Int.toFixedWithPrecision", + "kind": 12, + "tags": [], + "detail": "(int, ~digits: int) => string", + "documentation": null + }, { + "label": "Int.toPrecision", + "kind": 12, + "tags": [], + "detail": "int => string", + "documentation": null + }, { + "label": "Int.toString", "kind": 12, "tags": [], "detail": "int => string", - "documentation": {"kind": "markdown", "value": "\n Converts a given `int` to a `string`. Uses the JavaScript `String` constructor under the hood.\n\n ```res example\n Js.log(Belt.Int.toString(1) === \"1\") /* true */\n ```\n"} + "documentation": null }, { - "label": "Belt.Int.toFloat", + "label": "Int.toFloat", "kind": 12, "tags": [], "detail": "int => float", - "documentation": {"kind": "markdown", "value": "\n Converts a given `int` to a `float`.\n\n ```res example\n Js.log(Belt.Int.toFloat(1) === 1.0) /* true */\n ```\n"} + "documentation": null + }, { + "label": "Int.toLocaleString", + "kind": 12, + "tags": [], + "detail": "int => string", + "documentation": null + }, { + "label": "Int.toFixed", + "kind": 12, + "tags": [], + "detail": "int => string", + "documentation": null + }, { + "label": "Int.toExponential", + "kind": 12, + "tags": [], + "detail": "int => string", + "documentation": null }] Complete src/CompletionPipeChain.res 70:12 posCursor:[70:12] posNoWhite:[70:11] Found expr:[70:3->0:-1] Completable: Cpath Value[aliased]-> +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "CompletionSupport.Test.add", "kind": 12, @@ -282,6 +356,8 @@ Completable: Cpath Value[aliased]-> Complete src/CompletionPipeChain.res 73:15 posCursor:[73:15] posNoWhite:[73:14] Found expr:[73:3->0:-1] Completable: Cpath Value[notAliased]-> +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "CompletionSupport.Test.add", "kind": 12, diff --git a/analysis/tests/src/expected/CompletionPipeSubmodules.res.txt b/analysis/tests/src/expected/CompletionPipeSubmodules.res.txt index a699eb8e6..5b89e5fd9 100644 --- a/analysis/tests/src/expected/CompletionPipeSubmodules.res.txt +++ b/analysis/tests/src/expected/CompletionPipeSubmodules.res.txt @@ -1,6 +1,8 @@ Complete src/CompletionPipeSubmodules.res 12:20 posCursor:[12:20] posNoWhite:[12:19] Found expr:[12:11->20:8] Completable: Cpath Value[A, B1, xx]-> +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "A.B1.xx", "kind": 12, @@ -18,6 +20,8 @@ Completable: Cpath Value[A, B1, xx]-> Complete src/CompletionPipeSubmodules.res 16:18 posCursor:[16:18] posNoWhite:[16:17] Found expr:[16:11->20:8] Completable: Cpath Value[A, x].v-> +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "A.B1.xx", "kind": 12, @@ -35,6 +39,8 @@ Completable: Cpath Value[A, x].v-> Complete src/CompletionPipeSubmodules.res 38:20 posCursor:[38:20] posNoWhite:[38:19] Found expr:[38:11->0:-1] Completable: Cpath Value[E, e].v.v-> +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "C.C", "kind": 4, @@ -46,6 +52,8 @@ Completable: Cpath Value[E, e].v.v-> Complete src/CompletionPipeSubmodules.res 42:21 posCursor:[42:21] posNoWhite:[42:20] Found expr:[42:11->0:-1] Completable: Cpath Value[E, e].v.v2-> +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "D.C2.C2", "kind": 4, diff --git a/analysis/tests/src/expected/CompletionTypeAnnotation.res.txt b/analysis/tests/src/expected/CompletionTypeAnnotation.res.txt index 6d7db71a7..8d448e7c5 100644 --- a/analysis/tests/src/expected/CompletionTypeAnnotation.res.txt +++ b/analysis/tests/src/expected/CompletionTypeAnnotation.res.txt @@ -1,6 +1,8 @@ Complete src/CompletionTypeAnnotation.res 9:22 XXX Not found! Completable: Cexpression Type[someRecord] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "{}", "kind": 12, @@ -15,6 +17,8 @@ Completable: Cexpression Type[someRecord] Complete src/CompletionTypeAnnotation.res 12:24 XXX Not found! Completable: Cexpression Type[someRecord]->recordBody +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "age", "kind": 5, @@ -32,6 +36,8 @@ Completable: Cexpression Type[someRecord]->recordBody Complete src/CompletionTypeAnnotation.res 15:23 XXX Not found! Completable: Cexpression Type[someVariant] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "One", "kind": 4, @@ -53,6 +59,8 @@ Completable: Cexpression Type[someVariant] Complete src/CompletionTypeAnnotation.res 18:25 XXX Not found! Completable: Cexpression Type[someVariant]=O +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "One", "kind": 4, @@ -62,6 +70,24 @@ Completable: Cexpression Type[someVariant]=O "sortText": "A One", "insertText": "One", "insertTextFormat": 2 + }, { + "label": "Option", + "kind": 9, + "tags": [], + "detail": "module", + "documentation": null + }, { + "label": "Object", + "kind": 9, + "tags": [], + "detail": "module", + "documentation": null + }, { + "label": "OCamlCompat", + "kind": 9, + "tags": [], + "detail": "file module", + "documentation": null }, { "label": "Obj", "kind": 9, @@ -69,7 +95,7 @@ Completable: Cexpression Type[someVariant]=O "detail": "file module", "documentation": null }, { - "label": "Object", + "label": "Objects", "kind": 9, "tags": [], "detail": "file module", @@ -79,6 +105,8 @@ Completable: Cexpression Type[someVariant]=O Complete src/CompletionTypeAnnotation.res 21:27 XXX Not found! Completable: Cexpression Type[somePolyVariant] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "#one", "kind": 4, @@ -100,6 +128,8 @@ Completable: Cexpression Type[somePolyVariant] Complete src/CompletionTypeAnnotation.res 24:30 XXX Not found! Completable: Cexpression Type[somePolyVariant]=#o +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "#one", "kind": 4, @@ -113,6 +143,8 @@ Completable: Cexpression Type[somePolyVariant]=#o Complete src/CompletionTypeAnnotation.res 29:20 XXX Not found! Completable: Cexpression Type[someFunc] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "(v1, v2) => {}", "kind": 12, @@ -127,6 +159,8 @@ Completable: Cexpression Type[someFunc] Complete src/CompletionTypeAnnotation.res 34:21 XXX Not found! Completable: Cexpression Type[someTuple] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "(_, _)", "kind": 12, @@ -140,6 +174,8 @@ Completable: Cexpression Type[someTuple] Complete src/CompletionTypeAnnotation.res 37:28 XXX Not found! Completable: Cexpression Type[someTuple]->tuple($1) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "None", "kind": 4, @@ -171,6 +207,8 @@ Completable: Cexpression Type[someTuple]->tuple($1) Complete src/CompletionTypeAnnotation.res 40:31 XXX Not found! Completable: Cexpression option +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "None", "kind": 4, @@ -206,6 +244,8 @@ Completable: Cexpression option Complete src/CompletionTypeAnnotation.res 43:37 XXX Not found! Completable: Cexpression option->variantPayload::Some($0) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "One", "kind": 4, @@ -227,6 +267,8 @@ Completable: Cexpression option->variantPayload::Some($0) Complete src/CompletionTypeAnnotation.res 46:30 XXX Not found! Completable: Cexpression array +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "[]", "kind": 12, @@ -241,6 +283,8 @@ Completable: Cexpression array Complete src/CompletionTypeAnnotation.res 49:32 XXX Not found! Completable: Cexpression array->array +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "One", "kind": 4, @@ -262,6 +306,8 @@ Completable: Cexpression array->array Complete src/CompletionTypeAnnotation.res 52:38 XXX Not found! Completable: Cexpression array> +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "[]", "kind": 12, @@ -276,6 +322,8 @@ Completable: Cexpression array> Complete src/CompletionTypeAnnotation.res 55:45 XXX Not found! Completable: Cexpression option>->variantPayload::Some($0), array +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "One", "kind": 4, diff --git a/analysis/tests/src/expected/CreateInterface.res.txt b/analysis/tests/src/expected/CreateInterface.res.txt index 4e1212948..6dd3f3b28 100644 --- a/analysis/tests/src/expected/CreateInterface.res.txt +++ b/analysis/tests/src/expected/CreateInterface.res.txt @@ -66,7 +66,7 @@ module type FT = { let make: (~name: string) => React.element } } -module NormaList = List +module NormaList = RescriptCore.List module BeltList = Belt.List module type MT2 = ModTyp module rec RM: ModTyp diff --git a/analysis/tests/src/expected/Cross.res.txt b/analysis/tests/src/expected/Cross.res.txt index b51c414b8..e801ec652 100644 --- a/analysis/tests/src/expected/Cross.res.txt +++ b/analysis/tests/src/expected/Cross.res.txt @@ -97,6 +97,8 @@ Complete src/Cross.res 36:28 posCursor:[36:28] posNoWhite:[36:27] Found expr:[36:3->36:28] Pexp_ident DefinitionWithInterface.a:[36:3->36:28] Completable: Cpath Value[DefinitionWithInterface, a] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [] Definition src/Cross.res 39:39 diff --git a/analysis/tests/src/expected/Debug.res.txt b/analysis/tests/src/expected/Debug.res.txt index 2ab89d23f..69737cce1 100644 --- a/analysis/tests/src/expected/Debug.res.txt +++ b/analysis/tests/src/expected/Debug.res.txt @@ -2,14 +2,15 @@ Definition src/Debug.res 2:20 {"uri": "belt_List.mli", "range": {"start": {"line": 245, "character": 4}, "end": {"line": 245, "character": 7}}} Definition src/Debug.res 5:14 -{"uri": "list.mli", "range": {"start": {"line": 116, "character": 4}, "end": {"line": 116, "character": 7}}} +{"uri": "Core__List.res", "range": {"start": {"line": 390, "character": 4}, "end": {"line": 390, "character": 7}}} Complete src/Debug.res 14:8 posCursor:[14:8] posNoWhite:[14:7] Found expr:[14:5->14:8] Pexp_ident eqN:[14:5->14:8] Completable: Cpath Value[eqN] Raw opens: 1 Js.place holder -Resolved opens 1 js.ml +Package opens RescriptCore.place holder +Resolved opens 2 js.ml RescriptCore.res [{ "label": "eqNullable", "kind": 12, diff --git a/analysis/tests/src/expected/Definition.res.txt b/analysis/tests/src/expected/Definition.res.txt index 158b7d271..d40cff9b7 100644 --- a/analysis/tests/src/expected/Definition.res.txt +++ b/analysis/tests/src/expected/Definition.res.txt @@ -5,7 +5,7 @@ Definition src/Definition.res 10:23 {"uri": "Definition.res", "range": {"start": {"line": 6, "character": 7}, "end": {"line": 6, "character": 13}}} Hover src/Definition.res 14:14 -{"contents": {"kind": "markdown", "value": "```rescript\n('a => 'b, list<'a>) => list<'b>\n```\n\n [List.map f [a1; ...; an]] applies function [f] to [a1, ..., an],\n and builds the list [[f a1; ...; f an]]\n with the results returned by [f]. Not tail-recursive. "}} +{"contents": {"kind": "markdown", "value": "```rescript\n(\n RescriptCore.List.t<'a>,\n 'a => 'b,\n) => RescriptCore.List.t<'b>\n```\n\n---\n\n```\n \n```\n```rescript\ntype RescriptCore.List.t<'a> = list<'a>\n```\nGo to: [Type definition](command:rescript-vscode.go_to_location?%5B%22Core__List.resi%22%2C34%2C0%5D)\n\n\n\n Returns a new list with `f` applied to each element of `someList`.\n\n ```res example\n list{1, 2}->List.map(x => x + 1) // list{3, 4}\n ```\n"}} Hover src/Definition.res 18:14 {"contents": {"kind": "markdown", "value": "```rescript\n(Belt.List.t<'a>, 'a => 'b) => Belt.List.t<'b>\n```\n\n---\n\n```\n \n```\n```rescript\ntype Belt.List.t<'a> = list<'a>\n```\nGo to: [Type definition](command:rescript-vscode.go_to_location?%5B%22belt_List.mli%22%2C34%2C0%5D)\n\n\n\n Returns a new list with `f` applied to each element of `someList`.\n\n ```res example\n list{1, 2}->Belt.List.map(x => x + 1) // list{3, 4}\n ```\n"}} diff --git a/analysis/tests/src/expected/Destructuring.res.txt b/analysis/tests/src/expected/Destructuring.res.txt index 867586806..e83c25e6b 100644 --- a/analysis/tests/src/expected/Destructuring.res.txt +++ b/analysis/tests/src/expected/Destructuring.res.txt @@ -1,6 +1,8 @@ Complete src/Destructuring.res 4:11 posCursor:[4:11] posNoWhite:[4:9] Found pattern:[4:4->4:12] Completable: Cpattern Value[x]->recordBody +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "age", "kind": 5, @@ -12,6 +14,8 @@ Completable: Cpattern Value[x]->recordBody Complete src/Destructuring.res 7:8 posCursor:[7:8] posNoWhite:[7:7] Found pattern:[7:7->7:9] Completable: Cpattern Value[x]->recordBody +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "name", "kind": 5, @@ -31,6 +35,8 @@ posCursor:[11:13] posNoWhite:[11:11] Found expr:[10:8->14:1] posCursor:[11:13] posNoWhite:[11:11] Found expr:[11:2->13:6] posCursor:[11:13] posNoWhite:[11:11] Found pattern:[11:6->11:14] Completable: Cpattern Value[x]->recordBody +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "age", "kind": 5, @@ -44,6 +50,8 @@ posCursor:[17:10] posNoWhite:[17:9] Found expr:[16:9->20:1] posCursor:[17:10] posNoWhite:[17:9] Found expr:[17:5->19:11] posCursor:[17:10] posNoWhite:[17:9] Found pattern:[17:9->17:11] Completable: Cpattern Value[x]->recordBody +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "name", "kind": 5, @@ -61,6 +69,8 @@ Completable: Cpattern Value[x]->recordBody Complete src/Destructuring.res 31:8 posCursor:[31:8] posNoWhite:[31:7] Found pattern:[31:7->31:9] Completable: Cpattern Value[x]->recordBody +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "someField", "kind": 5, diff --git a/analysis/tests/src/expected/Div.res.txt b/analysis/tests/src/expected/Div.res.txt index 9e09ba202..dd26cc578 100644 --- a/analysis/tests/src/expected/Div.res.txt +++ b/analysis/tests/src/expected/Div.res.txt @@ -6,6 +6,8 @@ Complete src/Div.res 3:17 posCursor:[3:17] posNoWhite:[3:16] Found expr:[3:4->3:17] JSX 3:7] dangerous[3:8->3:17]=...[3:8->3:17]> _children:None Completable: Cjsx([div], dangerous, [dangerous]) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "dangerouslySetInnerHTML", "kind": 4, diff --git a/analysis/tests/src/expected/ExhaustiveSwitch.res.txt b/analysis/tests/src/expected/ExhaustiveSwitch.res.txt index c9616503c..6c9366ca4 100644 --- a/analysis/tests/src/expected/ExhaustiveSwitch.res.txt +++ b/analysis/tests/src/expected/ExhaustiveSwitch.res.txt @@ -1,6 +1,8 @@ Complete src/ExhaustiveSwitch.res 8:24 XXX Not found! Completable: CexhaustiveSwitch Value[withSomeVarian] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "withSomeVariant", "kind": 12, @@ -21,6 +23,8 @@ Completable: CexhaustiveSwitch Value[withSomeVarian] Complete src/ExhaustiveSwitch.res 11:21 XXX Not found! Completable: CexhaustiveSwitch Value[withSomePol] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "withSomePoly", "kind": 12, @@ -41,6 +45,8 @@ Completable: CexhaustiveSwitch Value[withSomePol] Complete src/ExhaustiveSwitch.res 14:17 XXX Not found! Completable: CexhaustiveSwitch Value[someBoo] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "someBool", "kind": 12, @@ -61,6 +67,8 @@ Completable: CexhaustiveSwitch Value[someBoo] Complete src/ExhaustiveSwitch.res 17:16 XXX Not found! Completable: CexhaustiveSwitch Value[someOp] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "someOpt", "kind": 12, diff --git a/analysis/tests/src/expected/Hover.res.txt b/analysis/tests/src/expected/Hover.res.txt index cdf59d587..bb8632917 100644 --- a/analysis/tests/src/expected/Hover.res.txt +++ b/analysis/tests/src/expected/Hover.res.txt @@ -86,6 +86,8 @@ Hover src/Hover.res 122:3 Nothing at that position. Now trying to use completion. Attribute id:live:[122:0->122:5] label:live Completable: Cdecorator(live) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res {"contents": {"kind": "markdown", "value": "The `@live` decorator is for reanalyze, a static analysis tool for ReScript that can do dead code analysis.\n\n`@live` tells the dead code analysis that the value should be considered live, even though it might appear to be dead. This is typically used in case of FFI where there are indirect ways to access values. It can be added to everything that could otherwise be considered unused by the dead code analysis - values, functions, arguments, records, individual record fields, and so on.\n\n[Read more and see examples in the documentation](https://rescript-lang.org/syntax-lookup#live-decorator).\n\nHint: Did you know you can run an interactive code analysis in your project by running the command `> ReScript: Start Code Analyzer`? Try it!"}} Hover src/Hover.res 125:4 @@ -116,6 +118,8 @@ Complete src/Hover.res 170:16 posCursor:[170:16] posNoWhite:[170:15] Found expr:[170:5->170:16] Pexp_field [170:5->170:15] _:[176:2->170:16] Completable: Cpath Value[x1].content."" +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "age", "kind": 5, @@ -128,6 +132,8 @@ Complete src/Hover.res 173:16 posCursor:[173:16] posNoWhite:[173:15] Found expr:[173:5->173:16] Pexp_field [173:5->173:15] _:[176:2->173:16] Completable: Cpath Value[x2].content."" +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "age", "kind": 5, @@ -140,6 +146,8 @@ Complete src/Hover.res 182:16 posCursor:[182:16] posNoWhite:[182:15] Found expr:[182:5->182:16] Pexp_field [182:5->182:15] _:[187:0->182:16] Completable: Cpath Value[y1].content."" +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "age", "kind": 5, @@ -152,6 +160,8 @@ Complete src/Hover.res 185:16 posCursor:[185:16] posNoWhite:[185:15] Found expr:[185:5->185:16] Pexp_field [185:5->185:15] _:[187:0->185:16] Completable: Cpath Value[y2].content."" +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "age", "kind": 5, @@ -171,6 +181,8 @@ Nothing at that position. Now trying to use completion. posCursor:[210:13] posNoWhite:[210:12] Found expr:[210:11->210:14] Pexp_ident usr:[210:11->210:14] Completable: Cpath Value[usr] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res {"contents": {"kind": "markdown", "value": "```rescript\nuseR\n```\n\n---\n\n```\n \n```\n```rescript\ntype useR = {x: int, y: list>>}\n```\nGo to: [Type definition](command:rescript-vscode.go_to_location?%5B%22Hover.res%22%2C200%2C0%5D)\n\n\n---\n\n```\n \n```\n```rescript\ntype r<'a> = {i: 'a, f: float}\n```\nGo to: [Type definition](command:rescript-vscode.go_to_location?%5B%22Hover.res%22%2C101%2C0%5D)\n"}} Hover src/Hover.res 230:20 @@ -184,6 +196,8 @@ Nothing at that position. Now trying to use completion. posCursor:[245:6] posNoWhite:[245:5] Found expr:[245:3->245:14] Pexp_field [245:3->245:4] someField:[245:5->245:14] Completable: Cpath Value[x].someField +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res {"contents": {"kind": "markdown", "value": "```rescript\nbool\n```\n\n Mighty fine field here. "}} Hover src/Hover.res 248:19 diff --git a/analysis/tests/src/expected/Jsx2.res.txt b/analysis/tests/src/expected/Jsx2.res.txt index 5cd54d307..0f3020f1a 100644 --- a/analysis/tests/src/expected/Jsx2.res.txt +++ b/analysis/tests/src/expected/Jsx2.res.txt @@ -7,12 +7,16 @@ Complete src/Jsx2.res 8:15 posCursor:[8:15] posNoWhite:[8:14] Found expr:[8:4->8:15] JSX 8:5] second[8:6->8:12]=...[8:13->8:15]> _children:None Completable: Cexpression CJsxPropValue [M] second=fi +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [] Complete src/Jsx2.res 11:20 posCursor:[11:20] posNoWhite:[11:19] Found expr:[11:4->11:20] JSX 11:5] second[11:6->11:12]=...[11:13->11:18] f[11:19->11:20]=...[11:19->11:20]> _children:None Completable: Cjsx([M], f, [second, f]) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "first", "kind": 4, @@ -31,12 +35,32 @@ Complete src/Jsx2.res 14:13 posCursor:[14:13] posNoWhite:[14:12] Found expr:[14:12->14:13] JSX 14:13] > _children:None Completable: Cpath Module[M] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "M", "kind": 9, "tags": [], "detail": "module", "documentation": null + }, { + "label": "MapperRt", + "kind": 9, + "tags": [], + "detail": "module", + "documentation": null + }, { + "label": "Math", + "kind": 9, + "tags": [], + "detail": "module", + "documentation": null + }, { + "label": "Map", + "kind": 9, + "tags": [], + "detail": "module", + "documentation": null }, { "label": "Map", "kind": 9, @@ -61,6 +85,8 @@ Complete src/Jsx2.res 22:19 posCursor:[22:19] posNoWhite:[22:18] Found expr:[22:4->22:19] JSX 22:5] prop[22:6->22:10]=...[22:12->22:16] k[22:18->22:19]=...[22:18->22:19]> _children:None Completable: Cjsx([M], k, [prop, k]) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "key", "kind": 4, @@ -73,6 +99,8 @@ Complete src/Jsx2.res 25:17 posCursor:[25:17] posNoWhite:[25:16] Found expr:[25:4->25:17] JSX 25:5] prop[25:6->25:10]=...[25:11->25:15] k[25:16->25:17]=...[25:16->25:17]> _children:None Completable: Cjsx([M], k, [prop, k]) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "key", "kind": 4, @@ -85,6 +113,8 @@ Complete src/Jsx2.res 28:21 posCursor:[28:21] posNoWhite:[28:20] Found expr:[28:4->28:21] JSX 28:5] prop[28:6->28:10]=...[28:11->28:19] k[28:20->28:21]=...[28:20->28:21]> _children:None Completable: Cjsx([M], k, [prop, k]) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "key", "kind": 4, @@ -97,6 +127,8 @@ Complete src/Jsx2.res 31:24 posCursor:[31:24] posNoWhite:[31:23] Found expr:[31:4->31:24] JSX 31:5] prop[31:6->31:10]=...[31:11->31:22] k[31:23->31:24]=...[31:23->31:24]> _children:None Completable: Cjsx([M], k, [prop, k]) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "key", "kind": 4, @@ -109,6 +141,8 @@ Complete src/Jsx2.res 34:18 posCursor:[34:18] posNoWhite:[34:17] Found expr:[34:4->34:18] JSX 34:5] prop[34:6->34:10]=...[34:12->34:16] k[34:17->34:18]=...[34:17->34:18]> _children:None Completable: Cjsx([M], k, [prop, k]) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "key", "kind": 4, @@ -121,6 +155,8 @@ Complete src/Jsx2.res 37:16 posCursor:[37:16] posNoWhite:[37:15] Found expr:[37:4->37:16] JSX 37:5] prop[37:6->37:10]=...[37:11->37:14] k[37:15->37:16]=...[37:15->37:16]> _children:None Completable: Cjsx([M], k, [prop, k]) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "key", "kind": 4, @@ -133,6 +169,8 @@ Complete src/Jsx2.res 40:17 posCursor:[40:17] posNoWhite:[40:16] Found expr:[40:4->40:17] JSX 40:5] prop[40:6->40:10]=...[40:11->40:15] k[40:16->40:17]=...[40:16->40:17]> _children:None Completable: Cjsx([M], k, [prop, k]) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "key", "kind": 4, @@ -145,6 +183,8 @@ Complete src/Jsx2.res 43:18 posCursor:[43:18] posNoWhite:[43:17] Found expr:[43:4->43:18] JSX 43:5] prop[43:6->43:10]=...[43:11->43:16] k[43:17->43:18]=...[43:17->43:18]> _children:None Completable: Cjsx([M], k, [prop, k]) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "key", "kind": 4, @@ -157,6 +197,8 @@ Complete src/Jsx2.res 46:16 posCursor:[46:16] posNoWhite:[46:15] Found expr:[46:4->46:16] JSX 46:5] prop[46:6->46:10]=...[46:11->46:14] k[46:15->46:16]=...[46:15->46:16]> _children:None Completable: Cjsx([M], k, [prop, k]) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "key", "kind": 4, @@ -169,6 +211,8 @@ Complete src/Jsx2.res 49:27 posCursor:[49:27] posNoWhite:[49:26] Found expr:[49:4->49:27] JSX 49:5] prop[49:6->49:10]=...[49:11->49:25] k[49:26->49:27]=...[49:26->49:27]> _children:None Completable: Cjsx([M], k, [prop, k]) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "key", "kind": 4, @@ -181,6 +225,8 @@ Complete src/Jsx2.res 52:38 posCursor:[52:38] posNoWhite:[52:37] Found expr:[52:4->52:38] JSX 52:5] prop[52:6->52:10]=...[52:11->52:36] k[52:37->52:38]=...[52:37->52:38]> _children:None Completable: Cjsx([M], k, [prop, k]) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "key", "kind": 4, @@ -193,6 +239,8 @@ Complete src/Jsx2.res 55:25 posCursor:[55:25] posNoWhite:[55:24] Found expr:[55:4->55:25] JSX 55:5] prop[55:6->55:10]=...[55:11->55:23] k[55:24->55:25]=...[55:24->55:25]> _children:None Completable: Cjsx([M], k, [prop, k]) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "key", "kind": 4, @@ -210,6 +258,8 @@ Complete src/Jsx2.res 68:10 posCursor:[68:10] posNoWhite:[68:9] Found expr:[68:4->68:10] JSX 68:7] al[68:8->68:10]=...[68:8->68:10]> _children:None Completable: Cjsx([Ext], al, [al]) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "align", "kind": 4, @@ -222,12 +272,16 @@ Complete src/Jsx2.res 71:11 posCursor:[71:11] posNoWhite:[71:10] Found expr:[71:4->71:11] JSX 71:5] first[71:6->71:11]=...[71:6->71:11]> _children:None Completable: Cjsx([M], first, [first]) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [] Complete src/Jsx2.res 74:16 posCursor:[74:16] posNoWhite:[74:15] Found expr:[74:4->74:16] JSX 74:5] first[74:6->74:11]=...[74:12->74:14] k[74:15->74:16]=...[74:15->74:16]> _children:None Completable: Cjsx([M], k, [first, k]) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "key", "kind": 4, @@ -240,6 +294,8 @@ Complete src/Jsx2.res 77:23 posCursor:[77:23] posNoWhite:[77:22] Found expr:[77:4->77:23] JSX 77:5] first[77:6->77:11]=...[77:19->77:21] k[77:22->77:23]=...[77:22->77:23]> _children:None Completable: Cjsx([M], k, [first, k]) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "key", "kind": 4, @@ -263,6 +319,8 @@ Complete src/Jsx2.res 89:16 posCursor:[89:16] posNoWhite:[89:15] Found expr:[89:4->89:16] JSX 89:16] > _children:None Completable: Cpath Module[WithChildren] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "WithChildren", "kind": 9, @@ -275,6 +333,8 @@ Complete src/Jsx2.res 91:18 posCursor:[91:18] posNoWhite:[91:17] Found expr:[91:4->91:18] JSX 91:16] n[91:17->91:18]=...[91:17->91:18]> _children:None Completable: Cjsx([WithChildren], n, [n]) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "name", "kind": 4, @@ -288,6 +348,8 @@ posCursor:[94:18] posNoWhite:[94:17] Found pattern:[94:7->94:18] posCursor:[94:18] posNoWhite:[94:17] Found type:[94:11->94:18] Ptyp_constr React.e:[94:11->94:18] Completable: Cpath Type[React, e] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "element", "kind": 22, @@ -301,6 +363,8 @@ posCursor:[96:20] posNoWhite:[96:19] Found pattern:[96:7->99:6] posCursor:[96:20] posNoWhite:[96:19] Found type:[96:11->99:6] Ptyp_constr ReactDOMR:[96:11->99:6] Completable: Cpath Type[ReactDOMR] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "ReactDOMRe", "kind": 9, @@ -315,12 +379,16 @@ Pexp_apply ...[102:15->102:16] (...[102:13->102:14], ...[102:17->102:21]) posCursor:[102:21] posNoWhite:[102:20] Found expr:[102:17->102:21] Pexp_field [102:17->102:18] th:[102:19->102:21] Completable: Cpath Value[x].th +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [] Complete src/Jsx2.res 106:28 posCursor:[106:28] posNoWhite:[106:27] Found expr:[106:11->106:28] Pexp_ident DefineSomeFields.:[106:11->106:28] Completable: Cpath Value[DefineSomeFields, ""] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "thisValue", "kind": 12, @@ -335,6 +403,8 @@ Pexp_apply ...[108:13->108:14] (...[108:11->108:12], ...[108:15->108:36]) posCursor:[108:36] posNoWhite:[108:35] Found expr:[108:15->108:36] Pexp_field [108:15->108:16] DefineSomeFields.th:[108:17->108:36] Completable: Cpath Module[DefineSomeFields].th +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "thisField", "kind": 5, @@ -355,6 +425,8 @@ JSX 121:6] x[122:5->122:6]=...[122:7->122:20] name[124:4->124:8]=.. posCursor:[122:20] posNoWhite:[122:19] Found expr:[122:7->122:20] Pexp_ident Outer.Inner.h:[122:7->122:20] Completable: Cpath Value[Outer, Inner, h] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "hello", "kind": 12, @@ -369,6 +441,8 @@ JSX 128:6] x[129:5->129:6]=...[129:7->131:8]> _children:None posCursor:[129:19] posNoWhite:[129:18] Found expr:[129:7->131:8] Pexp_ident Outer.Inner.:[129:7->131:8] Completable: Cpath Value[Outer, Inner, ""] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "hello", "kind": 12, @@ -386,6 +460,8 @@ Complete src/Jsx2.res 150:21 posCursor:[150:21] posNoWhite:[150:20] Found expr:[150:12->150:32] JSX 150:21] name[150:22->150:26]=...[150:27->150:29]> _children:150:30 Completable: Cpath Module[Nested, Co] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "Comp", "kind": 9, @@ -398,6 +474,8 @@ Complete src/Jsx2.res 153:19 posCursor:[153:19] posNoWhite:[153:18] Found expr:[153:12->153:25] JSX 153:24] > _children:None Completable: Cpath Module[Nested, ""] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "Comp", "kind": 9, @@ -414,6 +492,8 @@ posCursor:[162:12] posNoWhite:[162:11] Found expr:[162:6->162:21] posCursor:[162:12] posNoWhite:[162:11] Found expr:[162:6->162:20] JSX 162:10] age[162:11->162:14]=...[162:15->162:17]> _children:162:18 Completable: Cjsx([Comp], age, [age]) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res {"contents": {"kind": "markdown", "value": "```rescript\nint\n```"}} Hover src/Jsx2.res 167:16 @@ -427,5 +507,7 @@ posCursor:[167:16] posNoWhite:[167:15] Found expr:[167:10->167:25] posCursor:[167:16] posNoWhite:[167:15] Found expr:[167:10->167:24] JSX 167:14] age[167:15->167:18]=...[167:19->167:21]> _children:167:22 Completable: Cjsx([Comp], age, [age]) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res {"contents": {"kind": "markdown", "value": "```rescript\nint\n```"}} diff --git a/analysis/tests/src/expected/Jsx2.resi.txt b/analysis/tests/src/expected/Jsx2.resi.txt index aa95d5bc3..627766d7b 100644 --- a/analysis/tests/src/expected/Jsx2.resi.txt +++ b/analysis/tests/src/expected/Jsx2.resi.txt @@ -10,6 +10,8 @@ Complete src/Jsx2.resi 7:19 posCursor:[7:19] posNoWhite:[7:18] Found type:[7:12->7:19] Ptyp_constr React.e:[7:12->7:19] Completable: Cpath Type[React, e] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "element", "kind": 22, @@ -22,6 +24,8 @@ Complete src/Jsx2.resi 10:18 posCursor:[10:18] posNoWhite:[10:17] Found type:[10:11->10:18] Ptyp_constr React.e:[10:11->10:18] Completable: Cpath Type[React, e] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "element", "kind": 22, diff --git a/analysis/tests/src/expected/JsxV4.res.txt b/analysis/tests/src/expected/JsxV4.res.txt index 3ae47a79e..588ac589d 100644 --- a/analysis/tests/src/expected/JsxV4.res.txt +++ b/analysis/tests/src/expected/JsxV4.res.txt @@ -5,6 +5,8 @@ Complete src/JsxV4.res 11:20 posCursor:[11:20] posNoWhite:[11:19] Found expr:[11:4->11:20] JSX 11:6] first[11:7->11:12]=...[11:13->11:18] f[11:19->11:20]=...[11:19->11:20]> _children:None Completable: Cjsx([M4], f, [first, f]) +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "fun", "kind": 4, diff --git a/analysis/tests/src/expected/Objects.res.txt b/analysis/tests/src/expected/Objects.res.txt new file mode 100644 index 000000000..e69de29bb diff --git a/analysis/tests/src/expected/RecordCompletion.res.txt b/analysis/tests/src/expected/RecordCompletion.res.txt index d5d0b47dc..06fb21f8a 100644 --- a/analysis/tests/src/expected/RecordCompletion.res.txt +++ b/analysis/tests/src/expected/RecordCompletion.res.txt @@ -1,41 +1,47 @@ Complete src/RecordCompletion.res 8:9 posCursor:[8:9] posNoWhite:[8:8] Found expr:[8:3->8:9] Completable: Cpath Value[t].n->m +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ - "label": "Js.Array2.mapi", + "label": "Array.map", "kind": 12, "tags": [], - "detail": "(t<'a>, ('a, int) => 'b) => t<'b>", - "documentation": {"kind": "markdown", "value": "\nApplies the function (the second argument) to each item in the array, returning\na new array. The function acceps two arguments: an item from the array and its\nindex number. The result array does not have to have elements of the same type\nas the input array. See\n[`Array.map`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map)\non MDN.\n\n```res example\n// multiply each item in array by its position\nlet product = (item, index) => item * index\nJs.Array2.mapi([10, 11, 12], product) == [0, 11, 24]\n```\n"} + "detail": "(array<'a>, 'a => 'b) => array<'b>", + "documentation": null }, { - "label": "Js.Array2.map", + "label": "Array.mapWithIndex", "kind": 12, "tags": [], - "detail": "(t<'a>, 'a => 'b) => t<'b>", - "documentation": {"kind": "markdown", "value": "\nApplies the function (the second argument) to each item in the array, returning\na new array. The result array does not have to have elements of the same type\nas the input array. See\n[`Array.map`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map)\non MDN.\n\n```res example\nJs.Array2.map([12, 4, 8], x => x * x) == [144, 16, 64]\nJs.Array2.map([\"animal\", \"vegetable\", \"mineral\"], Js.String.length) == [6, 9, 7]\n```\n"} + "detail": "(array<'a>, ('a, int) => 'b) => array<'b>", + "documentation": null }] Complete src/RecordCompletion.res 11:13 posCursor:[11:13] posNoWhite:[11:12] Found expr:[11:3->11:13] Completable: Cpath Value[t2].n2.n->m +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ - "label": "Js.Array2.mapi", + "label": "Array.map", "kind": 12, "tags": [], - "detail": "(t<'a>, ('a, int) => 'b) => t<'b>", - "documentation": {"kind": "markdown", "value": "\nApplies the function (the second argument) to each item in the array, returning\na new array. The function acceps two arguments: an item from the array and its\nindex number. The result array does not have to have elements of the same type\nas the input array. See\n[`Array.map`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map)\non MDN.\n\n```res example\n// multiply each item in array by its position\nlet product = (item, index) => item * index\nJs.Array2.mapi([10, 11, 12], product) == [0, 11, 24]\n```\n"} + "detail": "(array<'a>, 'a => 'b) => array<'b>", + "documentation": null }, { - "label": "Js.Array2.map", + "label": "Array.mapWithIndex", "kind": 12, "tags": [], - "detail": "(t<'a>, 'a => 'b) => t<'b>", - "documentation": {"kind": "markdown", "value": "\nApplies the function (the second argument) to each item in the array, returning\na new array. The result array does not have to have elements of the same type\nas the input array. See\n[`Array.map`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map)\non MDN.\n\n```res example\nJs.Array2.map([12, 4, 8], x => x * x) == [144, 16, 64]\nJs.Array2.map([\"animal\", \"vegetable\", \"mineral\"], Js.String.length) == [6, 9, 7]\n```\n"} + "detail": "(array<'a>, ('a, int) => 'b) => array<'b>", + "documentation": null }] Complete src/RecordCompletion.res 19:7 posCursor:[19:7] posNoWhite:[19:6] Found expr:[19:3->19:7] Pexp_field [19:3->19:4] R.:[19:5->19:7] Completable: Cpath Module[R]."" +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "name", "kind": 5, @@ -48,6 +54,8 @@ Complete src/RecordCompletion.res 22:7 posCursor:[22:7] posNoWhite:[22:6] Found expr:[22:3->22:10] Pexp_field [22:3->22:4] R.xx:[22:5->22:10] Completable: Cpath Module[R]."" +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ "label": "name", "kind": 5, diff --git a/analysis/tests/src/expected/RecoveryOnProp.res.txt b/analysis/tests/src/expected/RecoveryOnProp.res.txt index fe509d768..0d0c7d38d 100644 --- a/analysis/tests/src/expected/RecoveryOnProp.res.txt +++ b/analysis/tests/src/expected/RecoveryOnProp.res.txt @@ -8,7 +8,21 @@ posCursor:[6:26] posNoWhite:[6:25] Found pattern:[6:20->8:5] posCursor:[6:26] posNoWhite:[6:25] Found type:[6:23->8:5] Ptyp_constr Res:[6:23->8:5] Completable: Cpath Type[Res] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res [{ + "label": "Result", + "kind": 9, + "tags": [], + "detail": "module", + "documentation": null + }, { + "label": "RescriptCore", + "kind": 9, + "tags": [], + "detail": "file module", + "documentation": null + }, { "label": "RescriptReactErrorBoundary", "kind": 9, "tags": [], diff --git a/analysis/tests/src/expected/SignatureHelp.res.txt b/analysis/tests/src/expected/SignatureHelp.res.txt index 802874b2f..4779a2081 100644 --- a/analysis/tests/src/expected/SignatureHelp.res.txt +++ b/analysis/tests/src/expected/SignatureHelp.res.txt @@ -3,6 +3,8 @@ posCursor:[16:19] posNoWhite:[16:18] Found expr:[16:11->16:20] Pexp_apply ...[16:11->16:19] (...[46:0->16:20]) posCursor:[16:19] posNoWhite:[16:18] Found expr:[16:11->16:19] Pexp_ident someFunc:[16:11->16:19] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res argAtCursor: unlabelled<0> extracted params: [( @@ -22,6 +24,8 @@ posCursor:[19:19] posNoWhite:[19:18] Found expr:[19:11->19:21] Pexp_apply ...[19:11->19:19] (...[19:20->19:21]) posCursor:[19:19] posNoWhite:[19:18] Found expr:[19:11->19:19] Pexp_ident someFunc:[19:11->19:19] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res argAtCursor: unlabelled<0> extracted params: [( @@ -41,6 +45,8 @@ posCursor:[22:19] posNoWhite:[22:18] Found expr:[22:11->22:29] Pexp_apply ...[22:11->22:19] (...[22:20->22:23], ~two22:26->22:29=...[22:26->22:29]) posCursor:[22:19] posNoWhite:[22:18] Found expr:[22:11->22:19] Pexp_ident someFunc:[22:11->22:19] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res argAtCursor: ~two extracted params: [( @@ -60,6 +66,8 @@ posCursor:[25:19] posNoWhite:[25:18] Found expr:[25:11->25:35] Pexp_apply ...[25:11->25:19] (...[25:20->25:23], ~two25:26->25:29=...[25:30->25:35]) posCursor:[25:19] posNoWhite:[25:18] Found expr:[25:11->25:19] Pexp_ident someFunc:[25:11->25:19] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res argAtCursor: ~two extracted params: [( @@ -79,6 +87,8 @@ posCursor:[28:19] posNoWhite:[28:18] Found expr:[28:11->28:42] Pexp_apply ...[28:11->28:19] (...[28:20->28:23], ~two28:26->28:29=...[28:30->28:35], ~four28:38->28:42=...[28:38->28:42]) posCursor:[28:19] posNoWhite:[28:18] Found expr:[28:11->28:19] Pexp_ident someFunc:[28:11->28:19] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res argAtCursor: ~four extracted params: [( @@ -98,6 +108,8 @@ posCursor:[31:19] posNoWhite:[31:18] Found expr:[31:11->31:44] Pexp_apply ...[31:11->31:19] (...[31:20->31:23], ~two31:26->31:29=...[31:30->31:35], ~four31:38->31:42=...[31:43->31:44]) posCursor:[31:19] posNoWhite:[31:18] Found expr:[31:11->31:19] Pexp_ident someFunc:[31:11->31:19] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res argAtCursor: ~four extracted params: [( @@ -117,6 +129,8 @@ posCursor:[34:20] posNoWhite:[34:19] Found expr:[34:11->34:21] Pexp_apply ...[34:11->34:20] (...[46:0->34:21]) posCursor:[34:20] posNoWhite:[34:19] Found expr:[34:11->34:20] Pexp_ident otherFunc:[34:11->34:20] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res argAtCursor: unlabelled<0> extracted params: [(string, int, float] @@ -134,6 +148,8 @@ posCursor:[37:20] posNoWhite:[37:19] Found expr:[37:11->37:26] Pexp_apply ...[37:11->37:20] (...[37:21->37:26]) posCursor:[37:20] posNoWhite:[37:19] Found expr:[37:11->37:20] Pexp_ident otherFunc:[37:11->37:20] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res argAtCursor: unlabelled<0> extracted params: [(string, int, float] @@ -151,6 +167,8 @@ posCursor:[40:20] posNoWhite:[40:19] Found expr:[40:11->40:39] Pexp_apply ...[40:11->40:20] (...[40:21->40:26], ...[40:28->40:31], ...[40:33->40:38]) posCursor:[40:20] posNoWhite:[40:19] Found expr:[40:11->40:20] Pexp_ident otherFunc:[40:11->40:20] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res argAtCursor: unlabelled<2> extracted params: [(string, int, float] @@ -168,6 +186,8 @@ posCursor:[43:29] posNoWhite:[43:28] Found expr:[43:11->43:34] Pexp_apply ...[43:11->43:29] (~age43:31->43:34=...[43:31->43:34]) posCursor:[43:29] posNoWhite:[43:28] Found expr:[43:11->43:29] Pexp_ident Completion.Lib.foo:[43:11->43:29] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res argAtCursor: ~age extracted params: [(~age: int, ~name: string] @@ -185,6 +205,8 @@ posCursor:[50:23] posNoWhite:[50:22] Found expr:[50:11->50:24] Pexp_apply ...[50:11->50:23] (...[56:0->50:24]) posCursor:[50:23] posNoWhite:[50:22] Found expr:[50:11->50:23] Pexp_ident iAmSoSpecial:[50:11->50:23] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res argAtCursor: unlabelled<0> extracted params: [string] @@ -203,6 +225,8 @@ posCursor:[53:29] posNoWhite:[53:28] Found expr:[53:20->53:31] Pexp_apply ...[53:20->53:29] (...[53:30->53:31]) posCursor:[53:29] posNoWhite:[53:28] Found expr:[53:20->53:29] Pexp_ident otherFunc:[53:20->53:29] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res argAtCursor: unlabelled<1> extracted params: [(string, int, float] @@ -220,6 +244,8 @@ posCursor:[62:13] posNoWhite:[62:12] Found expr:[62:11->62:19] Pexp_apply ...[62:11->62:13] (...[62:14->62:16]) posCursor:[62:13] posNoWhite:[62:12] Found expr:[62:11->62:13] Pexp_ident fn:[62:11->62:13] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res argAtCursor: unlabelled<1> extracted params: [(int, string, int] @@ -237,6 +263,8 @@ posCursor:[65:13] posNoWhite:[65:12] Found expr:[65:11->65:25] Pexp_apply ...[65:11->65:13] (...[65:14->65:16], ...[65:20->65:24]) posCursor:[65:13] posNoWhite:[65:12] Found expr:[65:11->65:13] Pexp_ident fn:[65:11->65:13] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res argAtCursor: unlabelled<1> extracted params: [(int, string, int] @@ -254,6 +282,8 @@ posCursor:[68:13] posNoWhite:[68:12] Found expr:[68:11->68:28] Pexp_apply ...[68:11->68:13] (...[68:14->68:16], ...[68:18->68:25]) posCursor:[68:13] posNoWhite:[68:12] Found expr:[68:11->68:13] Pexp_ident fn:[68:11->68:13] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res argAtCursor: unlabelled<2> extracted params: [(int, string, int] @@ -273,6 +303,8 @@ posCursor:[71:28] posNoWhite:[71:27] Found expr:[71:16->71:30] Pexp_apply ...[71:16->71:28] (...[71:29->71:30]) posCursor:[71:28] posNoWhite:[71:27] Found expr:[71:16->71:28] Pexp_ident iAmSoSpecial:[71:16->71:28] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res argAtCursor: unlabelled<0> extracted params: [string] @@ -294,6 +326,8 @@ posCursor:[74:39] posNoWhite:[74:38] Found expr:[74:31->74:41] Pexp_apply ...[74:31->74:39] (...[74:40->74:41]) posCursor:[74:39] posNoWhite:[74:38] Found expr:[74:31->74:39] Pexp_ident someFunc:[74:31->74:39] +Package opens RescriptCore.place holder +Resolved opens 1 RescriptCore.res argAtCursor: unlabelled<0> extracted params: [(