nvim: init.vim: Update neovim config for Haskell
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
This commit is contained in:
parent
b714662d2a
commit
5f46b47c93
1 changed files with 56 additions and 1 deletions
|
@ -42,6 +42,8 @@ Plug 'eraserhd/parinfer-rust', { 'do': 'cargo build --release' }
|
||||||
Plug 'l04m33/vlime', { 'rtp': '~/.config/nvim/plugged' }
|
Plug 'l04m33/vlime', { 'rtp': '~/.config/nvim/plugged' }
|
||||||
" Haskell
|
" Haskell
|
||||||
Plug 'neovimhaskell/haskell-vim', { 'for': [ 'haskell', 'cabal' ] }
|
Plug 'neovimhaskell/haskell-vim', { 'for': [ 'haskell', 'cabal' ] }
|
||||||
|
Plug 'parsonsmatt/intero-neovim'
|
||||||
|
Plug 'neomake/neomake'
|
||||||
" For autocompletion
|
" For autocompletion
|
||||||
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
|
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
|
||||||
" Autocomplete for Python
|
" Autocomplete for Python
|
||||||
|
@ -53,7 +55,6 @@ Plug 'rust-lang/rust.vim'
|
||||||
Plug 'tpope/vim-surround'
|
Plug 'tpope/vim-surround'
|
||||||
Plug 'editorconfig/editorconfig-vim'
|
Plug 'editorconfig/editorconfig-vim'
|
||||||
Plug 'tpope/vim-eunuch'
|
Plug 'tpope/vim-eunuch'
|
||||||
Plug 'azadkuh/vim-cmus'
|
|
||||||
|
|
||||||
" Initialize plugin system
|
" Initialize plugin system
|
||||||
call plug#end()
|
call plug#end()
|
||||||
|
@ -202,11 +203,65 @@ let g:haskell_indent_guard = 2
|
||||||
let g:haskell_indent_case_alternative = 1
|
let g:haskell_indent_case_alternative = 1
|
||||||
let g:cabal_indent_section = 2
|
let g:cabal_indent_section = 2
|
||||||
|
|
||||||
|
augroup interoMaps
|
||||||
|
au!
|
||||||
|
" Maps for intero. Restrict to Haskell buffers so the bindings don't collide.
|
||||||
|
|
||||||
|
" Background process and window management
|
||||||
|
au FileType haskell nnoremap <silent> <leader>is :InteroStart<CR>
|
||||||
|
au FileType haskell nnoremap <silent> <leader>ik :InteroKill<CR>
|
||||||
|
|
||||||
|
" Open intero/GHCi split horizontally
|
||||||
|
au FileType haskell nnoremap <silent> <leader>io :InteroOpen<CR>
|
||||||
|
" Open intero/GHCi split vertically
|
||||||
|
au FileType haskell nnoremap <silent> <leader>iov :InteroOpen<CR><C-W>H
|
||||||
|
au FileType haskell nnoremap <silent> <leader>ih :InteroHide<CR>
|
||||||
|
|
||||||
|
" Reloading (pick one)
|
||||||
|
" Automatically reload on save
|
||||||
|
au BufWritePost *.hs InteroReload
|
||||||
|
" Manually save and reload
|
||||||
|
au FileType haskell nnoremap <silent> <leader>wr :w \| :InteroReload<CR>
|
||||||
|
|
||||||
|
" Load individual modules
|
||||||
|
au FileType haskell nnoremap <silent> <leader>il :InteroLoadCurrentModule<CR>
|
||||||
|
au FileType haskell nnoremap <silent> <leader>if :InteroLoadCurrentFile<CR>
|
||||||
|
|
||||||
|
" Type-related information
|
||||||
|
" Heads up! These next two differ from the rest.
|
||||||
|
au FileType haskell map <silent> <leader>it <Plug>InteroGenericType
|
||||||
|
au FileType haskell map <silent> <leader>T <Plug>InteroType
|
||||||
|
au FileType haskell nnoremap <silent> <leader>iit :InteroTypeInsert<CR>
|
||||||
|
|
||||||
|
" Navigation
|
||||||
|
au FileType haskell nnoremap <silent> <leader>jd :InteroGoToDef<CR>
|
||||||
|
|
||||||
|
" Managing targets
|
||||||
|
" Prompts you to enter targets (no silent):
|
||||||
|
au FileType haskell nnoremap <leader>ist :InteroSetTargets<SPACE>
|
||||||
|
augroup END
|
||||||
|
|
||||||
|
" Intero starts automatically. Set this if you'd like to prevent that.
|
||||||
|
let g:intero_start_immediately = 0
|
||||||
|
|
||||||
|
" Enable type information on hover (when holding cursor at point for ~1 second).
|
||||||
|
let g:intero_type_on_hover = 1
|
||||||
|
|
||||||
|
" Change the intero window size; default is 10.
|
||||||
|
let g:intero_window_size = 15
|
||||||
|
|
||||||
|
" Sets the intero window to split vertically; default is horizontal
|
||||||
|
let g:intero_vertical_split = 1
|
||||||
|
|
||||||
|
" OPTIONAL: Make the update time shorter, so the type info will trigger faster.
|
||||||
|
set updatetime=1000
|
||||||
|
|
||||||
" Use deoplete
|
" Use deoplete
|
||||||
let g:deoplete#enable_at_startup = 1
|
let g:deoplete#enable_at_startup = 1
|
||||||
let g:deoplete#sources#rust#racer_binary='$HOME/.cargo/bin/racer'
|
let g:deoplete#sources#rust#racer_binary='$HOME/.cargo/bin/racer'
|
||||||
let g:deoplete#sources#rust#rust_source_path='$HOME/GitSources/rust/src'
|
let g:deoplete#sources#rust#rust_source_path='$HOME/GitSources/rust/src'
|
||||||
|
|
||||||
|
" Use airline
|
||||||
let g:airline#extensions#tabline#enabled = 2
|
let g:airline#extensions#tabline#enabled = 2
|
||||||
let g:airline#extensions#tabline#fnamemod = ':t'
|
let g:airline#extensions#tabline#fnamemod = ':t'
|
||||||
let g:airline#extensions#tabline#left_sep = ' '
|
let g:airline#extensions#tabline#left_sep = ' '
|
||||||
|
|
Loading…
Reference in a new issue