VS Code Haskell扩展无法识别GHC版本问题求助
VS Code Haskell扩展无法识别Stack管理的GHC版本解决方案
问题背景
在VS Code中使用Haskell扩展时出现无法找到GHC版本的错误,但在终端手动执行以下命令可正常返回GHC 9.8.2版本:
stack --stack-yaml /home/user/haskell/h5/stack.yaml exec ghc -- --numeric-version
项目的stack.yaml配置如下:
snapshot: ghc-9.8.2 packages: - .
解决步骤
指定扩展的GHC路径
打开VS Code设置(Ctrl+,),搜索Haskell: GHC Path,将其设置为Stack为当前项目管理的GHC绝对路径。可通过以下命令获取该路径:stack --stack-yaml /home/user/haskell/h5/stack.yaml exec which ghc示例路径:
/home/user/.stack/programs/x86_64-linux/ghc-9.8.2/bin/ghc确保VS Code继承正确的Shell环境
- 关闭VS Code,从能正常执行Stack命令的终端中启动VS Code(输入
code .),让VS Code继承该终端的环境变量。 - 检查VS Code的
terminal.integrated.env.<你的系统>设置(如Linux对应terminal.integrated.env.linux),确保PATH包含Stack的安装路径(通常是~/.stack/bin)。
- 关闭VS Code,从能正常执行Stack命令的终端中启动VS Code(输入
重启LSP服务与VS Code
打开命令面板(Ctrl+Shift+P),执行Haskell: Restart Haskell LSP Server,之后重启VS Code使配置生效。统一项目与全局Stack配置
执行stack config get resolver查看全局resolver版本,若与项目的ghc-9.8.2不一致,在项目目录下执行以下命令设置本地resolver:stack config set resolver ghc-9.8.2 --local更新Haskell扩展
打开VS Code扩展市场,找到Haskell扩展,安装最新版本,新版本可能修复了路径识别相关的bug。
内容的提问来源于stack exchange,提问作者LetMeSOThat4U
相关产品推荐
相关产品推荐

