jaredly / reason-language-server

A language server for reason, in reason
MIT License
659 stars 84 forks source link

Unable to load compilation data: Could not run bsb #441

Closed wyze closed 4 years ago

wyze commented 4 years ago

I've looked and tried steps in #337 and #213 as well but nothing seems to fix it. Only thing that worked was when I pulled down the repo and forced the code where it gets bsb version to return the actual version Ok(String("7.2.2")) did it work.

Edit: I meant to add, if I take the command it is running to get the version and run it in terminal, it outputs the version correctly.

I've tried on multiple different codebases all with the same output. You can try https://github.com/wyze/bs-react-testing-library if you want. I've tried yarn and npm, different node versions (v10 and v12). With and without shell theme, different shells.

I've launched Code through terminal or a new instance when already open.

Here is some info from npx envinfo:

  System:
    OS: macOS Mojave 10.14.6
    CPU: (16) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
    Memory: 1.86 GB / 16.00 GB
    Shell: 5.8 - /usr/local/bin/zsh
  Binaries:
    Node: 12.16.1 - ~/.nvm/versions/node/v12.16.1/bin/node
    Yarn: 1.22.4 - /usr/local/bin/yarn
    npm: 6.13.4 - ~/.nvm/versions/node/v12.16.1/bin/npm
  IDEs:
    VSCode: 1.44.0 - /usr/local/bin/code

Latest debug log:

Hello - from /Users/neil/.vscode/extensions/jaredly.reason-vscode-1.7.8/bin.native
Previous log location: /var/folders/qd/cwxcwq4j4_v6qbb98g2tt6880000gn/T/lsp.log
Sending notification {"jsonrpc": "2.0", "method": "client/registerCapability", "params": {"registrations": [{"id": "watching", "method": "workspace/didChangeWatchedFiles", "registerOptions": {"watchers": [{"globPattern": "**/bsconfig.json"}, {"globPattern": "**/.merlin"}]}}]}}
Sending response {"id": 0, "jsonrpc": "2.0", "result": {"capabilities": {"textDocumentSync": 1, "hoverProvider": true, "completionProvider": {"resolveProvider": true, "triggerCharacters": ["."]}, "signatureHelpProvider": {"triggerCharacters": ["("]}, "definitionProvider": true, "typeDefinitionProvider": true, "referencesProvider": true, "documentSymbolProvider": true, "codeActionProvider": true, "executeCommandProvider": {"commands": ["reason-language-server.add_to_interface_inner"]}, "codeLensProvider": {"resolveProvider": true}, "documentHighlightProvider": true, "documentRangeFormattingProvider": true, "documentFormattingProvider": true, "renameProvider": true}}}
Read message 
{"jsonrpc":"2.0","method":"initialized","params":{}}
Read message 
{"jsonrpc":"2.0","method":"workspace/didChangeConfiguration","params":{"settings":{"reason_language_server":{"location":"","build_system_override_by_root":{},"refmt":"","lispRefmt":"","mlfmt":"","format_width":80,"per_value_codelens":false,"dependencies_codelens":true,"opens_codelens":true,"show_module_path_on_hover":true,"reloadOnChange":false,"show_debug_errors":false,"autoRebuild":true}}}}
Read message 
{"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"uri":"file:///Users/neil/Projects/personal/bs-react-testing-library/src/ReactTestingLibrary.re","languageId":"reason","version":1,"text":"open DomTestingLibrary;\n\nmodule FireEvent = {\n  include FireEvent;\n};\n\ntype renderResult;\ntype queries;\ntype renderOptions = {\n  .\n  \"container\": Js.undefined(Dom.element),\n  \"baseElement\": Js.undefined(Dom.element),\n  \"hydrate\": Js.undefined(bool),\n  \"wrapper\": Js.undefined(Dom.element),\n  \"queries\": Js.undefined(queries),\n};\n\n[@bs.module \"@testing-library/react\"]\nexternal cleanup: unit => unit = \"cleanup\";\n\n[@bs.module \"@testing-library/react\"]\nexternal _act: (unit => Js.undefined(Js.Promise.t('a))) => unit = \"act\";\n\nlet act = callback =>\n  _act(() => {\n    callback();\n    // (work-around) BuckleScript compiles `unit` to `0`, this will cause a warning as following:\n    // Warning: The callback passed to act(...) function must return undefined, or a Promise.\n    Js.Undefined.empty;\n  });\n\n[@bs.module \"@testing-library/react\"]\nexternal _render: (ReasonReact.reactElement, renderOptions) => renderResult =\n  \"render\";\n\n[@bs.get] external container: renderResult => Dom.element = \"container\";\n\n[@bs.get] external baseElement: renderResult => Dom.element = \"baseElement\";\n\n[@bs.send.pipe: renderResult]\nexternal _debug: (Js.undefined(Dom.element), Js.undefined(int)) => unit =\n  \"debug\";\n\n[@bs.send.pipe: renderResult] external unmount: unit => bool = \"unmount\";\n\n[@bs.send.pipe: renderResult]\nexternal rerender: ReasonReact.reactElement => unit = \"rerender\";\n\n[@bs.send.pipe: renderResult]\nexternal asFragment: unit => Dom.element = \"asFragment\";\n\n// ByLabelText\n[@bs.send.pipe: renderResult]\nexternal _getByLabelText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByLabelTextQuery.options)\n  ) =>\n  Dom.element =\n  \"getByLabelText\";\n\nlet getByLabelText = (~matcher, ~options=?, result) =>\n  _getByLabelText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _getAllByLabelText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByLabelTextQuery.options)\n  ) =>\n  array(Dom.element) =\n  \"getAllByLabelText\";\n\nlet getAllByLabelText = (~matcher, ~options=?, result) =>\n  _getAllByLabelText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _queryByLabelText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByLabelTextQuery.options)\n  ) =>\n  Js.null(Dom.element) =\n  \"queryByLabelText\";\n\nlet queryByLabelText = (~matcher, ~options=?, result) =>\n  _queryByLabelText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _queryAllByLabelText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByLabelTextQuery.options)\n  ) =>\n  array(Dom.element) =\n  \"queryAllByLabelText\";\n\nlet queryAllByLabelText = (~matcher, ~options=?, result) =>\n  _queryAllByLabelText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _findByLabelText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByLabelTextQuery.options)\n  ) =>\n  Js.Promise.t(Dom.element) =\n  \"findByLabelText\";\n\nlet findByLabelText = (~matcher, ~options=?, result) =>\n  _findByLabelText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _findAllByLabelText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByLabelTextQuery.options)\n  ) =>\n  Js.Promise.t(array(Dom.element)) =\n  \"findAllByLabelText\";\n\nlet findAllByLabelText = (~matcher, ~options=?, result) =>\n  _findAllByLabelText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n// ByPlaceholderText\n[@bs.send.pipe: renderResult]\nexternal _getByPlaceholderText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByPlaceholderTextQuery.options)\n  ) =>\n  Dom.element =\n  \"getByPlaceholderText\";\n\nlet getByPlaceholderText = (~matcher, ~options=?, result) =>\n  _getByPlaceholderText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _getAllByPlaceholderText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByPlaceholderTextQuery.options)\n  ) =>\n  array(Dom.element) =\n  \"getAllByPlaceholderText\";\n\nlet getAllByPlaceholderText = (~matcher, ~options=?, result) =>\n  _getAllByPlaceholderText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _queryByPlaceholderText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByPlaceholderTextQuery.options)\n  ) =>\n  Js.null(Dom.element) =\n  \"queryByPlaceholderText\";\n\nlet queryByPlaceholderText = (~matcher, ~options=?, result) =>\n  _queryByPlaceholderText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _queryAllByPlaceholderText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByPlaceholderTextQuery.options)\n  ) =>\n  array(Dom.element) =\n  \"queryAllByPlaceholderText\";\n\nlet queryAllByPlaceholderText = (~matcher, ~options=?, result) =>\n  _queryAllByPlaceholderText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _findByPlaceholderText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByPlaceholderTextQuery.options)\n  ) =>\n  Js.Promise.t(Dom.element) =\n  \"findByPlaceholderText\";\n\nlet findByPlaceholderText = (~matcher, ~options=?, result) =>\n  _findByPlaceholderText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _findAllByPlaceholderText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByPlaceholderTextQuery.options)\n  ) =>\n  Js.Promise.t(array(Dom.element)) =\n  \"findAllByPlaceholderText\";\n\nlet findAllByPlaceholderText = (~matcher, ~options=?, result) =>\n  _findAllByPlaceholderText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n// ByText\n[@bs.send.pipe: renderResult]\nexternal _getByText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByTextQuery.options)\n  ) =>\n  Dom.element =\n  \"getByText\";\n\nlet getByText = (~matcher, ~options=?, result) =>\n  _getByText(result, ~matcher, ~options=Js.Undefined.fromOption(options));\n\n[@bs.send.pipe: renderResult]\nexternal _getAllByText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByTextQuery.options)\n  ) =>\n  array(Dom.element) =\n  \"getAllByText\";\n\nlet getAllByText = (~matcher, ~options=?, result) =>\n  _getAllByText(result, ~matcher, ~options=Js.Undefined.fromOption(options));\n\n[@bs.send.pipe: renderResult]\nexternal _queryByText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByTextQuery.options)\n  ) =>\n  Js.null(Dom.element) =\n  \"queryByText\";\n\nlet queryByText = (~matcher, ~options=?, result) =>\n  _queryByText(result, ~matcher, ~options=Js.Undefined.fromOption(options));\n\n[@bs.send.pipe: renderResult]\nexternal _queryAllByText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByTextQuery.options)\n  ) =>\n  array(Dom.element) =\n  \"queryAllByText\";\n\nlet queryAllByText = (~matcher, ~options=?, result) =>\n  _queryAllByText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _findByText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByTextQuery.options)\n  ) =>\n  Js.Promise.t(Dom.element) =\n  \"findByText\";\n\nlet findByText = (~matcher, ~options=?, result) =>\n  _findByText(result, ~matcher, ~options=Js.Undefined.fromOption(options));\n\n[@bs.send.pipe: renderResult]\nexternal _findAllByText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByTextQuery.options)\n  ) =>\n  Js.Promise.t(array(Dom.element)) =\n  \"findAllByText\";\n\nlet findAllByText = (~matcher, ~options=?, result) =>\n  _findAllByText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n// ByAltText\n[@bs.send.pipe: renderResult]\nexternal _getByAltText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByAltTextQuery.options)\n  ) =>\n  Dom.element =\n  \"getByAltText\";\n\nlet getByAltText = (~matcher, ~options=?, result) =>\n  _getByAltText(result, ~matcher, ~options=Js.Undefined.fromOption(options));\n\n[@bs.send.pipe: renderResult]\nexternal _getAllByAltText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByAltTextQuery.options)\n  ) =>\n  array(Dom.element) =\n  \"getAllByAltText\";\n\nlet getAllByAltText = (~matcher, ~options=?, result) =>\n  _getAllByAltText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _queryByAltText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByAltTextQuery.options)\n  ) =>\n  Js.null(Dom.element) =\n  \"queryByAltText\";\n\nlet queryByAltText = (~matcher, ~options=?, result) =>\n  _queryByAltText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _queryAllByAltText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByAltTextQuery.options)\n  ) =>\n  array(Dom.element) =\n  \"queryAllByAltText\";\n\nlet queryAllByAltText = (~matcher, ~options=?, result) =>\n  _queryAllByAltText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _findByAltText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByAltTextQuery.options)\n  ) =>\n  Js.Promise.t(Dom.element) =\n  \"findByAltText\";\n\nlet findByAltText = (~matcher, ~options=?, result) =>\n  _findByAltText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _findAllByAltText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByAltTextQuery.options)\n  ) =>\n  Js.Promise.t(array(Dom.element)) =\n  \"findAllByAltText\";\n\nlet findAllByAltText = (~matcher, ~options=?, result) =>\n  _findAllByAltText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n// ByTitle\n[@bs.send.pipe: renderResult]\nexternal _getByTitle:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByTitleQuery.options)\n  ) =>\n  Dom.element =\n  \"getByTitle\";\n\nlet getByTitle = (~matcher, ~options=?, result) =>\n  _getByTitle(result, ~matcher, ~options=Js.Undefined.fromOption(options));\n\n[@bs.send.pipe: renderResult]\nexternal _getAllByTitle:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByTitleQuery.options)\n  ) =>\n  array(Dom.element) =\n  \"getAllByTitle\";\n\nlet getAllByTitle = (~matcher, ~options=?, result) =>\n  _getAllByTitle(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _queryByTitle:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByTitleQuery.options)\n  ) =>\n  Js.null(Dom.element) =\n  \"queryByTitle\";\n\nlet queryByTitle = (~matcher, ~options=?, result) =>\n  _queryByTitle(result, ~matcher, ~options=Js.Undefined.fromOption(options));\n\n[@bs.send.pipe: renderResult]\nexternal _queryAllByTitle:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByTitleQuery.options)\n  ) =>\n  array(Dom.element) =\n  \"queryAllByTitle\";\n\nlet queryAllByTitle = (~matcher, ~options=?, result) =>\n  _queryAllByTitle(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _findByTitle:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByTitleQuery.options)\n  ) =>\n  Js.Promise.t(Dom.element) =\n  \"findByTitle\";\n\nlet findByTitle = (~matcher, ~options=?, result) =>\n  _findByTitle(result, ~matcher, ~options=Js.Undefined.fromOption(options));\n\n[@bs.send.pipe: renderResult]\nexternal _findAllByTitle:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByTitleQuery.options)\n  ) =>\n  Js.Promise.t(array(Dom.element)) =\n  \"findAllByTitle\";\n\nlet findAllByTitle = (~matcher, ~options=?, result) =>\n  _findAllByTitle(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n// ByDisplayValue\n[@bs.send.pipe: renderResult]\nexternal _getByDisplayValue:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByDisplayValueQuery.options)\n  ) =>\n  Dom.element =\n  \"getByDisplayValue\";\n\nlet getByDisplayValue = (~matcher, ~options=?, result) =>\n  _getByDisplayValue(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _getAllByDisplayValue:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByDisplayValueQuery.options)\n  ) =>\n  array(Dom.element) =\n  \"getAllByDisplayValue\";\n\nlet getAllByDisplayValue = (~matcher, ~options=?, result) =>\n  _getAllByDisplayValue(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _queryByDisplayValue:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByDisplayValueQuery.options)\n  ) =>\n  Js.null(Dom.element) =\n  \"queryByDisplayValue\";\n\nlet queryByDisplayValue = (~matcher, ~options=?, result) =>\n  _queryByDisplayValue(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _queryAllByDisplayValue:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByDisplayValueQuery.options)\n  ) =>\n  array(Dom.element) =\n  \"queryAllByDisplayValue\";\n\nlet queryAllByDisplayValue = (~matcher, ~options=?, result) =>\n  _queryAllByDisplayValue(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _findByDisplayValue:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByDisplayValueQuery.options)\n  ) =>\n  Js.Promise.t(Dom.element) =\n  \"findByDisplayValue\";\n\nlet findByDisplayValue = (~matcher, ~options=?, result) =>\n  _findByDisplayValue(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _findAllByDisplayValue:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByDisplayValueQuery.options)\n  ) =>\n  Js.Promise.t(array(Dom.element)) =\n  \"findAllByDisplayValue\";\n\nlet findAllByDisplayValue = (~matcher, ~options=?, result) =>\n  _findAllByDisplayValue(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n// ByRole\n[@bs.send.pipe: renderResult]\nexternal _getByRole:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByRoleQuery.options)\n  ) =>\n  Dom.element =\n  \"getByRole\";\n\nlet getByRole = (~matcher, ~options=?, result) =>\n  _getByRole(result, ~matcher, ~options=Js.Undefined.fromOption(options));\n\n[@bs.send.pipe: renderResult]\nexternal _getAllByRole:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByRoleQuery.options)\n  ) =>\n  array(Dom.element) =\n  \"getAllByRole\";\n\nlet getAllByRole = (~matcher, ~options=?, result) =>\n  _getAllByRole(result, ~matcher, ~options=Js.Undefined.fromOption(options));\n\n[@bs.send.pipe: renderResult]\nexternal _queryByRole:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByRoleQuery.options)\n  ) =>\n  Js.null(Dom.element) =\n  \"queryByRole\";\n\nlet queryByRole = (~matcher, ~options=?, result) =>\n  _queryByRole(result, ~matcher, ~options=Js.Undefined.fromOption(options));\n\n[@bs.send.pipe: renderResult]\nexternal _queryAllByRole:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByRoleQuery.options)\n  ) =>\n  array(Dom.element) =\n  \"queryAllByRole\";\n\nlet queryAllByRole = (~matcher, ~options=?, result) =>\n  _queryAllByRole(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _findByRole:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByRoleQuery.options)\n  ) =>\n  Js.Promise.t(Dom.element) =\n  \"findByRole\";\n\nlet findByRole = (~matcher, ~options=?, result) =>\n  _findByRole(result, ~matcher, ~options=Js.Undefined.fromOption(options));\n\n[@bs.send.pipe: renderResult]\nexternal _findAllByRole:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByRoleQuery.options)\n  ) =>\n  Js.Promise.t(array(Dom.element)) =\n  \"findAllByRole\";\n\nlet findAllByRole = (~matcher, ~options=?, result) =>\n  _findAllByRole(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n// ByTestId\n[@bs.send.pipe: renderResult]\nexternal _getByTestId:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByTestIdQuery.options)\n  ) =>\n  Dom.element =\n  \"getByTestId\";\n\nlet getByTestId = (~matcher, ~options=?, result) =>\n  _getByTestId(result, ~matcher, ~options=Js.Undefined.fromOption(options));\n\n[@bs.send.pipe: renderResult]\nexternal _getAllByTestId:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByTestIdQuery.options)\n  ) =>\n  array(Dom.element) =\n  \"getAllByTestId\";\n\nlet getAllByTestId = (~matcher, ~options=?, result) =>\n  _getAllByTestId(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _queryByTestId:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByTestIdQuery.options)\n  ) =>\n  Js.null(Dom.element) =\n  \"queryByTestId\";\n\nlet queryByTestId = (~matcher, ~options=?, result) =>\n  _queryByTestId(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _queryAllByTestId:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByTestIdQuery.options)\n  ) =>\n  array(Dom.element) =\n  \"queryAllByTestId\";\n\nlet queryAllByTestId = (~matcher, ~options=?, result) =>\n  _queryAllByTestId(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _findByTestId:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByTestIdQuery.options)\n  ) =>\n  Js.Promise.t(Dom.element) =\n  \"findByTestId\";\n\nlet findByTestId = (~matcher, ~options=?, result) =>\n  _findByTestId(result, ~matcher, ~options=Js.Undefined.fromOption(options));\n\n[@bs.send.pipe: renderResult]\nexternal _findAllByTestId:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByTestIdQuery.options)\n  ) =>\n  Js.Promise.t(array(Dom.element)) =\n  \"findAllByTestId\";\n\nlet findAllByTestId = (~matcher, ~options=?, result) =>\n  _findAllByTestId(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\nlet render =\n    (\n      ~baseElement=?,\n      ~container=?,\n      ~hydrate=?,\n      ~wrapper=?,\n      ~queries=?,\n      element,\n    ) => {\n  let baseElement_ =\n    switch (container) {\n    | Some(container') => Js.Undefined.return(container')\n    | None => Js.Undefined.fromOption(baseElement)\n    };\n  let container_ = Js.Undefined.fromOption(container);\n\n  _render(\n    element,\n    {\n      \"baseElement\": baseElement_,\n      \"container\": container_,\n      \"hydrate\": Js.Undefined.fromOption(hydrate),\n      \"wrapper\": Js.Undefined.fromOption(wrapper),\n      \"queries\": Js.Undefined.fromOption(queries),\n    },\n  );\n};\n\nlet debug = (~el=?, ~maxLengthToPrint=?, ()) =>\n  _debug(\n    Js.Undefined.fromOption(el),\n    Js.Undefined.fromOption(maxLengthToPrint),\n  );\n"}}}
Sending notification {"jsonrpc": "2.0", "method": "window/showMessage", "params": {"type": 1, "message": "Could not run bsb (ran /Users/neil/Projects/personal/bs-react-testing-library/node_modules/.bin/bsb -version). Output: "}}
Read message 
{"jsonrpc":"2.0","id":1,"method":"textDocument/documentSymbol","params":{"textDocument":{"uri":"file:///Users/neil/Projects/personal/bs-react-testing-library/src/ReactTestingLibrary.re"}}}
[server] Got a method textDocument/documentSymbol
[server] processing took 0.00500679016113ms
Sending response {"id": 1, "jsonrpc": "2.0", "error": {"code": -32603, "message": "Could not run bsb (ran /Users/neil/Projects/personal/bs-react-testing-library/node_modules/.bin/bsb -version). Output: "}}
Read message 
{"jsonrpc":"2.0","id":2,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///Users/neil/Projects/personal/bs-react-testing-library/src/ReactTestingLibrary.re"},"range":{"start":{"line":25,"character":15},"end":{"line":25,"character":15}},"context":{"diagnostics":[]}}}
[server] Got a method textDocument/codeAction
[server] processing took 0.00715255737305ms
Sending response {"id": 2, "jsonrpc": "2.0", "error": {"code": -32603, "message": "Could not run bsb (ran /Users/neil/Projects/personal/bs-react-testing-library/node_modules/.bin/bsb -version). Output: "}}
Read message 
{"jsonrpc":"2.0","method":"$/cancelRequest","params":{"id":1}}
Read message 
{"jsonrpc":"2.0","id":3,"method":"textDocument/documentSymbol","params":{"textDocument":{"uri":"file:///Users/neil/Projects/personal/bs-react-testing-library/src/ReactTestingLibrary.re"}}}
[server] Got a method textDocument/documentSymbol
[server] processing took 0.00500679016113ms
Sending response {"id": 3, "jsonrpc": "2.0", "error": {"code": -32603, "message": "Could not run bsb (ran /Users/neil/Projects/personal/bs-react-testing-library/node_modules/.bin/bsb -version). Output: "}}
Read message 
{"jsonrpc":"2.0","id":4,"method":"textDocument/codeLens","params":{"textDocument":{"uri":"file:///Users/neil/Projects/personal/bs-react-testing-library/src/ReactTestingLibrary.re"}}}
[server] Got a method textDocument/codeLens
[server] processing took 0.00500679016113ms
Sending response {"id": 4, "jsonrpc": "2.0", "result": [{"range": {"start": {"line": 0, "character": 0}, "end": {"line": 0, "character": 0}}, "command": {"title": "Unable to load compilation data: Could not run bsb (ran /Users/neil/Projects/personal/bs-react-testing-library/node_modules/.bin/bsb -version). Output: ", "command": ""}}]}
Read message 
{"jsonrpc":"2.0","id":5,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///Users/neil/Projects/personal/bs-react-testing-library/src/ReactTestingLibrary.re"},"range":{"start":{"line":25,"character":15},"end":{"line":25,"character":15}},"context":{"diagnostics":[]}}}
[server] Got a method textDocument/codeAction
[server] processing took 0.00905990600586ms
Sending response {"id": 5, "jsonrpc": "2.0", "error": {"code": -32603, "message": "Could not run bsb (ran /Users/neil/Projects/personal/bs-react-testing-library/node_modules/.bin/bsb -version). Output: "}}
Read message 
{"jsonrpc":"2.0","id":6,"method":"textDocument/documentSymbol","params":{"textDocument":{"uri":"file:///Users/neil/Projects/personal/bs-react-testing-library/src/ReactTestingLibrary.re"}}}
[server] Got a method textDocument/documentSymbol
[server] processing took 1.55901908875ms
Sending response {"id": 6, "jsonrpc": "2.0", "error": {"code": -32603, "message": "Could not run bsb (ran /Users/neil/Projects/personal/bs-react-testing-library/node_modules/.bin/bsb -version). Output: "}}
Read message 
{"jsonrpc":"2.0","id":7,"method":"textDocument/codeLens","params":{"textDocument":{"uri":"file:///Users/neil/Projects/personal/bs-react-testing-library/src/ReactTestingLibrary.re"}}}
[server] Got a method textDocument/codeLens
[server] processing took 0.00500679016113ms
Sending response {"id": 7, "jsonrpc": "2.0", "result": [{"range": {"start": {"line": 0, "character": 0}, "end": {"line": 0, "character": 0}}, "command": {"title": "Unable to load compilation data: Could not run bsb (ran /Users/neil/Projects/personal/bs-react-testing-library/node_modules/.bin/bsb -version). Output: ", "command": ""}}]}
Read message 
{"jsonrpc":"2.0","id":8,"method":"textDocument/codeLens","params":{"textDocument":{"uri":"file:///Users/neil/Projects/personal/bs-react-testing-library/src/ReactTestingLibrary.re"}}}
[server] Got a method textDocument/codeLens
[server] processing took 0.00500679016113ms
Sending response {"id": 8, "jsonrpc": "2.0", "result": [{"range": {"start": {"line": 0, "character": 0}, "end": {"line": 0, "character": 0}}, "command": {"title": "Unable to load compilation data: Could not run bsb (ran /Users/neil/Projects/personal/bs-react-testing-library/node_modules/.bin/bsb -version). Output: ", "command": ""}}]}
Read message 
{"jsonrpc":"2.0","id":9,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///Users/neil/Projects/personal/bs-react-testing-library/src/ReactTestingLibrary.re"},"position":{"line":28,"character":23}}}
[server] Got a method textDocument/hover
[server] processing took 0.0460147857666ms
Sending response {"id": 9, "jsonrpc": "2.0", "error": {"code": -32603, "message": "Could not run bsb (ran /Users/neil/Projects/personal/bs-react-testing-library/node_modules/.bin/bsb -version). Output: "}}
Read message 
{"jsonrpc":"2.0","method":"textDocument/didClose","params":{"textDocument":{"uri":"file:///Users/neil/Projects/personal/bs-react-testing-library/src/ReactTestingLibrary.re"}}}
Read message 
{"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"uri":"file:///Users/neil/Projects/personal/bs-react-testing-library/src/ReactTestingLibrary.re","languageId":"reason","version":1,"text":"open DomTestingLibrary;\n\nmodule FireEvent = {\n  include FireEvent;\n};\n\ntype renderResult;\ntype queries;\ntype renderOptions = {\n  .\n  \"container\": Js.undefined(Dom.element),\n  \"baseElement\": Js.undefined(Dom.element),\n  \"hydrate\": Js.undefined(bool),\n  \"wrapper\": Js.undefined(Dom.element),\n  \"queries\": Js.undefined(queries),\n};\n\n[@bs.module \"@testing-library/react\"]\nexternal cleanup: unit => unit = \"cleanup\";\n\n[@bs.module \"@testing-library/react\"]\nexternal _act: (unit => Js.undefined(Js.Promise.t('a))) => unit = \"act\";\n\nlet act = callback =>\n  _act(() => {\n    callback();\n    // (work-around) BuckleScript compiles `unit` to `0`, this will cause a warning as following:\n    // Warning: The callback passed to act(...) function must return undefined, or a Promise.\n    Js.Undefined.empty;\n  });\n\n[@bs.module \"@testing-library/react\"]\nexternal _render: (ReasonReact.reactElement, renderOptions) => renderResult =\n  \"render\";\n\n[@bs.get] external container: renderResult => Dom.element = \"container\";\n\n[@bs.get] external baseElement: renderResult => Dom.element = \"baseElement\";\n\n[@bs.send.pipe: renderResult]\nexternal _debug: (Js.undefined(Dom.element), Js.undefined(int)) => unit =\n  \"debug\";\n\n[@bs.send.pipe: renderResult] external unmount: unit => bool = \"unmount\";\n\n[@bs.send.pipe: renderResult]\nexternal rerender: ReasonReact.reactElement => unit = \"rerender\";\n\n[@bs.send.pipe: renderResult]\nexternal asFragment: unit => Dom.element = \"asFragment\";\n\n// ByLabelText\n[@bs.send.pipe: renderResult]\nexternal _getByLabelText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByLabelTextQuery.options)\n  ) =>\n  Dom.element =\n  \"getByLabelText\";\n\nlet getByLabelText = (~matcher, ~options=?, result) =>\n  _getByLabelText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _getAllByLabelText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByLabelTextQuery.options)\n  ) =>\n  array(Dom.element) =\n  \"getAllByLabelText\";\n\nlet getAllByLabelText = (~matcher, ~options=?, result) =>\n  _getAllByLabelText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _queryByLabelText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByLabelTextQuery.options)\n  ) =>\n  Js.null(Dom.element) =\n  \"queryByLabelText\";\n\nlet queryByLabelText = (~matcher, ~options=?, result) =>\n  _queryByLabelText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _queryAllByLabelText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByLabelTextQuery.options)\n  ) =>\n  array(Dom.element) =\n  \"queryAllByLabelText\";\n\nlet queryAllByLabelText = (~matcher, ~options=?, result) =>\n  _queryAllByLabelText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _findByLabelText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByLabelTextQuery.options)\n  ) =>\n  Js.Promise.t(Dom.element) =\n  \"findByLabelText\";\n\nlet findByLabelText = (~matcher, ~options=?, result) =>\n  _findByLabelText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _findAllByLabelText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByLabelTextQuery.options)\n  ) =>\n  Js.Promise.t(array(Dom.element)) =\n  \"findAllByLabelText\";\n\nlet findAllByLabelText = (~matcher, ~options=?, result) =>\n  _findAllByLabelText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n// ByPlaceholderText\n[@bs.send.pipe: renderResult]\nexternal _getByPlaceholderText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByPlaceholderTextQuery.options)\n  ) =>\n  Dom.element =\n  \"getByPlaceholderText\";\n\nlet getByPlaceholderText = (~matcher, ~options=?, result) =>\n  _getByPlaceholderText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _getAllByPlaceholderText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByPlaceholderTextQuery.options)\n  ) =>\n  array(Dom.element) =\n  \"getAllByPlaceholderText\";\n\nlet getAllByPlaceholderText = (~matcher, ~options=?, result) =>\n  _getAllByPlaceholderText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _queryByPlaceholderText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByPlaceholderTextQuery.options)\n  ) =>\n  Js.null(Dom.element) =\n  \"queryByPlaceholderText\";\n\nlet queryByPlaceholderText = (~matcher, ~options=?, result) =>\n  _queryByPlaceholderText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _queryAllByPlaceholderText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByPlaceholderTextQuery.options)\n  ) =>\n  array(Dom.element) =\n  \"queryAllByPlaceholderText\";\n\nlet queryAllByPlaceholderText = (~matcher, ~options=?, result) =>\n  _queryAllByPlaceholderText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _findByPlaceholderText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByPlaceholderTextQuery.options)\n  ) =>\n  Js.Promise.t(Dom.element) =\n  \"findByPlaceholderText\";\n\nlet findByPlaceholderText = (~matcher, ~options=?, result) =>\n  _findByPlaceholderText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _findAllByPlaceholderText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByPlaceholderTextQuery.options)\n  ) =>\n  Js.Promise.t(array(Dom.element)) =\n  \"findAllByPlaceholderText\";\n\nlet findAllByPlaceholderText = (~matcher, ~options=?, result) =>\n  _findAllByPlaceholderText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n// ByText\n[@bs.send.pipe: renderResult]\nexternal _getByText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByTextQuery.options)\n  ) =>\n  Dom.element =\n  \"getByText\";\n\nlet getByText = (~matcher, ~options=?, result) =>\n  _getByText(result, ~matcher, ~options=Js.Undefined.fromOption(options));\n\n[@bs.send.pipe: renderResult]\nexternal _getAllByText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByTextQuery.options)\n  ) =>\n  array(Dom.element) =\n  \"getAllByText\";\n\nlet getAllByText = (~matcher, ~options=?, result) =>\n  _getAllByText(result, ~matcher, ~options=Js.Undefined.fromOption(options));\n\n[@bs.send.pipe: renderResult]\nexternal _queryByText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByTextQuery.options)\n  ) =>\n  Js.null(Dom.element) =\n  \"queryByText\";\n\nlet queryByText = (~matcher, ~options=?, result) =>\n  _queryByText(result, ~matcher, ~options=Js.Undefined.fromOption(options));\n\n[@bs.send.pipe: renderResult]\nexternal _queryAllByText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByTextQuery.options)\n  ) =>\n  array(Dom.element) =\n  \"queryAllByText\";\n\nlet queryAllByText = (~matcher, ~options=?, result) =>\n  _queryAllByText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _findByText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByTextQuery.options)\n  ) =>\n  Js.Promise.t(Dom.element) =\n  \"findByText\";\n\nlet findByText = (~matcher, ~options=?, result) =>\n  _findByText(result, ~matcher, ~options=Js.Undefined.fromOption(options));\n\n[@bs.send.pipe: renderResult]\nexternal _findAllByText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByTextQuery.options)\n  ) =>\n  Js.Promise.t(array(Dom.element)) =\n  \"findAllByText\";\n\nlet findAllByText = (~matcher, ~options=?, result) =>\n  _findAllByText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n// ByAltText\n[@bs.send.pipe: renderResult]\nexternal _getByAltText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByAltTextQuery.options)\n  ) =>\n  Dom.element =\n  \"getByAltText\";\n\nlet getByAltText = (~matcher, ~options=?, result) =>\n  _getByAltText(result, ~matcher, ~options=Js.Undefined.fromOption(options));\n\n[@bs.send.pipe: renderResult]\nexternal _getAllByAltText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByAltTextQuery.options)\n  ) =>\n  array(Dom.element) =\n  \"getAllByAltText\";\n\nlet getAllByAltText = (~matcher, ~options=?, result) =>\n  _getAllByAltText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _queryByAltText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByAltTextQuery.options)\n  ) =>\n  Js.null(Dom.element) =\n  \"queryByAltText\";\n\nlet queryByAltText = (~matcher, ~options=?, result) =>\n  _queryByAltText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _queryAllByAltText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByAltTextQuery.options)\n  ) =>\n  array(Dom.element) =\n  \"queryAllByAltText\";\n\nlet queryAllByAltText = (~matcher, ~options=?, result) =>\n  _queryAllByAltText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _findByAltText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByAltTextQuery.options)\n  ) =>\n  Js.Promise.t(Dom.element) =\n  \"findByAltText\";\n\nlet findByAltText = (~matcher, ~options=?, result) =>\n  _findByAltText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _findAllByAltText:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByAltTextQuery.options)\n  ) =>\n  Js.Promise.t(array(Dom.element)) =\n  \"findAllByAltText\";\n\nlet findAllByAltText = (~matcher, ~options=?, result) =>\n  _findAllByAltText(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n// ByTitle\n[@bs.send.pipe: renderResult]\nexternal _getByTitle:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByTitleQuery.options)\n  ) =>\n  Dom.element =\n  \"getByTitle\";\n\nlet getByTitle = (~matcher, ~options=?, result) =>\n  _getByTitle(result, ~matcher, ~options=Js.Undefined.fromOption(options));\n\n[@bs.send.pipe: renderResult]\nexternal _getAllByTitle:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByTitleQuery.options)\n  ) =>\n  array(Dom.element) =\n  \"getAllByTitle\";\n\nlet getAllByTitle = (~matcher, ~options=?, result) =>\n  _getAllByTitle(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _queryByTitle:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByTitleQuery.options)\n  ) =>\n  Js.null(Dom.element) =\n  \"queryByTitle\";\n\nlet queryByTitle = (~matcher, ~options=?, result) =>\n  _queryByTitle(result, ~matcher, ~options=Js.Undefined.fromOption(options));\n\n[@bs.send.pipe: renderResult]\nexternal _queryAllByTitle:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByTitleQuery.options)\n  ) =>\n  array(Dom.element) =\n  \"queryAllByTitle\";\n\nlet queryAllByTitle = (~matcher, ~options=?, result) =>\n  _queryAllByTitle(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _findByTitle:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByTitleQuery.options)\n  ) =>\n  Js.Promise.t(Dom.element) =\n  \"findByTitle\";\n\nlet findByTitle = (~matcher, ~options=?, result) =>\n  _findByTitle(result, ~matcher, ~options=Js.Undefined.fromOption(options));\n\n[@bs.send.pipe: renderResult]\nexternal _findAllByTitle:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByTitleQuery.options)\n  ) =>\n  Js.Promise.t(array(Dom.element)) =\n  \"findAllByTitle\";\n\nlet findAllByTitle = (~matcher, ~options=?, result) =>\n  _findAllByTitle(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n// ByDisplayValue\n[@bs.send.pipe: renderResult]\nexternal _getByDisplayValue:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByDisplayValueQuery.options)\n  ) =>\n  Dom.element =\n  \"getByDisplayValue\";\n\nlet getByDisplayValue = (~matcher, ~options=?, result) =>\n  _getByDisplayValue(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _getAllByDisplayValue:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByDisplayValueQuery.options)\n  ) =>\n  array(Dom.element) =\n  \"getAllByDisplayValue\";\n\nlet getAllByDisplayValue = (~matcher, ~options=?, result) =>\n  _getAllByDisplayValue(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _queryByDisplayValue:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByDisplayValueQuery.options)\n  ) =>\n  Js.null(Dom.element) =\n  \"queryByDisplayValue\";\n\nlet queryByDisplayValue = (~matcher, ~options=?, result) =>\n  _queryByDisplayValue(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _queryAllByDisplayValue:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByDisplayValueQuery.options)\n  ) =>\n  array(Dom.element) =\n  \"queryAllByDisplayValue\";\n\nlet queryAllByDisplayValue = (~matcher, ~options=?, result) =>\n  _queryAllByDisplayValue(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _findByDisplayValue:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByDisplayValueQuery.options)\n  ) =>\n  Js.Promise.t(Dom.element) =\n  \"findByDisplayValue\";\n\nlet findByDisplayValue = (~matcher, ~options=?, result) =>\n  _findByDisplayValue(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _findAllByDisplayValue:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByDisplayValueQuery.options)\n  ) =>\n  Js.Promise.t(array(Dom.element)) =\n  \"findAllByDisplayValue\";\n\nlet findAllByDisplayValue = (~matcher, ~options=?, result) =>\n  _findAllByDisplayValue(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n// ByRole\n[@bs.send.pipe: renderResult]\nexternal _getByRole:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByRoleQuery.options)\n  ) =>\n  Dom.element =\n  \"getByRole\";\n\nlet getByRole = (~matcher, ~options=?, result) =>\n  _getByRole(result, ~matcher, ~options=Js.Undefined.fromOption(options));\n\n[@bs.send.pipe: renderResult]\nexternal _getAllByRole:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByRoleQuery.options)\n  ) =>\n  array(Dom.element) =\n  \"getAllByRole\";\n\nlet getAllByRole = (~matcher, ~options=?, result) =>\n  _getAllByRole(result, ~matcher, ~options=Js.Undefined.fromOption(options));\n\n[@bs.send.pipe: renderResult]\nexternal _queryByRole:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByRoleQuery.options)\n  ) =>\n  Js.null(Dom.element) =\n  \"queryByRole\";\n\nlet queryByRole = (~matcher, ~options=?, result) =>\n  _queryByRole(result, ~matcher, ~options=Js.Undefined.fromOption(options));\n\n[@bs.send.pipe: renderResult]\nexternal _queryAllByRole:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByRoleQuery.options)\n  ) =>\n  array(Dom.element) =\n  \"queryAllByRole\";\n\nlet queryAllByRole = (~matcher, ~options=?, result) =>\n  _queryAllByRole(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _findByRole:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByRoleQuery.options)\n  ) =>\n  Js.Promise.t(Dom.element) =\n  \"findByRole\";\n\nlet findByRole = (~matcher, ~options=?, result) =>\n  _findByRole(result, ~matcher, ~options=Js.Undefined.fromOption(options));\n\n[@bs.send.pipe: renderResult]\nexternal _findAllByRole:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByRoleQuery.options)\n  ) =>\n  Js.Promise.t(array(Dom.element)) =\n  \"findAllByRole\";\n\nlet findAllByRole = (~matcher, ~options=?, result) =>\n  _findAllByRole(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n// ByTestId\n[@bs.send.pipe: renderResult]\nexternal _getByTestId:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByTestIdQuery.options)\n  ) =>\n  Dom.element =\n  \"getByTestId\";\n\nlet getByTestId = (~matcher, ~options=?, result) =>\n  _getByTestId(result, ~matcher, ~options=Js.Undefined.fromOption(options));\n\n[@bs.send.pipe: renderResult]\nexternal _getAllByTestId:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByTestIdQuery.options)\n  ) =>\n  array(Dom.element) =\n  \"getAllByTestId\";\n\nlet getAllByTestId = (~matcher, ~options=?, result) =>\n  _getAllByTestId(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _queryByTestId:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByTestIdQuery.options)\n  ) =>\n  Js.null(Dom.element) =\n  \"queryByTestId\";\n\nlet queryByTestId = (~matcher, ~options=?, result) =>\n  _queryByTestId(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _queryAllByTestId:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByTestIdQuery.options)\n  ) =>\n  array(Dom.element) =\n  \"queryAllByTestId\";\n\nlet queryAllByTestId = (~matcher, ~options=?, result) =>\n  _queryAllByTestId(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\n[@bs.send.pipe: renderResult]\nexternal _findByTestId:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByTestIdQuery.options)\n  ) =>\n  Js.Promise.t(Dom.element) =\n  \"findByTestId\";\n\nlet findByTestId = (~matcher, ~options=?, result) =>\n  _findByTestId(result, ~matcher, ~options=Js.Undefined.fromOption(options));\n\n[@bs.send.pipe: renderResult]\nexternal _findAllByTestId:\n  (\n    ~matcher: [@bs.unwrap] [\n                | `Str(string)\n                | `RegExp(Js.Re.t)\n                | `Func((string, Dom.element) => bool)\n              ],\n    ~options: Js.undefined(ByTestIdQuery.options)\n  ) =>\n  Js.Promise.t(array(Dom.element)) =\n  \"findAllByTestId\";\n\nlet findAllByTestId = (~matcher, ~options=?, result) =>\n  _findAllByTestId(\n    result,\n    ~matcher,\n    ~options=Js.Undefined.fromOption(options),\n  );\n\nlet render =\n    (\n      ~baseElement=?,\n      ~container=?,\n      ~hydrate=?,\n      ~wrapper=?,\n      ~queries=?,\n      element,\n    ) => {\n  let baseElement_ =\n    switch (container) {\n    | Some(container') => Js.Undefined.return(container')\n    | None => Js.Undefined.fromOption(baseElement)\n    };\n  let container_ = Js.Undefined.fromOption(container);\n\n  _render(\n    element,\n    {\n      \"baseElement\": baseElement_,\n      \"container\": container_,\n      \"hydrate\": Js.Undefined.fromOption(hydrate),\n      \"wrapper\": Js.Undefined.fromOption(wrapper),\n      \"queries\": Js.Undefined.fromOption(queries),\n    },\n  );\n};\n\nlet debug = (~el=?, ~maxLengthToPrint=?, ()) =>\n  _debug(\n    Js.Undefined.fromOption(el),\n    Js.Undefined.fromOption(maxLengthToPrint),\n  );\n"}}}
Sending notification {"jsonrpc": "2.0", "method": "window/showMessage", "params": {"type": 1, "message": "Could not run bsb (ran /Users/neil/Projects/personal/bs-react-testing-library/node_modules/.bin/bsb -version). Output: "}}
Read message 
{"jsonrpc":"2.0","id":10,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///Users/neil/Projects/personal/bs-react-testing-library/src/ReactTestingLibrary.re"},"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"context":{"diagnostics":[]}}}
[server] Got a method textDocument/codeAction
[server] processing took 0.00596046447754ms
Sending response {"id": 10, "jsonrpc": "2.0", "error": {"code": -32603, "message": "Could not run bsb (ran /Users/neil/Projects/personal/bs-react-testing-library/node_modules/.bin/bsb -version). Output: "}}
Read message 
{"jsonrpc":"2.0","id":11,"method":"textDocument/documentSymbol","params":{"textDocument":{"uri":"file:///Users/neil/Projects/personal/bs-react-testing-library/src/ReactTestingLibrary.re"}}}
[server] Got a method textDocument/documentSymbol
[server] processing took 0.00500679016113ms
Sending response {"id": 11, "jsonrpc": "2.0", "error": {"code": -32603, "message": "Could not run bsb (ran /Users/neil/Projects/personal/bs-react-testing-library/node_modules/.bin/bsb -version). Output: "}}
Read message 
{"jsonrpc":"2.0","id":12,"method":"textDocument/codeLens","params":{"textDocument":{"uri":"file:///Users/neil/Projects/personal/bs-react-testing-library/src/ReactTestingLibrary.re"}}}
[server] Got a method textDocument/codeLens
[server] processing took 0.00500679016113ms
Sending response {"id": 12, "jsonrpc": "2.0", "result": [{"range": {"start": {"line": 0, "character": 0}, "end": {"line": 0, "character": 0}}, "command": {"title": "Unable to load compilation data: Could not run bsb (ran /Users/neil/Projects/personal/bs-react-testing-library/node_modules/.bin/bsb -version). Output: ", "command": ""}}]}
Read message 
{"jsonrpc":"2.0","id":13,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///Users/neil/Projects/personal/bs-react-testing-library/src/ReactTestingLibrary.re"},"range":{"start":{"line":25,"character":15},"end":{"line":25,"character":15}},"context":{"diagnostics":[]}}}
[server] Got a method textDocument/codeAction
[server] processing took 0.00619888305664ms
Sending response {"id": 13, "jsonrpc": "2.0", "error": {"code": -32603, "message": "Could not run bsb (ran /Users/neil/Projects/personal/bs-react-testing-library/node_modules/.bin/bsb -version). Output: "}}

Any help or ideas are greatly appreciated!

wyze commented 4 years ago

Rebooted my laptop, removed the extension through terminal, then opened a project and reinstalled the extension through Code, and everything is working. Not sure what the deal was.

mellson commented 4 years ago

If others run into this my problem was a space in the path - #449

paseaf commented 2 years ago

I ran into this problem on Ubuntu 20. The solution was restart VS Code :D