Merge pull request #2617 from robindar/master

Fix crystal-lang non file-tied message handling
This commit is contained in:
w0rp 2019-11-07 08:36:42 +00:00 committed by GitHub
commit 5eefe544ed
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 0 deletions

View file

@ -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,

View file

@ -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'" },
\ ])
\ )