【发布时间】:2018-09-09 11:04:36
【问题描述】:
我无法让我的 VS Code 显示 Haskell 类型的悬停。此外,没有自动完成功能。我所看到的只是一个小的空框,就在我用鼠标悬停的元素上方(参见关于“getArgs”函数的小框)。
我使用的扩展是“Haskelly”,虽然我也尝试过 Atom 编辑器的扩展,结果相似。
以前有没有人遇到过类似的问题? 我用:
- VS 代码:1.27.1
- ghc:8.0.2
- ghc-mod: 5.8.0.0
- 哈斯凯利:0.5.4
- 内部:0.1.32
- 操作系统:Linux Mint 19
免责声明:我对 Haskell 很陌生,所以可能是我在这里做了一些非常错误的事情。抱歉,还在学习中;)。
编辑:
正如评论中所建议的,我已切换到 Haskero 并设法取得了一点进展。有一个类型悬停,但它包含一些垃圾。
可能很重要的一件事:我正在关注本教程:https://www.youtube.com/watch?v=a7R-2vtPLDM,所以我使用 cabal,而不是 stack。这有关系吗?
编辑 2:
我尝试过使用堆栈,但结果更糟。 VS Code 扩展因以下代码崩溃:
The following GHC options are incompatible with GHCi and have not been passed to it: -threaded
Configuring GHCi with the following packages: MyProject
Warning: Didn't find expected autogen file:
<path_to_project>/MyProject/.stack-work/dist/x86_64-linux/Cabal-2.2.0.1/build/autogen/cabal_macros.h
Warning: Didn't find expected autogen file:
<path_to_project>/MyProject/.stack-work/dist/x86_64-linux/Cabal-2.2.0.1/build/MyProject-exe/autogen/cabal_macros.h
<home>/.stack/programs/x86_64-linux/ghc-8.4.3/lib/ghc-8.4.3/package.conf.d/package.cache: GHC.PackageDb.readPackageDb: inappropriate type (Not a valid Unicode code point!)
Code: -32603
编辑 3:
还是不行,但离得近了一点。对于内置值和在同一个包中,我可以看到漂亮的类型悬停。但是,当在其他模块中引用时,我看到模块中的值出现错误(即使它们彼此相邻并且一切都编译得很好):
有什么办法可以帮助解决这个问题吗?
【问题讨论】:
-
我对@987654325@ 扩展有更好的体验:“悬停类型”和自动完成功能都是开箱即用的。它还依赖于 Intero(它获取类型和自动完成),但似乎效果更好。
-
好的 - 我已经向前走了几步,但又碰到了另一堵墙。内容已更新。
-
这两个扩展只适用于使用 Stack 构建的项目。 Installation instruction for Haskero。确保
stack build正常工作,并使用stack build intero安装Intero。之后应该工作。不要使用阴谋集团。 -
好吧,我想还有一件事我不明白。我应该在我使用的每个项目中安装 intero,还是有办法“全局”安装一次?
-
根据Haskelly documentation,intero 可以使用
stack build intero命令在本地安装,也可以通过stack install intero全局安装
标签: haskell visual-studio-code ide code-completion