需安装Stack或Cabal及匹配版本的HLS,并在VSCode中配置官方扩展与服务器路径,确保项目含stack.yaml或.cabal文件,最后验证类型提示与跳转功能正常。

如果您希望在 VSCode 中高效开发 Haskell 项目,需正确配置 Haskell Language Server(HLS)以及构建工具 Stack 或 Cabal。以下是完成该配置的具体步骤:
本文运行环境:MacBook Pro,macOS Sequoia。
为支持 HLS 运行,需先在系统中安装 GHC、Cabal 和/或 Stack,并确保其可被 VSCode 访问。HLS 依赖于这些底层工具来解析项目结构与类型信息。
1、打开终端,执行 brew install haskell-stack 安装 Stack(推荐方式)。
2、运行 stack setup 自动下载并安装匹配的 GHC 版本。
3、可选:如需使用 Cabal,执行 brew install ghc cabal-install 并运行 cabal update。
HLS 是 VSCode 中提供语法高亮、跳转定义、类型提示等核心功能的语言服务器,必须与当前项目的 GHC 版本严格匹配。
1、进入任意 Haskell 项目根目录,执行 stack install hls(若使用 Stack 构建)。
2、若项目使用 Cabal,改用 cabal install hls,并确保 ~/.cabal/bin 已加入 PATH。
3、验证安装:在终端运行 haskell-language-server --version,确认输出包含版本号及 GHC 绑定信息。
VSCode 需通过官方扩展识别 HLS 并启动对应语言服务器进程,同时避免与旧版 Haskell 扩展冲突。
1、在扩展市场中卸载所有非官方的 Haskell 相关扩展,仅保留 Haskell (Haskell Language Server)(作者:haskell.haskell)。
2、打开 VSCode 设置(Cmd+,),搜索 haskell server path,将值设为 haskell-language-server(若已全局可执行)或指定完整路径如 /Users/username/.local/bin/haskell-language-server。
3、在设置中启用 Haskell > Trace: Server 以在输出面板中查看 HLS 启动日志。
VSCode 依赖 .cabal 文件或 stack.yaml 判断项目类型,只有正确识别后才会激活 HLS 功能。
1、在空目录中执行 stack new my-haskell-project 创建标准 Stack 项目。
2、用 VSCode 打开该目录,等待右下角状态栏出现 HLS ready 提示。
3、打开 src/Lib.hs,将光标悬停在函数名上,确认是否显示类型签名;尝试 Cmd+Click 跳转至 Data.List 等模块定义。
当 HLS 无法加载时,通常因 GHC 版本不匹配、项目配置缺失或权限问题导致,需针对性排查。
1、若输出面板显示 Failed to start language server: cannot satisfy -package-id,说明 HLS 编译时所用 GHC 与项目不一致,应删除 .stack-work 并重新运行 stack build。
2、若提示 Could not find project config file (stack.yaml or cabal.project),在项目根目录手动创建空的 stack.yaml 或 cabal.project 文件。
3、在 macOS 上若遇到权限拒绝错误,检查 haskell-language-server 是否被 Gatekeeper 阻止,执行 xattr -d com.apple.quarantine /path/to/haskell-language-server 解除隔离。
以上就是VSCode for Haskell:配置HLS和Stack/Cabal的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号