From 3f0e1cd05dc526b073946ad96c64f6a5e2f9e4e6 Mon Sep 17 00:00:00 2001 From: w0rp Date: Tue, 10 Apr 2018 15:18:16 +0100 Subject: [PATCH] Fix #1492 - Make pylint error parsing work on Windows --- ale_linters/python/pylint.vim | 2 +- test/handler/test_pylint_handler.vader | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/ale_linters/python/pylint.vim b/ale_linters/python/pylint.vim index 27ee6c6..5eafd8f 100644 --- a/ale_linters/python/pylint.vim +++ b/ale_linters/python/pylint.vim @@ -25,7 +25,7 @@ function! ale_linters#python#pylint#Handle(buffer, lines) abort " Matches patterns like the following: " " test.py:4:4: W0101 (unreachable) Unreachable code - let l:pattern = '\v^[^:]+:(\d+):(\d+): ([[:alnum:]]+) \(([^(]*)\) (.*)$' + let l:pattern = '\v^[a-zA-Z]?:?[^:]+:(\d+):(\d+): ([[:alnum:]]+) \(([^(]*)\) (.*)$' let l:output = [] for l:match in ale#util#GetMatches(a:lines, l:pattern) diff --git a/test/handler/test_pylint_handler.vader b/test/handler/test_pylint_handler.vader index aff4084..18f6652 100644 --- a/test/handler/test_pylint_handler.vader +++ b/test/handler/test_pylint_handler.vader @@ -94,3 +94,22 @@ Execute(Ignoring trailing whitespace messages should work): \ '------------------------------------------------------------------', \ 'Your code has been rated at 0.00/10 (previous run: 2.50/10, -2.50)', \ ]) + +Execute(The pylint handler should parse Windows filenames): + AssertEqual + \ [ + \ { + \ 'lnum': 13, + \ 'col': 6, + \ 'text': 'Undefined variable ''x''', + \ 'code': 'undefined-variable', + \ 'type': 'E', + \ }, + \ ], + \ ale_linters#python#pylint#Handle(bufnr(''), [ + \ '************* Module test', + \ 'D:\acm\github\vim\tools\test.py:13:5: E0602 (undefined-variable) Undefined variable ''x''', + \ '', + \ '------------------------------------------------------------------', + \ 'Your code has been rated at 5.83/10 (previous run: 5.83/10, +0.00)', + \ ])