haskell ide - vscode
2024-09-01 15:13:02
以windows为例(因为手头只有这个系统,linux系统下类似)
1. 下载安装vscode
2. 安装haskell的管理工具stack,将路径添加到环境变量path
3. windows下安装stack并未发现 config.yaml (而linux下安装则自动生成~/.stack/config.yaml,故linux下这一步可略过),于是打开cmd,执行 stack install,此时生成目录 c:/sr,其中包含config.yaml,为stack的全局配置
4. 在config.yaml中附加如下文本以配置镜像源,详细信息参考这里
package-indices:
- name: Tsinghua
download-prefix: https://mirrors.tuna.tsinghua.edu.cn/hackage/package/
http: https://mirrors.tuna.tsinghua.edu.cn/hackage/00-index.tar.gz
setup-info: "http://mirrors.tuna.tsinghua.edu.cn/stackage/stack-setup.yaml"
urls:
latest-snapshot: http://mirrors.tuna.tsinghua.edu.cn/stackage/snapshots.json
lts-build-plans: http://mirrors.tuna.tsinghua.edu.cn/stackage/lts-haskell/
nightly-build-plans: http://mirrors.tuna.tsinghua.edu.cn/stackage/stackage-nightly/
5. 使用stack新建一个工程
stack new fuck-project
执行如下指令
cd fuck-project
stack setup
stack build
stack exec fuck-project-exe
其中,stack setup会自动下载ghc编译器到目录C:\Users\sjj\AppData\Local\Programs\stack\x86_64-windows\ghc-8.0.2中(如果已经下载过,则不会再下载)
事先已经装好ghc,则在~/.stack/config.yaml中添加如下一行配置即可
system-ghc: true
后面两步,stack build 和 stack exec就很明显了,分别为生成和执行。
6. 打开vscode,并选择扩展,然后搜索haskell关键字
将图中所示扩展安装,然后点击reload,重新加载vscode窗口
7. 根据每个扩展插件的说明可知,需要安装如下haskell库
# for Haskell ghc-mod
stack install ghc-mod
# for haskell-linter
stack install hlint
# for Haskelly
stack install intero
stack install QuickCheck
stack install stack-run(windows 下不支持,不能在vscode中直接使用stack run运行程序,故暂且先使用stack exec fuck-project吧)
8. 打开vscode的配置文件
file->preferences->settings
左边为默认配置,在右边编辑配置以覆盖左边的默认配置
"haskell.ghcMod.executablePath": "C:/Users/[user]/AppData/Roaming/local/bin/ghc-mod",
"haskell.hlint.executablePath": "C:/Users/[user]/AppData/Roaming/local/bin/hlint"
最新文章
- Maven学习随笔一——Maven安装报错处理(mvn -v, 提示不是内部命令的问题)
- Windows 2008如何绑定MAC防范ARP攻击!
- id to load is required for loading----id被要求加载exception
- Jenkins User on Apt-Get Install Installation
- C++中标准容器Vector,元素操作.insert()小结
- SharePoint Server 2013介绍v2
- Struts2通过自己定义拦截器实现登录之后跳转到原页面
- 企业架构研究总结(27)——TOGAF架构开发方法(ADM)之架构变更管理阶段
- 多线程操作的方法(sleep,)setPriority(Thread.MIN_PRIORITY);yield();
- Django 2.0 学习(12):Django 模板语法
- java 一些容易忽视的小点-类和对象
- Oracle总结之plsql编程(基础九)
- DataGridview的自动排序设置
- GIS+=地理信息+行业+大数据——基于云环境流处理平台下的实时交通创新型app
- e643. 以匿名类处理事件
- redis安装和简介(2)
- ElasticSearch5插件安装
- android Handler的使用(二)
- BaaS_后端即服务 RESTful
- LN : leetcode 258 Add Digits