Complete src/GenericJsxCompletion.res 0:8
posCursor:[0:8] posNoWhite:[0:6] Found expr:[0:4->0:7]
JSX <div:[0:4->0:7] > _children:None
Completable: Cjsx([div], "", [])
Package opens Pervasives.JsxModules.place holder
Resolved opens 1 pervasives
Path GenericJsx.Elements.props
[{
    "label": "testing",
    "kind": 4,
    "tags": [],
    "detail": "bool",
    "documentation": null
  }, {
    "label": "test2",
    "kind": 4,
    "tags": [],
    "detail": "string",
    "documentation": null
  }, {
    "label": "children",
    "kind": 4,
    "tags": [],
    "detail": "element",
    "documentation": null
  }]

Complete src/GenericJsxCompletion.res 3:17
posCursor:[3:17] posNoWhite:[3:16] Found expr:[3:4->3:18]
JSX <div:[3:4->3:7] testing[3:8->3:15]=...[3:16->3:18]> _children:None
Completable: Cexpression CJsxPropValue [div] testing->recordBody
Package opens Pervasives.JsxModules.place holder
Resolved opens 1 pervasives
ContextPath CJsxPropValue [div] testing
Path GenericJsx.Elements.props
[{
    "label": "true",
    "kind": 4,
    "tags": [],
    "detail": "bool",
    "documentation": null
  }, {
    "label": "false",
    "kind": 4,
    "tags": [],
    "detail": "bool",
    "documentation": null
  }]

Complete src/GenericJsxCompletion.res 14:21
posCursor:[14:21] posNoWhite:[14:20] Found expr:[8:13->23:3]
posCursor:[14:21] posNoWhite:[14:20] Found expr:[8:14->23:3]
posCursor:[14:21] posNoWhite:[14:20] Found expr:[9:4->22:10]
posCursor:[14:21] posNoWhite:[14:20] Found expr:[10:4->22:10]
posCursor:[14:21] posNoWhite:[14:20] Found expr:[11:4->22:10]
posCursor:[14:21] posNoWhite:[14:20] Found expr:[12:4->22:10]
posCursor:[14:21] posNoWhite:[14:20] Found expr:[13:4->22:10]
posCursor:[14:21] posNoWhite:[14:20] Found expr:[14:7->22:10]
posCursor:[14:21] posNoWhite:[14:20] Found expr:[14:7->14:21]
Completable: Cpath Value[someString]->st <<jsx>>
Package opens Pervasives.JsxModules.place holder
Resolved opens 1 pervasives
ContextPath Value[someString]->st <<jsx>>
ContextPath Value[someString]
Path someString
CPPipe env:GenericJsxCompletion
Path Js.String2.st
[{
    "label": "GenericJsx.string",
    "kind": 12,
    "tags": [],
    "detail": "string",
    "documentation": {"kind": "markdown", "value": "Turns `string` into a JSX element so it can be used inside of JSX."},
    "sortText": "A",
    "insertTextFormat": 2
  }, {
    "label": "Js.String2.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## Examples\n\n```rescript\nJs.String2.startsWith(\"ReScript\", \"Re\") == true\nJs.String2.startsWith(\"ReScript\", \"\") == true\nJs.String2.startsWith(\"JavaScript\", \"Re\") == false\n```\n"}
  }, {
    "label": "Js.String2.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## Examples\n\n```rescript\nJs.String2.startsWithFrom(\"ReScript\", \"Scri\", 2) == true\nJs.String2.startsWithFrom(\"ReScript\", \"\", 2) == true\nJs.String2.startsWithFrom(\"JavaScript\", \"Scri\", 2) == false\n```\n"}
  }]

Complete src/GenericJsxCompletion.res 20:24
posCursor:[20:24] posNoWhite:[20:23] Found expr:[8:13->23:3]
posCursor:[20:24] posNoWhite:[20:23] Found expr:[8:14->23:3]
posCursor:[20:24] posNoWhite:[20:23] Found expr:[9:4->22:10]
posCursor:[20:24] posNoWhite:[20:23] Found expr:[10:4->22:10]
posCursor:[20:24] posNoWhite:[20:23] Found expr:[11:4->22:10]
posCursor:[20:24] posNoWhite:[20:23] Found expr:[12:4->22:10]
posCursor:[20:24] posNoWhite:[20:23] Found expr:[13:4->22:10]
posCursor:[20:24] posNoWhite:[20:23] Found expr:[16:4->22:10]
posCursor:[20:24] posNoWhite:[20:23] Found expr:[17:5->22:10]
JSX <div:[17:5->17:8] > _children:17:8
posCursor:[20:24] posNoWhite:[20:23] Found expr:[17:8->22:4]
posCursor:[20:24] posNoWhite:[20:23] Found expr:[18:7->22:4]
posCursor:[20:24] posNoWhite:[20:23] Found expr:[19:7->22:4]
posCursor:[20:24] posNoWhite:[20:23] Found expr:[19:7->22:4]
posCursor:[20:24] posNoWhite:[20:23] Found expr:[20:10->22:4]
posCursor:[20:24] posNoWhite:[20:23] Found expr:[20:10->22:4]
posCursor:[20:24] posNoWhite:[20:23] Found expr:[20:10->20:24]
Completable: Cpath Value[someString]->st <<jsx>>
Raw opens: 1 GenericJsx.place holder
Package opens Pervasives.JsxModules.place holder
Resolved opens 2 pervasives GenericJsx.res
ContextPath Value[someString]->st <<jsx>>
ContextPath Value[someString]
Path someString
CPPipe env:GenericJsxCompletion
Path Js.String2.st
[{
    "label": "string",
    "kind": 12,
    "tags": [],
    "detail": "string",
    "documentation": {"kind": "markdown", "value": "Turns `string` into a JSX element so it can be used inside of JSX."},
    "sortText": "A",
    "insertTextFormat": 2
  }, {
    "label": "Js.String2.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## Examples\n\n```rescript\nJs.String2.startsWith(\"ReScript\", \"Re\") == true\nJs.String2.startsWith(\"ReScript\", \"\") == true\nJs.String2.startsWith(\"JavaScript\", \"Re\") == false\n```\n"}
  }, {
    "label": "Js.String2.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## Examples\n\n```rescript\nJs.String2.startsWithFrom(\"ReScript\", \"Scri\", 2) == true\nJs.String2.startsWithFrom(\"ReScript\", \"\", 2) == true\nJs.String2.startsWithFrom(\"JavaScript\", \"Scri\", 2) == false\n```\n"}
  }]

