Prefacejson
在穀神仙的安利下開始在空閒時學習 \(Haskell\) 。
本人喜歡折騰 \(VS\) \(Code\) ~
此次也折騰了兩天,也算是搭建好了本身理想中的環境 \(qwq\)
因爲本人以爲學習的過程當中 \(Debugger\) 可能沒那麼必要,因此這部分就鴿了~ 實際上是由於折騰不出來
本本的系統是 \(Windows\) \(10\)
用其餘系統的小夥伴能夠借鑑地看,過程可能差異不大~學習
Stepui
\(Install\) \(Stack\) :Stack官方文檔url
連接中有各系統安裝 \(Stack\) 的詳細說明,這裏咱們選擇 \(Windows\) \(64\)-\(bit\) 的安裝包。spa
安裝完後不要忘記添加環境變量!
這裏由於咱們是 \(Windows\) ,安裝的過程當中在這打上勾便可,不用手動添加~插件
\(win+r\) 打開 \(cmd\) ,執行 stack install
此時系統目錄( 盤符通常爲 \(C\) )下生成 C:\sr\config.yaml
code
用記事本打開 \(config.yaml\) ,附加以下文本,用以配置鏡像源:blog
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/
保存後關閉該文件。ci
再次打開 \(cmd\) ,依次執行以下指令:文檔
stack new my-project cd my-project stack setup stack build stack exec my-project
在 \(VS\) \(Code\) 中安裝以下擴展插件:
根據擴展插件說明,打開 \(cmd\) ,執行以下指令:
stack --resolver lts-9 install ghc-mod stack install hlint stack install intero stack install QuickCheck stack --resolver lts-9 install stack-run
最後打開 \(VS\) \(Code\) 的配置文件(\(settings.json\))
文件(\(File\)) \(\rightarrow\) 首選項(\(Preferences\)) \(\rightarrow\) 設置(\(Settings\))
在用戶設置下搜索 「 \(settings.json\) 」 ,點擊 「 在 \(settings.json\) 中編輯 」
\(upd\): 這裏其實點右上角那個 "{}" 就能夠打開配置文件了,寫這篇 \(Blog\) 時我還不知道orz
添加以下文本:
"code-runner.executorMap": { "haskell": "cd $dir && stack runhaskell $fileName" }, "haskell.ghcMod.executablePath": "stack", //[user]請換成本身的 Windows 用戶名 "haskell.hlint.executablePath": "C:/Users/[user]/AppData/Roaming/local/bin/hlint"
回到用戶設置,搜索 「 \(Code\) \(Runner\) 」 ,在 「 \(Code\)-\(Runner:\) \(Run\) \(In\) \(Terminal\) 」 處打上勾~
Epilogue
結束啦 \(qwq\)
運行程序時點右上小三角便可~
效果:
若是想用 \(ghci\) 模式的話,打開 \(cmd\) 執行 stack ghci
~
\(Enjoy\) \(Haskell\) ~
原圖 \(Pixiv\) \(id=6783972\)