【问题标题】:VSCode no intellisense in haskell extension for additional modulesVSCode 在附加模块的 Haskell 扩展中没有智能感知
【发布时间】:2021-04-04 21:52:32
【问题描述】:

有没有办法让智能感知适用于其他模块(前奏之外的任何东西),比如 VS Code 中的 Quicktest 或 Random? 我正在使用:

  • VSCode:版本 1.55.0
  • 扩展“Haskell v1.2.0”(带有 haskel-language-server)
  • ghci:GHCi, version 8.10.3: https://www.haskell.org/ghc/
  • 堆栈:Version 2.5.1, Git revision d6ab861544918185236cf826cb2028abb266d6d5 x86_64 hpack-0.33.0
  • 直接在 Windows10 和 WSL2 (Debian) 上试用。

VSCode 说:

Could not find module ‘Test.QuickCheck’
It is not a module in the current program, or in any known package.not found

所以,没有自动完成等。

我认为原因是我通过stack 安装了 Quicktest,并且该堆栈使用其自己的“隔离”ghc。所以我寻找一种方法来配置 VSCode 扩展以使用我的stack 环境的 ghc,但没有成功。

我也对黑线鳕和阴谋集团感到刺痛,但没有成功。

是否有人使用 VS-Code 编写 haskell 代码并具有自动完成功能、鼠标悬停文档、僚机等?

【问题讨论】:

  • 我认为问题在于 LSP 插件无法提取测试套件中的依赖项。我发现的一个相当烦人的解决方法是将测试依赖项移动到 package.yaml 中的全局依赖项中。另一个是generate an hie.yaml,例如使用implicit-hie,以便识别多个子组件中的包。
  • @Simon Shineimplicit-hie 很酷,可以解决我的环境管理问题,但我的主要问题是 VSCode 中的智能感知不支持前奏之外的任何内容(如随机、快速测试等),添加了要提问的屏幕截图。
  • 你是说 VSCode 不支持 Prelude 在测试套件中之外的任何东西,还是一般
  • 一般来说。我在编辑器中没有自动完成等。

标签: haskell visual-studio-code haskell-stack


【解决方案1】:

我在一些本地模块上遇到了这个问题。我可以通过在项目的根目录中放置一个hie.yaml 文件并重新加载 VSCode 来修复它。诚然,我真的不知道它的作用。我使用implicit-hie 生成它,您可以使用stack 安装它。

【讨论】:

  • 我已经尝试过了,在@Simon Shine 指出之后,它适用于本地模块,但不适用于“第三方东西”,你是否在 vs 代码编辑器中获得了自动完成 + 没有错误当你导入Random ...
  • 哦,对不起,我一定完全掩盖了这一点……我明白你的意思了。我尝试导入System.Random,它告诉我它来自一个隐藏的包。通过将random 添加到我的.cabal 文件中的build-depends 条目并重新加载,我能够使其完全正常工作。我还跑了stack install random以防万一?
  • 我现在已经尝试过 stack + hie.yaml, + cabal。随机安装和/或添加随机作为包......是的,它编译并且是的它运行。但是编辑器中的情况仍然是一样的......没有自动完成,没有鼠标悬停的文档(僚机),以及输出错误。你在 VS-Code 中有“编辑器支持”吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-02
  • 2016-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-02
相关资源
最近更新 更多