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 committed 2017-02-16 10:06:48 +00:00
1 parent c460602cbb
commit c4afd72792
4 files changed
+87 -53

No files matched your search

+30
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.',
\ ])