vscode Haskell 扩展未检测到新函数

dha*_*ech 1 haskell visual-studio-code haskell-language-server

我安装了以下适用于 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 .

更新

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

Ari*_*ham 5

这无助于解决您的问题,这可能是 Haskell 语言服务器错误,但在 VS Code 中重新启动 Haskell 语言服务器的最快方法是:

  • Ctrl+ Shift+P
  • 开始输入,直到找到:Haskell: Restart Haskell LSP Server

这解决了许多 HLS 问题,不幸的是,这通常是必要的,因为 HL 的生产环境还不太稳定。

哈斯克尔快乐!