VSCode Haskell插件不支持GHC 9.2.5,求教手动切换GHC版本方法
解决HLS不支持GHC版本及Stack YAML解析问题
一、手动指定GHC版本适配HLS
1. 用ghcup切换GHC版本
- 查看已安装的GHC版本:
ghcup list ghc - 切换全局默认GHC到9.2.4:
ghcup set ghc 9.2.4 - 若仅需给当前项目指定版本,在项目根目录创建
.ghcup.yaml文件,写入:ghc: 9.2.4
2. 在Stack项目中锁定GHC版本
- 打开项目的
stack.yaml文件,找到resolver字段,替换为对应GHC 9.2.4的resolver(比如lts-19.33,LTS 19系列对应GHC 9.2.4) - 若不想依赖resolver,可直接指定编译器版本:
compiler: ghc-9.2.4 compiler-check: match-exact - 执行
stack setup,让Stack加载并使用指定版本的GHC
二、修复Stack YAML解析异常
报错YAML parse exception at line 9, column 18: mapping values are not allowed in this context是典型的YAML语法错误,常见原因及修复方式:
- 冒号后未加空格:比如
key:value需改为key: value - 含特殊字符的字符串未加引号:比如
name: my-project:v1要改成name: "my-project:v1" - 缩进格式错误:YAML仅支持空格缩进,不能用Tab,且同一层级的缩进需对齐
直接检查stack.yaml第9行附近的内容,修正语法问题后重新执行Stack命令即可。
内容的提问来源于stack exchange,提问作者Nayami
相关产品推荐
相关产品推荐

