summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorw0rp <w0rp@users.noreply.github.com>2019-11-07 08:36:42 +0000
committerGitHub <noreply@github.com>2019-11-07 08:36:42 +0000
commit5eefe544ed3829b5f5d977c133361dc6ac907e05 (patch)
tree9c596f98f80fc12145d8957c0025819af00308d6
parent2d9380d75c5c27a3241925d24ab3be8977a43207 (diff)
parente19b8c05cd8b0e74eb71d577ce6239bc71717dd9 (diff)
downloadale-5eefe544ed3829b5f5d977c133361dc6ac907e05.zip
Merge pull request #2617 from robindar/master
Fix crystal-lang non file-tied message handling
-rw-r--r--ale_linters/crystal/crystal.vim4
-rw-r--r--test/handler/test_crystal_handler.vader10
2 files changed, 14 insertions, 0 deletions
diff --git a/ale_linters/crystal/crystal.vim b/ale_linters/crystal/crystal.vim
index 3c2fefb7..8a905b12 100644
--- a/ale_linters/crystal/crystal.vim
+++ b/ale_linters/crystal/crystal.vim
@@ -5,6 +5,10 @@ function! ale_linters#crystal#crystal#Handle(buffer, lines) abort
let l:output = []
for l:error in ale#util#FuzzyJSONDecode(a:lines, [])
+ if !has_key(l:error, 'file')
+ continue
+ endif
+
call add(l:output, {
\ 'lnum': l:error.line + 0,
\ 'col': l:error.column + 0,
diff --git a/test/handler/test_crystal_handler.vader b/test/handler/test_crystal_handler.vader
index a7b7f3ab..209632e9 100644
--- a/test/handler/test_crystal_handler.vader
+++ b/test/handler/test_crystal_handler.vader
@@ -16,3 +16,13 @@ Execute(The crystal handler should parse lines correctly and add the column if i
\ ale_linters#crystal#crystal#Handle(255, [
\ '[{"file":"/tmp/test.cr","line":2,"column":1,"size":null,"message":"unexpected token: EOF"}]'
\ ])
+
+Execute(The crystal handler should not fail when a missing file is required):
+ AssertEqual
+ \ [ { 'lnum':1, 'col': 1, 'text': 'while requiring "./nonexistent.cr"' } ],
+ \ ale_linters#crystal#crystal#Handle(255,
+ \ json_encode([
+ \ { "file":"/tmp/file.cr","line":1,"column":1,"size":0,"message":"while requiring \"./nonexistent.cr\"" },
+ \ { "message": "can't find file './nonexistent.cr' relative to '/tmp'" },
+ \ ])
+ \ )