LSP doesn't work unless re-activate it

I’m testing my Haskell LSP extension on Nova 10b4/10b3/10b2/10b1/9.6. It doesn’t work unless I manually re-activate the extension.

Here is what I did:

  1. Open my extension folder in Nova, click Extension → Activate Project as Extension.
  2. Open a new Haskell project in Nova, also open the extension terminal to see the log.
  3. After the log has the output “Started LSP server in 0.00s”, try to use the “hover” feature of LSP, and there is nothing shown.
  4. Click Extension → Activate Project as Extension again, and wait for a second. This time the “hover” feature of LSP works.

After I re-activate the project, the extension console has two error messages like:

lsp:incoming message parse error. {"jsonrpc":"2.0","id":2,"result":null} Error in $: Failed in looking up response type of Object (fromList [("id",Number 2.0),("jsonrpc",String "2.0"),("result",Null)])

Also tried:

  1. Install my extension, and open a Haskell project. The “hover” feature doesn’t work.
  2. Use the TypeScript extension and the Rust extension from extension library, both works well.

Update

In 10b3, 10b2 and 10b1, 9.6 the extension log shows:

Sending JSON-RPC request: 13 textDocument/hover
{
  "jsonrpc" : "2.0",
  "id" : 13,
  "method" : "textDocument\/hover",
  "params" : {
    "textDocument" : {
      "uri" : "file:\/\/\/tmp\/haskell_try\/src\/MyLib.hs"
    },
    "position" : {
      "line" : 3,
      "character" : 13
    }
  }
}

which seems to indicate that the LSP client did send the request.

Update 2

Also tried:

  1. Open a haskell project first.
  2. Open my haskell LSP extension, and click Extension → Activate Project as Extension.
  3. Wait for a second, and the “hover” feature works.