5 \ 'haskell': ['hls', 'hlint']
 
   7 let g:ale_command_wrapper = 'nice -n5 %*'
 
   8 let g:ale_haskell_hls_executable = 'haskell-language-server-wrapper'
 
  10 let g:ale_close_preview_on_insert = 1
 
  11 let g:ale_cursor_detail = 0
 
  12 let g:ale_keep_list_window_open = 0
 
  13 let g:ale_lint_delay = 200
 
  14 let g:ale_lint_on_enter = 0
 
  15 let g:ale_lint_on_insert_leave = 0
 
  16 let g:ale_lint_on_save = 1
 
  17 let g:ale_lint_on_text_changed = 'never'
 
  18 let g:ale_list_vertical = 0
 
  19 let g:ale_list_window_size = 5
 
  20 let g:ale_lsp_show_message_severity = 'information'
 
  21 let g:ale_lsp_suggestions = 1
 
  22 let g:ale_maximum_file_size = 1000000
 
  23 let g:ale_open_list = 1
 
  24 let g:ale_set_balloons = 1
 
  25 let g:ale_set_highlights = 1
 
  26 let g:ale_set_loclist = 1
 
  27 let g:ale_set_quickfix = 0
 
  28 let g:ale_sign_column_always = 1
 
  29 let g:ale_sign_error = '!!'
 
  30 let g:ale_sign_warning = ' !'
 
  31 let g:ale_virtualtext_cursor = 1
 
  32 let g:ale_virtualtext_delay = 10
 
  34 " Unfortunately, this does not update the loclist position
 
  35 "nmap <silent> <C-j> :ALEPrevious<CR>
 
  36 "nmap <silent> <C-l> :ALENext<CR>
 
  37 nmap <silent> <C-w> :ALEPrevious -wrap -error<CR>
 
  38 nmap <silent> <C-e> :ALENext -wrap -error<CR>
 
  39 nmap gd :ALEGoToDefinition<CR>
 
  40 nmap gm :ALECodeAction<CR>
 
  41 "nmap <silent> <C-k> <Plug>(ale_previous_wrap)
 
  42 "nmap <silent> <C-l> <Plug>(ale_next_wrap)
 
  44 function! LinterStatus() abort
 
  45   let l:counts = ale#statusline#Count(bufnr(''))
 
  46   let l:all_errors = l:counts.error + l:counts.style_error
 
  47   let l:all_non_errors = l:counts.total - l:all_errors
 
  48   if !get(g:, 'ale_enabled', 0)
 
  50   elseif index(g:ale_filetype_blacklist, &filetype) != -1
 
  52   elseif ale#engine#IsCheckingBuffer(bufnr('')) == 1
 
  54   elseif l:counts.total == 0
 
  57     return printf('%dW %dE', all_non_errors, all_errors)
 
  60 " Refresh the statusline
 
  61 augroup RefreshStatusline
 
  63   autocmd CursorHold,BufWritePost * :redrawstatus
 
  64   autocmd User ALEJobStarted,ALELintPost :redrawstatus
 
  67 " Close the loclist window automatically when the buffer is closed
 
  68 augroup CloseLoclistWindowGroup
 
  70   autocmd QuitPre * if empty(&buftype) | lclose | endif
 
  73 hi ALEWarningSign ctermbg=darkyellow ctermfg=black
 
  74 hi ALEVirtualTextError ctermfg=red
 
  75 hi ALEVirtualTextWarning ctermfg=yellow
 
  76 hi ALEVirtualTextInfo ctermfg=blue
 
  79 let g:ale_completion_enabled = 0
 
  80 "set omnifunc=ale#completion#OmniFunc
 
  81 "au FileType haskell set omnifunc=ale#completion#OmniFunc
 
  84 imap <silent><expr> <TAB>
 
  85  \ pumvisible() ? "\<C-n>" :
 
  86  \ <SID>check_back_space() ? "\<TAB>" :
 
  88 function! s:check_back_space() abort
 
  89         let col = col('.') - 1
 
  90         return !col || getline('.')[col - 1] =~# '\s'
 
  92 let g:ale_completion_symbols = {
 
  96 \ 'constructor': 'cons',
 
 102 \ 'property': 'prop',
 
 106 \ 'keyword': 'keyword',
 
 110 \ 'reference': 'ref',
 
 112 \ 'enum member': '',
 
 117 \ 'type_parameter': 'type param',