haskell - 如何让 HIE 检测通过堆栈安装的脚本包
问题描述
我刚刚开始学习如何使用 haskell 编写脚本,我有这样的东西:
#!/usr/bin/env stack
-- stack --resolver lts-14.13 script
{-# LANGUAGE OverloadedStrings #-}
import Turtle
main :: IO ()
main = echo "hello"
当我使用 运行它时stack script.hs
,它会自动神奇地安装turtle 并打印“hello”。但是,我的编辑器在导入行上给了我这个错误:
[ghcmod] [E] Could not find module ‘Turtle’
这对我来说很有意义,因为我安装的 hie-wrapper (从源代码,如果重要的话)不知道堆栈在哪里安装了 turtle 包。
我连接 HIE 的方式是这样的,使用 coc.nvim:
"languageserver": {
"haskell": {
"command": "hie-wrapper",
"rootPatterns": [
".stack.yaml",
"cabal.config",
"package.yaml"
],
"filetypes": [
"hs",
"lhs",
"haskell"
],
"initializationOptions": {
"languageServerHaskell": {
}
},
}
},
是否有一些标志或什么我可以传递给 hie-wrapper 以使其与 Haskell 脚本很好地配合,即。检测包裹?非常感谢任何能让这些东西更清楚地组合在一起的答案,ghc/hie/hie-wrapper/stack/cabal 目前对我来说是一个大黑匣子,这使得它难以调试。
解决方案
推荐阅读
- c++-cli - “typedef void (^Something)()” 是什么意思
- apache-spark - 在 ECLIPSE 中执行时无法查看 kafka 消费者输出:PySpark
- javascript - 自从我更改了项目标签后,我的搜索功能已停止运行。
- square - 检索与付款相关的客户
- postgis - PostGIS:在涉及 MultiPolygon 的查询中识别匹配的多边形
- java - 不能从另一个线程调用 constraintLayout.remove();
- angularjs - 过滤具有不同值的单选按钮(AngularJS)?
- php - 如何在每次 php 调用后强制运行 php 扩展而不显式编写代码?
- python - 从 nodejs 访问 opencv 的 Python 脚本。
- excel - 在 Excel 中为图表选择数据时跳过行的语法是什么?