diff --git a/after/ftplugin/haskell.vim b/after/ftplugin/haskell.vim index 369f07c..63b2c88 100644 --- a/after/ftplugin/haskell.vim +++ b/after/ftplugin/haskell.vim @@ -5,7 +5,6 @@ setlocal ts=2 sw=2 expandtab omnifunc=necoghc#omnifunc let g:haskell_classic_highlighting = 1 -let g:ghcmod_hlint_options = ['--ignore=Eta reduce $'] syntax on filetype plugin indent on @@ -14,21 +13,6 @@ filetype plugin indent on call CmdAlias('hasktags', '!/home/jule/.cabal/bin/hasktags -c .') -let g:necoghc_enable_detailed_browse = 1 - -" ALE -let g:ale_linters = {'haskell':['ghc-mod', 'hdevtools'], 'c':['clang']} -" let g:ale_fixers = { - " \ 'go': ['gofmt', 'goimports'], - " \} -let g:ale_haskell_hdevtools_options = "-g '-Wall' -g '-Wno-orphans'" - -" neco-ghc -let g:haskellmode_completion_ghc = 0 -let g:necoghc_enable_detailed_browse = 1 -autocmd FileType haskell setlocal omnifunc=necoghc#omnifunc -let g:ycm_semantic_triggers = {'haskell' : ['.']} - function! HaskellDocCurrentWord() let word = expand("") @@ -36,17 +20,9 @@ function! HaskellDocCurrentWord() endfunction -" clear search -nmap :noh:GhcModTypeClear -imap :noh:GhcModTypeClear -" unmap -" unmap - -nmap :GhcModType nmap :call HaskellDocCurrentWord() - nmap :silent update HsimportModule nmap :silent update HsimportSymbol @@ -96,3 +72,56 @@ let g:vim_annotations_offset = '/.liquid/' " nnoremap :call LanguageClient#textDocument_rename() " autocmd VimEnter * LanguageClientStart + +if has("nvim") + let g:ale_enabled = 0 + + let g:intero_backend = { + \ 'command': 'cabal new-repl', + \ 'options': '', + \ 'cwd': expand('%:p:h'), + \} + + + " Intero starts automatically. Set this if you'd like to prevent that. + let g:intero_start_immediately = 1 + + " 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 + + map t InteroGenericType +else + let g:ghcmod_hlint_options = ['--ignore=Eta reduce $'] + + " ALE + let g:ale_linters = {'haskell':['ghc-mod', 'hdevtools'], 'c':['clang']} + " let g:ale_fixers = { + " \ 'go': ['gofmt', 'goimports'], + " \} + let g:ale_haskell_hdevtools_options = "-g '-Wall' -g '-Wno-orphans'" + + " neco-ghc + let g:necoghc_enable_detailed_browse = 1 + let g:haskellmode_completion_ghc = 0 + let g:necoghc_enable_detailed_browse = 1 + autocmd FileType haskell setlocal omnifunc=necoghc#omnifunc + let g:ycm_semantic_triggers = {'haskell' : ['.']} + + " clear search + nmap :noh:GhcModTypeClear + imap :noh:GhcModTypeClear + + " unmap + " unmap + + nmap :GhcModType +endif diff --git a/vimrc b/vimrc index 6426ccd..320be34 100644 --- a/vimrc +++ b/vimrc @@ -83,8 +83,12 @@ Plug 'Valloric/YouCompleteMe', { 'do': './install.py --clang-completer --go-comp \ } " haskell -Plug 'eagletmt/ghcmod-vim', { 'for': 'haskell' } -Plug 'eagletmt/neco-ghc', { 'for': 'haskell' } +if has("nvim") + Plug 'parsonsmatt/intero-neovim' +else + Plug 'eagletmt/ghcmod-vim', { 'for': 'haskell' } + Plug 'eagletmt/neco-ghc', { 'for': 'haskell' } +endif Plug 'lukerandall/haskellmode-vim', { 'for': 'haskell' } Plug 'raichoo/haskell-vim', { 'for': 'haskell' } Plug 'ucsd-progsys/liquid-types.vim', { 'for': 'haskell' }