VSCode配置Haskell编译器 函数式编程VSCode环境快速集成

风宇同学_3507

风宇同学_3507

2026-04-17

1033人浏览

原创

ghcup是当前最可靠、最可控的haskell工具链安装方式,可统一管理ghc、cabal和hls,避免版本错配;必须配置中科大镜像源加速国内安装,windows需在powershell中设置环境变量并启用执行策略,安装时勾选hls、指定非c盘路径、自动写入path,vscode中须手动配置haskell.serverexecutablepath路径,且项目根目录需含.cabal或stack.yaml文件才能触发hls。

vscode配置haskell编译器 函数式编程vscode环境快速集成

ghcup 是当前最可靠、最可控的 Haskell 工具链安装方式,比 stack 或旧版 Haskell Platform 更适合 VSCode 集成。它能统一管理 ghc、cabal 和 haskell-language-server(HLS),避免版本错配导致的“有提示但不工作”问题。

用 ghcup 安装并指定中科大镜像源

国内直连官方源极慢甚至失败,必须换源。Windows 用户在 PowerShell(非管理员)中执行:

$env:BOOTSTRAP_HASKELL_YAML = 'https://mirrors.ustc.edu.cn/ghcup/ghcup-metadata/ghcup-latest.yaml'
Set-ExecutionPolicy Bypass -Scope Process -Force
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
Invoke-Command -ScriptBlock ([ScriptBlock]::Create((Invoke-WebRequest https://mirrors.ustc.edu.cn/ghcup/sh/bootstrap-haskell.ps1 -UseBasicParsing))) -ArgumentList $true
  • 执行后一路按 Enter,关键步骤是安装时勾选 HLS(Haskell Language Server),否则 VSCode 启动后无类型提示
  • 安装路径建议避开 C:\,例如设为 D:\ghcup,避免权限和空间问题
  • 务必选“Yes”让 ghcup 自动写入 PATH,否则 VSCode 终端里 ghc --version 会报 command not found

VSCode 中手动指定 haskell-language-server-wrapper 路径

即使装了 HLS,VSCode 的 Haskell 插件也常因自动探测失败而静默降级为“仅语法高亮”。解决方法是强制指定可执行文件路径:

VSCode
VSCode

避免常见的 VSCode 错误——设置冲突、调试器配置和扩展冲突。

下载
  • 打开 VSCode 设置(Ctrl+, ),搜索 haskell.serverExecutablePath
  • 填入完整路径,例如 Windows 下是:D:\ghcup\bin\haskell-language-server-wrapper.exe
  • Linux/macOS 用户路径类似:~/.ghcup/bin/haskell-language-server-wrapper
  • 如果不确定路径,可在终端运行 which haskell-language-server-wrapper 或 ghcup list 查看已安装 HLS 版本对应路径

项目根目录必须含 .cabal 或 stack.yaml

VSCode 的 Haskell 插件依赖项目元数据启动语言服务器。空文件夹或仅含 .hs 文件不会触发 HLS 加载,表现为“悬停无类型、跳转失效、错误不标红”。

  • 新建项目推荐用 cabal init(确保已安装 cabal)或 ghcup install cabal 后再执行
  • 若已有代码,可在项目根目录手动生成最小 demo.cabal:
name:                demo
version:             0.1.0.0
build-type:          Simple
cabal-version:       >=1.10

executable demo
  main-is:             Main.hs
  build-depends:       base >=4.7 && 
  • 保存后重启 VSCode 窗口(不是重载窗口),或右键 demo.cabal → “Initialize Haskell project”
  • 不要用 stack new 创建的项目直接开根目录——它默认不含 .cabal,需先 stack init 或手动补全

runhaskell 运行单文件 vs stack exec 运行可执行目标

VSCode 内置终端无法直接识别 cabal run 或 stack run,需配置任务或手动调用。常见混淆点:

  • 临时测试单个 Main.hs:终端中直接运行 runhaskell Main.hs,无需构建
  • 运行已定义的可执行目标(如 .cabal 中的 executable):必须先 cabal build,再 cabal exec demo-exe
  • 用 stack 管理的项目:运行前先 stack build,然后 stack exec demo-exe(名字来自 stack.yaml 中的 executables 字段)
  • VSCode 任务配置中,command 值应为 runhaskell 或 cabal exec,不能写成 cabal run(该命令在部分版本中不接受参数)
HLS 对 GHC 版本极其敏感,ghcup install ghc 9.6.4 后必须用 ghcup install hls 9.6.4 匹配安装,差一个小版本都可能导致“服务器崩溃后自动重启”循环。这个细节在初始化项目时最容易被跳过。

相关文章

编程速学教程(入门课程)
编程速学教程(入门课程)

编程怎么学习?编程怎么入门?编程在哪学?编程怎么学才快?不用担心,这里为大家提供了编程速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

vscode vscode环境配置

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
vscode是什么_vscode怎么安装配置
vscode是什么_vscode怎么安装配置

VS Code(Visual Studio Code)是一款免费、开源的跨平台代码编辑器,由微软开发和维护。它被广泛用于软件开发和编程,支持多种编程语言和框架。VS Code 同时提供了丰富的功能和扩展性,使开发者可以高效地编写、编辑和调试代码。

2023.06.30

1195

18

vscode怎么运行代码
vscode怎么运行代码

vscode是一个运行于MacOS X、Windows和Linux之上的,针对于编写现代Web和云应用的跨平台源代码编辑器;vscode免费而且功能强大,对JavaScript和NodeJS的支持非常好,自带很多功能,例如代码格式化,代码智能提示补全、Emmet插件等。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.21

2412

3

vscode使用的框架介绍
vscode使用的框架介绍

VSCode是一款跨平台代码编辑器,它基于Electron框架和Monaco Editor构建。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.14

1829

12

vscode一般用来写什么语言
vscode一般用来写什么语言

VSCode是一款功能强大的代码编辑器,支持多种编程语言和文件格式。它内置对 JavaScript、Python、Java、C++、TypeScript、HTML/CSS、Go 等语言的支持。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.14

1687

8

vscode可以写什么语言
vscode可以写什么语言

vscode是一款强大的代码编辑器,支持多种编程语言的开发。通过安装扩展,可以为 JavaScript/TypeScript、Python、Java、C#、PHP、Go、Ruby、Rust、HTML/CSS 等语言提供智能代码补全、调试和格式化等功能。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

2567

12

vscode中文设置方法
vscode中文设置方法

方法一:在设置页面中,搜索“locale”,并选择“zh-cn”。方法二:按“Ctrl Shift P”快捷键,输入“Configure Display Language”,将语言修改为“zh-cn”。如果上述方法无效,可考虑安装中文插件。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

1798

14

vscode用途介绍
vscode用途介绍

Visual Studio Code(VSCode)是一款由 Microsoft 开发的多功能文本编辑器,适用于各种编程语言。作为一款开源软件,VSCode 拥有代码高亮、自动补全、调试、Git 集成等强大功能,成为程序员不可或缺的工具。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

1222

10

vscode和visualstudio的区别
vscode和visualstudio的区别

Visual Studio是一款功能强大的集成开发环境(IDE),适用于专业开发人员进行复杂项目的构建。而VSCode则是一款轻量级的代码编辑器,更适合各种规模的项目开发。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

1096

8

vscode设置中文界面不生效解决方法
vscode设置中文界面不生效解决方法

vscode设置中文界面不生效解决方法:安装中文语言包、通过命令面板设置语言、检查 locale.json 设置、重新安装中文语言包、检查 VSCode 版本和更新、排除插件冲突、检查系统语言设置、查看 VSCode 日志和错误消息、重置 VSCode 设置、查看官方文档和社区支持。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

434

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程