Add hdevtools linter for haskell

This adds support for the hdevtools haskell linter
https://github.com/hdevtools/hdevtools

The output for hdevtools is near identical to the ghc output so this
also extracts the ghc handler into the handle file and adds tests
This commit is contained in:
Rob Berry
2017-02-14 22:47:53 +00:00
parent c460602cbb
commit c4afd72792
4 changed files with 87 additions and 53 deletions

View File

@@ -0,0 +1,30 @@
Execute(The ghc handler should handle hdevtools output):
AssertEqual
\ [
\ {'lnum': 147, 'bufnr': 12, 'vcol': 0, 'nr': -1, 'type': 'W', 'col': 62, 'text': ':• Couldnt match type a -> T.Text with T.Text Expected type: [T.Text]'},
\ ],
\ ale#handlers#HandleGhcFormat(12, [
\ '/path/to/foo.hs:147:62: warning:',
\ '• Couldnt match type a -> T.Text with T.Text',
\ ' Expected type: [T.Text]',
\ ])
Execute(The ghc handler should handle ghc output):
AssertEqual
\ [
\ {'lnum': 6, 'bufnr': 47, 'vcol': 0, 'nr': -1, 'type': 'E', 'col': 1, 'text': ': Failed to load interface for GitHub.Data Use -v to see a list of the files searched for.'},
\ {'lnum': 7, 'bufnr': 47, 'vcol': 0, 'nr': -1, 'type': 'E', 'col': 1, 'text': ': Failed to load interface for GitHub.Endpoints.PullRequests Use -v to see a list of the files searched for.'},
\ ],
\ ale#handlers#HandleGhcFormat(47, [
\ '',
\ 'src/Appoint/Lib.hs:6:1: error:',
\ ' Failed to load interface for GitHub.Data',
\ ' Use -v to see a list of the files searched for.',
\ '',
\ 'src/Appoint/Lib.hs:7:1: error:',
\ ' Failed to load interface for GitHub.Endpoints.PullRequests',
\ ' Use -v to see a list of the files searched for.',
\ ])