haskell - 使用 ALE linter 处理 Haskell 文件时出现不正确的导入错误
问题描述
我正在使用ALE在 vim中对我的 Haskell 文件进行 lint。ALE 检测到 Haskell 平台未附带的任何包的导入错误。我仍然能够运行cabal repl
并正确导入这些包。然后我可以将有错误的文件加载到 repl 中,这向我证明我确实采取了正确的步骤来使用这些包。
在使用这些包中的函数时,我会在文件中得到适当的反馈。我当然已经在我的.cabal
文件的 build-depends 部分中指定了这些导入。
让我的错误消息被无法识别的导入阻塞是非常烦人的。
这是我.vimrc
文件中值得注意的行的副本。
解决方案
问题是其中一个短绒不知道阴谋集团。这个问题有据可查here。当您使用 ALE 并且未指定要使用哪些 linter 时,ALE 会继续使用所有这些 linter。
以下是 ALE 自动为您提供的 Haskell 文件的 linter 列表:[cabal_ghc, ghc, ghc_mod, hdevtools, hie, hlint, stack_build, stack_ghc]
在这种情况下,有问题的 linter 是ghc
. 要修复错误,请继续将此行添加到您的 .vimrc 文件中:
let g:ale_linters = {'haskell': ['cabal_ghc', 'ghc-mod', 'hdevtools', 'hie', 'hlint', 'stack_build', 'stack_ghc']}
您可以使用此列表中您喜欢的任何 linter。
推荐阅读
- javascript - 获取对象数组中每一天的最新日期?
- python - Move object function has no effect even after calling: Tkinter
- excel - 根据列值对 xy 散点图中的点进行着色后,数据点的颜色是否错误?
- reactjs - 如何通过在 react.js 中搜索从 rest api 获取和显示数据
- java - 如何在我的 Web App 上显示用户总数?
- kotlin - 所有类似数字的值的通用函数?
- android - 在 Android 上使用带有 libVLC 的特定网络
- android - 在 Android 的自定义 WebView 中使用 ViewModel
- mysql - date(now()) 在 MySQL 8.0.22 中给出“'(' 在这个位置无效,期待 'text'”
- typescript - 用 Jest 和 Typescript 模拟 DynamoDB.DocumentClient 的构造函数