From 86af4be0d0ca484c8549ea331f07732680784cd9 Mon Sep 17 00:00:00 2001 From: Pablo Acosta-Serafini Date: Mon, 14 Jan 2019 20:36:14 -0500 Subject: [PATCH] Fixed parsing of pydocstyle errors ale#Escape function seems to prepend and append ' to the file name, which are not present in the pydocstyle output. Having the parsing regexp match the file name was overkill anyway, since there is an obvious 1:1 correspondence between the buffer number and the (potential) errors reported by pydocstyle. --- ale_linters/python/pydocstyle.vim | 3 +-- test/handler/test_pydocstyle_handler.vader | 6 +++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/ale_linters/python/pydocstyle.vim b/ale_linters/python/pydocstyle.vim index ebf92bf1..177f5e0f 100644 --- a/ale_linters/python/pydocstyle.vim +++ b/ale_linters/python/pydocstyle.vim @@ -33,8 +33,7 @@ function! ale_linters#python#pydocstyle#Handle(buffer, lines) abort " Matches patterns like the following: " mydir/myfile.py:33 in public function `myfunction`: " DXXX: Error description - let l:fname = ale#Escape(fnamemodify(bufname(a:buffer), ':p:t')) - let l:line1_pattern = '\v^' . l:fname . ':\s*(\d+)\s+.*$' + let l:line1_pattern = '\v^.*:\s*(\d+)\s+.*$' let l:line2_pattern = '\v^.*([a-zA-Z]\d+):\s*(.*)$' let l:output = [] diff --git a/test/handler/test_pydocstyle_handler.vader b/test/handler/test_pydocstyle_handler.vader index d155dc9a..cfb75307 100644 --- a/test/handler/test_pydocstyle_handler.vader +++ b/test/handler/test_pydocstyle_handler.vader @@ -66,7 +66,7 @@ Execute(Basic pydocstyle warnings should be handled): \ ], \ ale_linters#python#pydocstyle#Handle(bufnr(''), [ \ 'Checking file ' . fnamemodify(bufname(bufnr('')), ':p') . '.', - \ ale#Escape(fnamemodify(bufname(bufnr('')), ':t')) . ':1 at module level:', + \ './mydir/myfile.py:1 at module level:', \ ' D100: Missing docstring in public module', \ '', \ ' All modules should normally have docstrings. [...] all functions and', @@ -80,7 +80,7 @@ Execute(Basic pydocstyle warnings should be handled): \ ' 1: # 2: 3: s 4: a 5: m 6: p 7: l ...', \ '', \ '', - \ ale#Escape(fnamemodify(bufname(bufnr('')), ':t')) . ':4 in public function `main`:', + \ 'C:\mydir\myfile.py:4 in public function `main`:', \ ' D205: 1 blank line required between summary line and description (found 0)', \ '', \ ' Multi-line docstrings consist of a summary line just like a one-line', @@ -92,7 +92,7 @@ Execute(Basic pydocstyle warnings should be handled): \ ' 3: d 4: e 5: f 6: 7: m 8: a 9: i ...', \ '', \ '', - \ ale#Escape(fnamemodify(bufname(bufnr('')), ':t')) . ':4 in public function `main`:', + \ 'myfile.py:4 in public function `main`:', \ ' D400: First line should end with a period (not ''e'')', \ '', \ ' The [first line of a] docstring is a phrase ending in a period.',