Improve formatting of ghc and hlint haskell linters

For ghc, it seemed that the conditional

```
if l:corrected_lines[-1] =~# ': error:$'
    let l:line = substitute(l:line, '\v^\s+', ' ', '')
endif
```

was never being reached. It's actually better to unconditionally
collapse whitespace anyway and so I simply removed the conditional
check.

For hlint I added more information about the error. This changes the
reported error from `Error:` to something like:
` Error: Avoid lambda. Found: \ x -> foo x Why not: foo`
This commit is contained in:
Rob Berry 2016-12-14 12:50:14 +00:00
parent 3a1caca907
commit 0ffef758ae
2 changed files with 2 additions and 4 deletions

View File

@ -29,9 +29,7 @@ function! ale_linters#haskell#ghc#Handle(buffer, lines)
call add(l:corrected_lines, l:line) call add(l:corrected_lines, l:line)
else else
if len(l:corrected_lines) > 0 if len(l:corrected_lines) > 0
if l:corrected_lines[-1] =~# ': error:$' let l:line = substitute(l:line, '\v\s+', ' ', '')
let l:line = substitute(l:line, '\v^\s+', ' ', '')
endif
let l:corrected_lines[-1] .= l:line let l:corrected_lines[-1] .= l:line
endif endif
endif endif

View File

@ -13,7 +13,7 @@ function! ale_linters#haskell#hlint#Handle(buffer, lines)
\ 'lnum': l:error.startLine + 0, \ 'lnum': l:error.startLine + 0,
\ 'vcol': 0, \ 'vcol': 0,
\ 'col': l:error.startColumn + 0, \ 'col': l:error.startColumn + 0,
\ 'text': l:error.severity . ': ' . l:error.hint, \ 'text': l:error.severity . ': ' . l:error.hint . '. Found: ' . l:error.from . ' Why not: ' . l:error.to,
\ 'type': l:error.severity ==# 'Error' ? 'E' : 'W', \ 'type': l:error.severity ==# 'Error' ? 'E' : 'W',
\}) \})
endfor endfor