diff options
author | David A. R. Robin <david.a.r.robin@gmail.com> | 2019-06-24 06:24:07 +0200 |
---|---|---|
committer | David A. R. Robin <david.a.r.robin@gmail.com> | 2019-10-11 18:34:09 +0200 |
commit | e19b8c05cd8b0e74eb71d577ce6239bc71717dd9 (patch) | |
tree | 07abbb6d9ca1daccc7782c5ba5411af0f2c17411 /ale_linters/crystal | |
parent | 65ba4b85ec3011cccb9ea7135183e7fc8d7a0d69 (diff) | |
download | ale-e19b8c05cd8b0e74eb71d577ce6239bc71717dd9.zip |
Fix crystal-lang non file-tied message handling
Some messages of the crystal compiler are not tied to a file.
This causes a 'Key not present in Dictionnary' error (E716).
For the record, the json output on ```require "./nonexistent.cr"```
is the following :
```json
[
{ "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'" }
]
```
The second message does not have line/column attributes.
Diffstat (limited to 'ale_linters/crystal')
-rw-r--r-- | ale_linters/crystal/crystal.vim | 4 |
1 files changed, 4 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, |