SpaceVim LSP:Haskell

为SpaceVim 配置Haskell的LSP server# 为SpaceVim 配置Haskell的LSP server

LSP server repo

此方案失败: Haskell: https://github.com/haskell/haskell-ide-engine.git

采用 ghcup配置完整的haskell环境

ghcup install:

  • curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh

  • curl --proto '=https' --tlsv1.2 -LsSf https://mirror.sjtu.edu.cn/ghcup/script/install.sh | sh

cabal 初始化

cabal update && stack update

修改默认源为上海交大源

  • ghcup:~/.ghcup/config.yaml
1
2
3
url-source:
OwnSource: "https://mirror.sjtu.edu.cn/ghcup/yaml/ghcup/data/ghcup-0.0.5.yaml"

配置显示依赖性的文档# 配置显示依赖性的文档

  • cabal

    • ~/.cabal/config
    1
    2
    progtam-default-options
    ghc-options: -haddock
    • 或者针对某一项目使用:
      cabal configure --ghc-options=-haddock

注册到客户端的Coc# 注册到客户端的Coc

官方给出了大部分流行的前端配置方式: Configuring your editor

  • 因为haskell在Coc里面没有coc插件,这种独立的server需要在Coc进行注册,才能成功调用server

Coc

在vim/nvim中使用 :CocConfig 进入Coc配置文件写入下面的内容

1
2
3
4
5
6
7
8
9
10
{
"languageserver": {
"haskell": {
"command": "haskell-language-server-wrapper",
"args": ["--lsp"],
"rootPatterns": ["*.cabal", "stack.yaml", "cabal.project", "package.yaml","hie.yaml"],
"filetypes": ["haskell", "lhaskell"]
}
}
}

—- >到这里基本完成<—-