intellij-lsp icon indicating copy to clipboard operation
intellij-lsp copied to clipboard

support Haskell via ghcide ?

Open simonmichael opened this issue 5 years ago • 1 comments

Thanks for intellij-lsp. ghcide is the most recent LSP server for Haskell. Should I expect intellij-lsp to work with it ?

I've added a server definition in Language Server Protocol settings: Executable, Extension hs, Path /Users/simon/.local/bin/ghcide, Args --lsp. (This works when run at the command line, and I've successfully used this LSP server with emacs.)

At startup, LSP Support gives this stack trace:

java.lang.IndexOutOfBoundsException: Wrong line: 250. Available lines count: 250
	at com.intellij.openapi.editor.impl.LineSet.checkLineIndex(LineSet.java:212)
	at com.intellij.openapi.editor.impl.LineSet.getLineStart(LineSet.java:193)
	at com.intellij.openapi.editor.impl.DocumentImpl.getLineStartOffset(DocumentImpl.java:1003)
	at com.intellij.util.DocumentUtil.getLineTextRange(DocumentUtil.java:99)
	at com.github.gtache.lsp.utils.DocumentUtils$.$anonfun$LSPPosToOffset$1(DocumentUtils.scala:82)
	at com.github.gtache.lsp.utils.DocumentUtils$.$anonfun$LSPPosToOffset$1$adapted(DocumentUtils.scala:78)
	at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:807)
	at com.github.gtache.lsp.utils.ApplicationUtils$.computableReadAction(ApplicationUtils.scala:26)
	at com.github.gtache.lsp.utils.DocumentUtils$.LSPPosToOffset(DocumentUtils.scala:78)
	at com.github.gtache.lsp.editor.EditorEventManager.$anonfun$diagnostics$3(EditorEventManager.scala:454)
	at com.github.gtache.lsp.editor.EditorEventManager.$anonfun$diagnostics$3$adapted(EditorEventManager.scala:439)
	at scala.collection.Iterator.foreach(Iterator.scala:937)
	at scala.collection.Iterator.foreach$(Iterator.scala:937)
	at scala.collection.AbstractIterator.foreach(Iterator.scala:1425)
	at scala.collection.IterableLike.foreach(IterableLike.scala:70)
	at scala.collection.IterableLike.foreach$(IterableLike.scala:69)
	at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
	at com.github.gtache.lsp.editor.EditorEventManager.$anonfun$diagnostics$1(EditorEventManager.scala:439)
	at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:309)
	at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.doRun(LaterInvocator.java:441)
	at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:424)
	at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:407)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:908)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:781)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:424)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:698)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:423)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

When I open a .hs file, I see the green dot in the status bar, and Show connected files shows all the open hs files, and Show timeouts shows no timeouts.

(An older Haskell issue: https://github.com/gtache/intellij-lsp/issues/35)

simonmichael avatar Dec 31 '19 00:12 simonmichael

PS: but, I think it's not working, because cmd-clicking on any symbol always says "Cannot find declaration to go to".

I haven't enabled any other Haskell plugins.

simonmichael avatar Dec 31 '19 00:12 simonmichael