diff --git a/ale_linters/typescript/typecheck.vim b/ale_linters/typescript/typecheck.vim index 080a2381..0de6639c 100644 --- a/ale_linters/typescript/typecheck.vim +++ b/ale_linters/typescript/typecheck.vim @@ -7,7 +7,7 @@ function! ale_linters#typescript#typecheck#Handle(buffer, lines) abort " hello.ts[7, 41]: Property 'a' does not exist on type 'A' " hello.ts[16, 7]: Type 'A' is not assignable to type 'B' " - let l:pattern = '.\+.ts\[\(\d\+\), \(\d\+\)\]: \(.\+\)' + let l:pattern = '.\+\.ts\[\(\d\+\), \(\d\+\)\]: \(.\+\)' let l:output = [] for l:line in a:lines diff --git a/test/test_typecheck_handler.vader b/test/test_typecheck_handler.vader new file mode 100644 index 00000000..2f8a219b --- /dev/null +++ b/test/test_typecheck_handler.vader @@ -0,0 +1,31 @@ +Execute(The typecheck handler should parse lines correctly): + runtime ale_linters/typescript/typecheck.vim + + AssertEqual + \ [ + \ { + \ 'bufnr': 347, + \ 'lnum': 16, + \ 'vcol': 0, + \ 'col': 7, + \ 'text': "Type 'A' is not assignable to type 'B'", + \ 'type': 'E', + \ 'nr': -1, + \ }, + \ { + \ 'bufnr': 347, + \ 'lnum': 7, + \ 'vcol': 0, + \ 'col': 41, + \ 'text': "Property 'a' does not exist on type 'A'", + \ 'type': 'E', + \ 'nr': -1, + \ }, + \ ], + \ ale_linters#typescript#typecheck#Handle(347, [ + \ "somets.ts[16, 7]: Type 'A' is not assignable to type 'B'", + \ "somets.ts[7, 41]: Property 'a' does not exist on type 'A'", + \ ]) + +After: + call ale#linter#Reset()