mirror of https://github.com/dense-analysis/ale
parent
2d9380d75c
commit
dfbb387cc7
|
@ -1,6 +1,15 @@
|
|||
" Author: Baabelfish
|
||||
" Description: Typechecking for nim files
|
||||
|
||||
let s:end_col_patterns = [
|
||||
\ '\v''([^'']+)'' is declared but not used.*',
|
||||
\ '\videntifier expected, but found ''([^'']+)''',
|
||||
\ '\vimported and not used: ''([^'']+)''.*',
|
||||
\ '\vundeclared identifier: ''([^'']+)''',
|
||||
\ '\v''([^'']+)'' cannot be assigned to',
|
||||
\ '\vredefinition of ''([^'']+)'';',
|
||||
\]
|
||||
|
||||
function! ale_linters#nim#nimcheck#Handle(buffer, lines) abort
|
||||
let l:buffer_filename = fnamemodify(bufname(a:buffer), ':p:t')
|
||||
let l:pattern = '^\(.\+\.nim\)(\(\d\+\), \(\d\+\)) \(.\+\)'
|
||||
|
@ -43,6 +52,11 @@ function! ale_linters#nim#nimcheck#Handle(buffer, lines) abort
|
|||
let l:item.code = l:code_match[2]
|
||||
endif
|
||||
|
||||
" Find position end_col.
|
||||
for l:col_match in ale#util#GetMatches(l:item.text, s:end_col_patterns)
|
||||
let l:item.end_col = l:item.col + len(l:col_match[1]) - 1
|
||||
endfor
|
||||
|
||||
call add(l:output, l:item)
|
||||
endfor
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@ Execute(Parsing nim errors should work):
|
|||
\ 'col': 2,
|
||||
\ 'text': 'identifier expected, but found ''a.barfoo''',
|
||||
\ 'type': 'E',
|
||||
\ 'end_col': 9,
|
||||
\ },
|
||||
\ {
|
||||
\ 'lnum': 2,
|
||||
|
@ -28,6 +29,7 @@ Execute(Parsing nim errors should work):
|
|||
\ 'text': '''NotUsed'' is declared but not used',
|
||||
\ 'code': 'XDeclaredButNotUsed',
|
||||
\ 'type': 'W',
|
||||
\ 'end_col': 11,
|
||||
\ },
|
||||
\ {
|
||||
\ 'lnum': 12,
|
||||
|
@ -35,6 +37,35 @@ Execute(Parsing nim errors should work):
|
|||
\ 'text': 'with : character',
|
||||
\ 'type': 'E',
|
||||
\ },
|
||||
\ {
|
||||
\ 'lnum': 1,
|
||||
\ 'col': 8,
|
||||
\ 'text': 'imported and not used: ''strutils''',
|
||||
\ 'code': 'UnusedImport',
|
||||
\ 'type': 'W',
|
||||
\ 'end_col': 15,
|
||||
\ },
|
||||
\ {
|
||||
\ 'lnum': 12,
|
||||
\ 'col': 9,
|
||||
\ 'text': 'undeclared identifier: ''total''',
|
||||
\ 'type': 'E',
|
||||
\ 'end_col': 13,
|
||||
\ },
|
||||
\ {
|
||||
\ 'lnum': 14,
|
||||
\ 'col': 1,
|
||||
\ 'text': '''sum'' cannot be assigned to',
|
||||
\ 'type': 'E',
|
||||
\ 'end_col': 3,
|
||||
\ },
|
||||
\ {
|
||||
\ 'lnum': 15,
|
||||
\ 'col': 1,
|
||||
\ 'text': 'redefinition of ''getName''; previous declaration here: /nested/folder/foobar.nim(14, 6)',
|
||||
\ 'type': 'E',
|
||||
\ 'end_col': 7,
|
||||
\ },
|
||||
\ ],
|
||||
\ ale_linters#nim#nimcheck#Handle(bufnr(''), [
|
||||
\ 'Line with wrong( format)',
|
||||
|
@ -42,4 +73,8 @@ Execute(Parsing nim errors should work):
|
|||
\ 'foobar.nim(12, 2) Error: identifier expected, but found ''a.barfoo''',
|
||||
\ '/nested/folder/foobar.nim(2, 5) Hint: ''NotUsed'' is declared but not used [XDeclaredButNotUsed]',
|
||||
\ 'foobar.nim(12, 2) Error: with : character',
|
||||
\ 'foobar.nim(1, 8) Warning: imported and not used: ''strutils'' [UnusedImport]',
|
||||
\ 'foobar.nim(12, 9) Error: undeclared identifier: ''total''',
|
||||
\ 'foobar.nim(14, 1) Error: ''sum'' cannot be assigned to',
|
||||
\ 'foobar.nim(15, 1) Error: redefinition of ''getName''; previous declaration here: /nested/folder/foobar.nim(14, 6)',
|
||||
\ ])
|
||||
|
|
Loading…
Reference in New Issue