Stack
Haskellで開發を行ふ際に必須のプロジェクト管理ツール.
インストールは簡単で以下のコマンドを實行するだけ.
curl --silent --show-error --location https://get.haskellstack.org/ | sh
これで /usr/local/bin
に stack
がインストールされる.
新規プロジェクトの作成はコマンドを三つ實行するだけ.
stack new new-pj # 新しいディレクトリが作成される
cd new-pj
stack setup # プロジェクト用のHaskellがインストールされる
stack build
stack exec new-pj-exec
Haskell IDE Engine (HIE)
久振りにHaskellの學習をしやうと思つて開發環境の整備を行なつた.
ghc-modがdeprecatedになつてゐて現在はHaskell IDE Engineと云ふ物を使ふらしい.
ビルドに物凄く時間が掛つた.
git clone https://github.com/haskell/haskell-ide-engine --recurse-submodules
cd haskell-ide-engine
stack ./install.hs hie-8.6.5 # $HOME/.local/binにhieコマンドがインストールされる
stack ./install.hs data
(2021.4.2追記) 現在はdeprecatedに成つてゐる. HLSに引き継がれてゐる.
coc.nvim
NeoVimからLSPを扱ふためのプラグイン.
以下の樣に dein.toml
に追記する.
[[plugins]]
repo = 'neoclide/coc.nvim'
merge = 0
rev = 'release'
hook_add = '''
function! s:show_documentation()
if (index(['vim','help'], &filetype) >= 0)
execute 'h '.expand('<cword>')
else
call CocAction('doHover')
endif
endfunction
nnoremap <silent> K :call <SID>show_documentation()<CR>
" 補完の設定
inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>"
inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"
inoremap <silent><expr> <cr> pumvisible() ? coc#_select_confirm() : "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>"
nmap <silent> [g <Plug>(coc-diagnostic-prev)
nmap <silent> ]g <Plug>(coc-diagnostic-next)
nmap <silent> gd <Plug>(coc-definition)
nmap <silent> gy <Plug>(coc-type-definition)
nmap <silent> gi <Plug>(coc-implementation)
nmap <silent> gr <Plug>(coc-references)
nmap <leader>rn <Plug>(coc-rename)
'''