diff options
author | w0rp <devw0rp@gmail.com> | 2017-11-13 22:47:19 +0000 |
---|---|---|
committer | w0rp <devw0rp@gmail.com> | 2017-11-13 22:47:19 +0000 |
commit | 764a33b1c9dc355f779366762db1645eda478ee4 (patch) | |
tree | efc5d64d2730c7d8b5bab0d26d1f11391c4e7aab | |
parent | 6c112dd1cc0225d2549f364b5e8a7693755634c2 (diff) | |
download | ale-764a33b1c9dc355f779366762db1645eda478ee4.zip |
Fix #1124 - Handle stack-build errors with leading spaces
-rw-r--r-- | autoload/ale/handlers/haskell.vim | 2 | ||||
-rw-r--r-- | test/handler/test_ghc_handler.vader | 22 |
2 files changed, 23 insertions, 1 deletions
diff --git a/autoload/ale/handlers/haskell.vim b/autoload/ale/handlers/haskell.vim index 9c8d0586..09606692 100644 --- a/autoload/ale/handlers/haskell.vim +++ b/autoload/ale/handlers/haskell.vim @@ -19,7 +19,7 @@ function! ale#handlers#haskell#HandleGHCFormat(buffer, lines) abort " in Haskell error messages with the basename for this file. let l:temp_filename_regex = s:temp_regex_prefix . l:basename - let l:pattern = '\v^([a-zA-Z]?:?[^:]+):(\d+):(\d+):(.*)?$' + let l:pattern = '\v^\s*([a-zA-Z]?:?[^:]+):(\d+):(\d+):(.*)?$' let l:output = [] let l:corrected_lines = [] diff --git a/test/handler/test_ghc_handler.vader b/test/handler/test_ghc_handler.vader index b76046ca..b47cdf67 100644 --- a/test/handler/test_ghc_handler.vader +++ b/test/handler/test_ghc_handler.vader @@ -76,3 +76,25 @@ Execute(The ghc handler should handle ghc 7 output): \ ale#path#Winify('src/Main.hs') . ':94:5:Error:', \ ' Some other error', \ ]) + +Execute(The ghc handler should handle stack 1.5.1 output): + call ale#test#SetFilename('src/Main.hs') + + AssertEqual + \ [ + \ { + \ 'lnum': 160, + \ 'col': 14, + \ 'type': 'E', + \ 'text': '• Expecting one fewer arguments to ‘Exp’ Expected kind ‘k0 -> *’, but ‘Exp’ has kind ‘*’ • In the type ‘Exp a’ | 160 | pattern F :: Exp a | ^^^^^', + \ }, + \ ], + \ ale#handlers#haskell#HandleGHCFormat(bufnr(''), [ + \ ' ' . ale#path#Winify('src/Main.hs') . ':160:14: error:', + \ ' • Expecting one fewer arguments to ‘Exp’', + \ ' Expected kind ‘k0 -> *’, but ‘Exp’ has kind ‘*’', + \ ' • In the type ‘Exp a’', + \ ' |', + \ ' 160 | pattern F :: Exp a', + \ ' | ^^^^^', + \ ]) |