setlocal ts=2 sw=2 expandtab "set background=light "set guifont=Neep\ Medium\ Semi-Condensed\ 18 " tags call CmdAlias('hasktags', '!hasktags -c .') " from " https://raw.githubusercontent.com/begriffs/haskell-vim-now/master/git-hscope call CmdAlias('codex', 'call system("haskell-ctags")call LoadHscope()') call CmdAlias('Cc', 'Clap commits') map ctg :codex set tags=tags;/,codex.tags;/ " classic ctags jump " nnoremap gd " nnoremap cgd :cs find g =expand("") nnoremap :cs find c =expand("") set cscopeprg=do_at_stack_root\ hscope set csre set csto=1 " search codex tags first set nocst " set cscopequickfix=s-,c-,d-,i-,t-,e-,a- function! LoadHscope() set nocscopeverbose " suppress 'duplicate connection' error let hsf = findfile("hscope.out", ".;") if filereadable(hsf) exe "cs add " . hsf elseif $HSCOPE_DB != "" cs add $HSCOPE_DB endif set cscopeverbose endfunction au BufEnter /*.hs call LoadHscope() "hoogle nnoremap ho :Hoogle nnoremap hc :HoogleClose " haskell-vim let g:haskell_classic_highlighting = 1 let g:haskell_indent_disable = 0 " let g:haskell_enable_quantification = 1 " let g:haskell_enable_recursivedo = 1 " let g:haskell_enable_arrowsyntax = 1 " let g:haskell_enable_pattern_synonyms = 1 " let g:haskell_enable_typeroles = 1 let g:haskell_indent_if = 0 let g:haskell_indent_case = 4 let g:haskell_indent_let = 4 let g:haskell_indent_where = 6 let g:haskell_indent_before_where = 2 let g:haskell_indent_after_bare_where = 2 let g:haskell_indent_do = 4 let g:haskell_indent_in = 0 let g:haskell_indent_guard = 4 " let g:haskell_disable_TH = 1 " vim-hindent let g:hindent_on_save = 0 let g:hindent_indent_size = 4 let g:hindent_line_length = 80 " vim-stylishhask let g:stylishask_on_save = 0 " haskellmode-vim function! HaskellDocCurrentWord() let word = expand("") exe "IDoc " . word endfunction " done by LSP now nmap :call HaskellDocCurrentWord() " nmap :silent update HsimportModule " nmap :silent update HsimportSymbol " liquid-types let g:vim_annotations_offset = '/.liquid/' " autocmd BufWritePost *.hs call s:check_and_lint() " function! s:check_and_lint() " let l:path = expand('%:p') " let l:qflist = ghcmod#make('check', l:path) " call extend(l:qflist, ghcmod#make('lint', l:path)) " call setqflist(l:qflist) " cwindow " if empty(l:qflist) " echo "No errors found" " endif " endfunction let g:ghcmod_hlint_options = ['--ignore=Eta reduce $'] " ALE let g:ale_enabled = 0 let g:ale_linters = {'haskell':[], 'c':['clang']} " let g:ale_linters = {'haskell':['ghc-mod', 'hdevtools', 'argon'], 'c':['clang']} " let g:ale_fixers = { " \ 'haskell': ['brittany'], " \} let g:ale_haskell_hdevtools_options = "-g '-Wall' -g '-Wno-orphans'" let g:ale_haskell_argon_error_level = 14 let g:ale_haskell_argon_warn_level = 10 let g:ale_haskell_argon_info_level = 6 let g:neoformat_enabled_haskell = ['brittany'] " LSP let g:LanguageClient_rootMarkers = ['cabal.project', '*.cabal', 'stack.yaml'] " \ 'haskell': ['ghcide', "--lsp"], let g:LanguageClient_serverCommands = { \ 'haskell': ['haskell-language-server-wrapper', '--lsp'], \ } let g:echodoc#enable_at_startup = 1 call deoplete#enable() call deoplete#custom#source('LanguageClient', \ 'min_pattern_length', \ 2) inoremap pumvisible() ? "\" : "\" let g:tagbar_type_haskell = { \ 'ctagsbin' : 'hasktags', \ 'ctagsargs' : '-x -c -o-', \ 'kinds' : [ \ 'm:modules:0:1', \ 'd:data: 0:1', \ 'd_gadt: data gadt:0:1', \ 't:type names:0:1', \ 'nt:new types:0:1', \ 'c:classes:0:1', \ 'cons:constructors:1:1', \ 'c_gadt:constructor gadt:1:1', \ 'c_a:constructor accessors:1:1', \ 'ft:function types:1:1', \ 'fi:function implementations:0:1', \ 'i:instance:0:1', \ 'o:others:0:1' \ ], \ 'sro' : '.', \ 'kind2scope' : { \ 'm' : 'module', \ 'c' : 'class', \ 'd' : 'data', \ 't' : 'type', \ 'i' : 'instance' \ }, \ 'scope2kind' : { \ 'module' : 'm', \ 'class' : 'c', \ 'data' : 'd', \ 'type' : 't', \ 'instance' : 'i' \ } \ } " vista let g:vista_ctags_cmd = { \ 'haskell': 'hasktags -x -o - -c', \ } " vim-lsp if executable('haskell-language-server-wrapper') au User lsp_setup call lsp#register_server({ \ 'name': 'hls', \ 'cmd': {server_info->['haskell-language-server-wrapper', '--lsp']}, \ 'allowlist': ['haskell'], \ }) endif