标签: haskell-language-server

与 HLS(最新)一起安装的 GHCup 无法与用于 Intellisense 的 VS Code HLS 扩展一起使用

上下文:
我运行 Windows 计算机,并使用 GHCup 安装了 Haskell 工具链。最初,我对设置过程中提到的所有选项都选择了“Y”。Stack、Cabal、ghc(8.10.7 - 推荐)已工作并且正在路径上(安装参考链接附在最后)。

示例项目结构(“堆栈新项目”):
在此输入图像描述

问题:
Haskell 语言服务器扩展不提供 Intellisense。在我第一次安装后的一小段时间里确实如此,但之后就再也没有出现过。

我尝试过但不起作用的事情:

  1. 让VS Code通过GHCup管理HLS,随时升级,但没有效果。
    在此输入图像描述

  2. 尝试重新安装所有内容,但这也不起作用。

  3. 使用 ghcup 堆栈附带的最新/相同版本的 ghc。(堆栈 ghc ---版本 = 9.0.2,ghc --版本 = 9.0.2)

注意:我也执行了以下命令,具有不同的组合(但以某种逻辑上相关的顺序)

  • ghcup 安装 ghc 9.0.2(及最新版本)
  • ghcup 未设置 ghc 8.10.7
  • ghcup 设置 ghc 9.0.2(及最新版本)
  • ghcup rm ghc 8.10.7

我最终得到的只是这条神秘的消息(如下所示。“testing-p”是项目名称)。

在此输入图像描述

安装参考:
https://betterprogramming.pub/haskell-vs-code-setup-in-2021-6267cc991551

haskell visual-studio-code vscode-extensions haskell-language-server ghcup

6
推荐指数
0
解决办法
3963
查看次数

vscode Haskell 扩展未检测到新函数

我安装了以下适用于 Haskell 的 Visual Studio Code 扩展:

在此输入图像描述

假设我创建了一个新的堆栈项目:

stack new vscode-red-squiggly-test
Run Code Online (Sandbox Code Playgroud)

并设置Lib.hs如下Main.hs

在此输入图像描述

这构建并运行得很好:

stack build
stack exec vscode-red-squiggly-test-exe
Run Code Online (Sandbox Code Playgroud)

现在,如果我添加一个项目xyzLib.hs在其中引用它Main.hs

在此输入图像描述

如您所见,下面出现了一条红色的波浪线xyz

现在,我可以很好地构建并运行该程序。

当我将鼠标悬停在波浪形上时的提示如下:

在此输入图像描述

如果我关闭 vscode,运行stack build,然后通过 重新启动 vscode code .,波浪就会消失。

那么...有没有一种方法可以让波浪消失而无需重新启动 vscode?

建议的快速修复是将以下内容添加到文件中:

{-# OPTIONS_GHC -Wno-deferred-out-of-scope-variables #-}
Run Code Online (Sandbox Code Playgroud)

然而,我显然想避免这种情况,因为它关闭了检测真正未定义变量的好功能。

笔记

  • 我的 Haskell 环境在 Windows 上的 WSL 中运行。
  • vscode 实例在 Windows 上运行,通过 .vscode 从内部启动code .

更新

  • 我已将此作为问题提交。

haskell visual-studio-code haskell-language-server

1
推荐指数
1
解决办法
1387
查看次数