Skip to content
This repository has been archived by the owner on Jun 15, 2023. It is now read-only.

support Haskell via ghcide ? #125

Open
simonmichael opened this issue Dec 31, 2019 · 1 comment
Open

support Haskell via ghcide ? #125

simonmichael opened this issue Dec 31, 2019 · 1 comment
Labels

Comments

@simonmichael
Copy link

simonmichael commented Dec 31, 2019

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: #35)

@simonmichael
Copy link
Author

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.

@gtache gtache added the bug label Feb 2, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

2 participants