在Archlinux上将Vim用作Haskell的IDE的当前情况是什么?

问题描述

我的目标(如果可行)是通过YouCompleteMe在Vim中完成Haskell的命令完成。在这方面,正如您在下面看到的那样,我还没有找到有关如何使其工作的共识。

有关issue on YouCompleteMe的最新评论还不算老,因此我从AUR安装了haskell-ide-engine(GitHub上的仓库是here

但是,由于花费了很长时间(花费了110分钟!),我检查了PKGBUILD文件只是为了发现这一点:

# ...
# Supported are '8.4.2' '8.4.3' '8.4.4' '8.6.4' '8.6.5' '8.8.1' '8.8.2' '8.8.3'
# activated by default are the ones also used in a stackage snapshot. Removing
# versions you do not use will greatly reduce the compilation time of this
# package
_enabled_ghc_versions=('8.4.4' '8.6.4' '8.6.5' '8.8.2' '8.8.3')
# ...

足够公平,我不好。因此,我在#haskell IRC channel上寻求帮助,一位用户发表了此评论:

,然后您发现除了haskell-ide-engine之外几乎没有人使用haskell-language-server。而且ghcup可以为您安装预构建二进制文件

另一个用户的评论是

至少可以说,Arch上的haskell情况不是最佳的

还有另一条评论(来自Fendor,his answer已经在下面)

HIE不再积极开发。 Haskell语言服务器是其后继者。我会推荐Haskell语言服务器

这似乎与您在YouCompleteMe issue tracker上看到的内容不符。

那目前情况如何?

解决方法

此处有Haskell IDE引擎和Haskell语言服务器开发人员。

是的,Haskell IDE Engine不再被积极开发。 ghcide和Haskell IDE Engine团队已经合并,共同创建了Haskell Language Server(基于ghcide作为主要驱动程序)。因此,Haskell Language Server当前是开发的重点,我们建议您优先于Haskell IDE Engine,因为它更快,更稳定。它还具有许多新功能,并且很快将通过Haskell IDE引擎达到与功能相同的水平。

可以通过ghcup安装Haskell语言服务器,而VSCode插件Haskell也可以自动安装二进制文件。

blog post希望能更好地概述这种情况。

,

基于this,您应该可以使用它

  let g:ycm_language_server = [
    \   {
    \     'name': 'haskell-language-server',\     'cmdline': [ 'haskell-language-server-wrapper','--lsp' ],\     'filetypes': [ 'haskell','lhaskell' ],\     'project_root_files': [ 'stack.yaml','cabal.project','package.yaml','hie.yaml' ],\   },\ ]
,

通过安装 ghcup 设置 Haskell,然后然后通过 ghc 安装所有其余的(cabalghcup、...),正如 this answer 中所建议的那样,改进了 Vim 和 YCM 的使用体验。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...