文章目录
- 需求
- 前置条件
- 总流程概述
- 必要说明
- 安装 GHCup
- 安装工具链
-
- 工具介绍
- 安装 cabal
- 更新 stack(可选)
- 安装 hsl
-
- 方案1:手动下载并安装
- 方案2:自动下载并安装
- 更新 ghc(可选)
- 安装第三方库
-
- 安装 Hlint
- 安装 haskell-debug-adapter
- 安装并配置 VS Code 扩展
- 新建并测试项目
- 后记
-
- 缘由
- 为什么不采用 WSL2 + VS Code Remote 方案?
- 最后
需求
- 不使用 WSL2
- 使用 VS Code 开发
- 颜色高亮
- 自动补全
- 语法检查
- F5调试
前置条件
- 系统:Windows10 / 11
Windows Server 不确定是否可行
- 熟悉 PowerShell 基本操作,包括但不限于:切换路径、读写环境变量、看懂报错
最好使用新的 PowerShell 7 而不是自带的 PowerShell 5
- 有恰当的网络环境
- 迅雷或其他下载软件
- 所有安装路径必须 全英文、无空格、字数少
总流程概述
- 安装 GHCup
- 安装/更新工具链
- 使用 cabal 安装 haskell-debug-adapter 调试工具
- 使用 cabal 安装 hlint 语法检查工具
- 安装并配置 VS Code 扩展
- 新建并测试项目
必要说明
- 本文不提供任何安装包,仅提供出处
- 下文使用 pwsh 或 Shell 代指 PowerShell
- 若无特殊说明,pwsh 的工作目录应为
~
,即C:\Users\<你的用户名>
安装 GHCup
GHCup 官网:
https://www.haskell.org/ghcup/#
- 开启网络代理
- 启动网络代理软件
- 在 系统级 环境变量中追加两条(将“<端口号>”换为你的实际值)
HTTP_PROXY: http://127.0.0.1:<端口号>
HTTPS_PROXY: http://127.0.0.1:<端口号>
- 复制此命令到 pwsh 中执行:
Set-ExecutionPolicy Bypass -Scope Process -Force;[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; try {
Invoke-Command -ScriptBlock ([ScriptBlock]::Create((Invoke-WebRequest https://www.haskell.org/ghcup/sh/bootstrap-haskell.ps1 -UseBasicParsing))) -ArgumentList $true } catch {
Write-Error $_ }
- 根据交互式安装提示进行安装路径等配置项的确认,大部分时候你只需要 回车 或者 Y + 回车。
- stack 和 cabal 我的建议是先在此时确认一并安装,我们可以稍后再重装
- 等待安装直到在弹出的 Msys2 命令窗口(也有可能不弹出来,而是就在你当前的 Shell 里执行)中出现 Cabal 的安装进度