sourcegraph / sourcegraph-public-snapshot

Code AI platform with Code Search & Cody
https://sourcegraph.com
Other
10.1k stars 1.27k forks source link

The identifier information popup doesn't consistently appear #147

Closed neongreen closed 5 years ago

neongreen commented 6 years ago

Steps to reproduce:

  1. Install the Chrome extension

  2. Enable the Haskell Sourcegraph extension

  3. Go to https://github.com/wireapp/wire-server/pull/469/files and hover over a bunch of identifiers

Full list of extensions I have enabled ```json { "extensions": { "langserver/typescript": true, "langserver/bash": true, "langserver/clojure": true, "langserver/cpp": true, "langserver/cs": true, "langserver/css": true, "langserver/go": true, "langserver/java": true, "langserver/html": true, "langserver/javascript": true, "langserver/lua": true, "langserver/ocaml": true, "langserver/php": true, "langserver/python": true, "langserver/r": true, "langserver/ruby": true, "langserver/rust": true, "langserver/swift": true, "sourcegraph/codecov": true, "langserver/haskell": true, "langserver/dockerfile": true }, "basicCodeIntel.enabled": false } ```

Expected:

A popup should appear!

Actual:

After like 10 hovers the popup stops appearing. Reloading the tab doesn't help.

Sometimes the popup appears but then immediately disappears. Sometimes it appears but there's a spinner inside that keeps spinning indefinitely. It's weird.

neongreen commented 6 years ago

Note: I restarted the browser and now the popup always appears but keeps spinning. If I click on "Go to definition", another spinner appears.

chrismwendt commented 6 years ago

@neongreen Thanks for reporting! This repository is taking a while to compile (not surprising since it depends on lens 😄), and it's exceeding the current timeout of 3 minutes.

I'm working on fixing this by resetting the deadline to 3 minutes from now each time a line is emitted to stderr or a log message is sent. haskell-ide-engine logs messages to stderr during compilation, so this should fix the issue.

I'm also going to look into leaving the repository on disk instead of wiping it for each connection in lsp-adapter. That should leave the .stack-work directory around and speed up the initialization time for subsequent visits to the page.

chrismwendt commented 6 years ago

I bumped the timeout, but now it's OOMing because the machine running the Haskell language server is rather underpowered for this workload. We have plans to improve the infrastructure behind code intelligence for Haskell (and other languages) for a while. I'll post back here with any updates.

sqs commented 5 years ago

We are unlikely to be able to fix this before December 2018 at the earliest (see roadmap https://docs.sourcegraph.com/dev/roadmap#december-2018). We will, however, be shipping significant improvements to how lang support is built on Sourcegraph, so someone (you?) could contribute better Haskell support in sooner.

sqs commented 5 years ago

We removed the Haskell experimental lang server that caused this (see https://about.sourcegraph.com/blog/java-php-experimental_language_servers-temporarily-unavailable).

The preferred way to get Haskell code intelligence is (for now) to use the basic-code-intel extension; see https://about.sourcegraph.com/blog/sourcegraph-3.0-beta-is-now-available#basic-code-intelligence-for-all-languages for info. (On Feb 4, 5 days from when I'm currently writing this, Sourcegraph 3.0 will be released, at which point you can click through on that blog post to the code intelligence section for the 3.0 release.)