Haskell Language Server を Vim で利用する

ブログで書いたつもりになってゐて 書いてゐなかったので まとめてみる
1. coc.nvimをインストールする
2. CocConfigコマンドを實行して Language Server の設定を書く
3. GHCHaskell Language Server (HLS) をインストール (GHCup)

1について

まづ vim がそもそもない といふ人で windowしか知らない といふ人は
windowsPowerShell 7 をインストールして
管理者として實行し wsl をインストールする
多分 Ubuntuがインストールされると思ふが うまくいかなければ ここらへん を參考にするとよいと思ふ

sudo apt install vim

vimをインストール
vim-plug を入れる
(Installation の Unix といふところに貼ってあるコードをコピーして コマンドライン(シェル)に貼りつけ 實行させる)

cd ~

として ホームディレクトリに移動したら

vim .vimrc

として .vimrcファイルを編集する
(あと vimの使ひ方が分からなければ vimtutorを實行して學ぶ)

syntax on

set number
set smartindent
set autoindent
set expandtab
set tabstop=2
set softtabstop=2
set shiftwidth=2
set encoding=utf-8

call plug#begin()

Plug 'neoclide/coc.nvim', {'branch': 'release'}
Plug 'neovimhaskell/haskell-vim'
Plug 'Twinside/vim-haskellFold'

call plug#end()

colorscheme torte

filetype plugin indent on

augroup remember_folds
  autocmd!
  autocmd BufWinLeave * silent mkview
  autocmd BufWinEnter * silent loadview
augroup END

ここでカラースキームを設定してゐるが それは この設定が結果として見易くなったからだ
あと haskell-vim は インデントとかをhaskell向けにしたり 色々してくれるっぽい

それから 最初にup したとき書き忘れてたんだけど
coc.nvimの設定を.vimrcに加へた方がいいと思ふ(私の場合は何も考へず そのまま ここ の Example Vim configuration といふところをコピーして .vimrcに貼りつけた)

:PlugInstall

として プラグインをインストール
これで coc.nvimが入ると思ふ

2について

vimを開いた状態で

:CocConfig

とコマンドを入力
すると編集画面に移るので

{
"languageserver": {
  "haskell": {
    "command": "haskell-language-server-wrapper",
    "args": ["--lsp"],
    "rootPatterns": ["*.cabal", "stack.yaml", "cabal.project", "package.yaml", "hie.yaml"],
    "filetypes": ["haskell", "lhaskell"],
    // Settings are optional, here are some example values
    "settings": {
      "haskell": {
        "checkParents": "CheckOnSave",
        "checkProject": true,
        "maxCompletions": 40,
        "formattingProvider": "ormolu",
        "plugin": {
          "stan": { "globalOn": true }
        }
      }
    }
  }
}
}

基本的に ここ に書いてあるものを貼りつけただけだが 最初と最後に中括弧を追加しないとエラーになると思ふ

3について

Language Server 使へる設定にしたのに そもそもHaskell入れてへんかった~ といふことで インストール
ブラウザを開き(もとのOSのやつでいい)
GHCupの Installation ページで
System Requirements といふところを見る
Ubuntu のwslであれば Ubuntu のところを見て
そこに書いてある

build-essential curl libffi-dev libffi6 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5

といったものをコピーし
Ubuntuのターミナルで

sudo apt install コピーしたやつ  

とやって 必要なプログラムや ライブラリをインストールする
ここで 何かエラーが出たら そのエラーを出したっぽいプログラムorライブラリを 上のインストールリストから除いて もういっかい試す
例へば 何か libncurses-dev のインストールでエラーが出てゐた場合は

sudo apt install build-essential curl libffi-dev libffi6 libgmp-dev libgmp10 libncurses5 libtinfo5

とやって libncurses-dev を除いてゐる ってな感じ
無事インストールできたら
GHCup の Installation ページの 上の方にある For Linux ,.... うんちゃら といふところに書いてある内容をコピーして

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

ターミナルに貼りつけて實行する
途中で Haskell Language Server を入れるか聞かれるので Yes の方を選ぶ
インストールが終わったら

ghcup tui

として HLSがインストールされて さらに Set されてゐることを確認 ちゃんと Set されてゐると チェックマークが二つ入ってゐる

GHCup tui

てなことで
Happy Haskell Holidays!!!