Before: runtime ale_linters/bib/bibclean.vim After: call ale#linter#Reset() Execute(The bibclean handler should parse lines from bibclean <= v2.11.4 correctly): AssertEqual \ [ \ { \ 'lnum': '60', \ 'type': 'W', \ 'text': 'Unexpected value in ``month = "09"''''.', \ 'col': '17' \ }, \ { \ 'lnum': '63', \ 'type': 'E', \ 'text': 'Expected comma after last field ``keywords''''.', \ 'col': ' 1' \ }, \ { \ 'lnum': '176', \ 'type': 'W', \ 'text': 'Unexpected DOI in URL value ``"https://doi.org/DOI"'''': move to separate DOI = "..." key/value in this entry.', \ 'col': '14' \ } \ ], \ ale_linters#bib#bibclean#Handle(255, [ \ "%% \"stdin\", line 60: Unexpected value in ``month = \"09\"''.", \ "%% File positions: input [main.bib] output [stdout]", \ "%% Entry input byte=1681 line=50 column= 1 output byte=1680 line=50 column= 0", \ "%% Value input byte=2137 line=60 column=17 output byte=2137 line=60 column=17", \ "%% Current input byte=2139 line=60 column=19 output byte=2137 line=60 column=17", \ "?? \"stdin\", line 71: Expected comma after last field ``keywords''.", \ "?? File positions: input [main.bib] output [stdout]", \ "?? Entry input byte=2145 line=63 column= 1 output byte=2146 line=63 column= 0", \ "?? Value input byte=2528 line=71 column= 2 output byte=2527 line=70 column=49", \ "?? Current input byte=2529 line=71 column= 3 output byte=2528 line=70 column=50", \ "%% \"stdin\", line 176: Unexpected DOI in URL value ``\"https://doi.org/DOI\"'': move to separate DOI = \"...\" key/value in this entry.", \ "%% File positions: input [stdin] output [stdout]", \ "%% Entry input byte=6813 line=174 column= 1 output byte=8543 line=227 column= 0", \ "%% Value input byte=6890 line=176 column=14 output byte=8641 line=229 column=17", \ "%% Current input byte=6938 line=176 column=62 output byte=8641 line=229 column=17" \ ]) Execute(The bibclean handler should parse lines of bibclean > v2.11.4 correctly): AssertEqual \ [ \ { \ 'lnum': '60', \ 'type': 'W', \ 'text': 'Unexpected value in ``month = "09"''''.', \ 'col': '17' \ }, \ { \ 'lnum': '63', \ 'type': 'E', \ 'text': 'Expected comma after last field ``keywords''''.', \ 'col': ' 1' \ }, \ { \ 'lnum': '176', \ 'type': 'W', \ 'text': 'Unexpected DOI in URL value ``"https://doi.org/DOI"'''': move to separate DOI = "..." key/value in this entry.', \ 'col': '14' \ } \ ], \ ale_linters#bib#bibclean#Handle(255, [ \ "%% stdin:60:Unexpected value in ``month = \"09\"''.", \ "%% File positions: input [main.bib] output [stdout]", \ "%% Entry input byte=1681 line=50 column= 1 output byte=1680 line=50 column= 0", \ "%% Value input byte=2137 line=60 column=17 output byte=2137 line=60 column=17", \ "%% Current input byte=2139 line=60 column=19 output byte=2137 line=60 column=17", \ "?? stdin:71:Expected comma after last field ``keywords''.", \ "?? File positions: input [main.bib] output [stdout]", \ "?? Entry input byte=2145 line=63 column= 1 output byte=2146 line=63 column= 0", \ "?? Value input byte=2528 line=71 column= 2 output byte=2527 line=70 column=49", \ "?? Current input byte=2529 line=71 column= 3 output byte=2528 line=70 column=50", \ "%% stdin:176:Unexpected DOI in URL value ``\"https://doi.org/DOI\"'': move to separate DOI = \"...\" key/value in this entry.", \ "%% File positions: input [stdin] output [stdout]", \ "%% Entry input byte=6813 line=174 column= 1 output byte=8543 line=227 column= 0", \ "%% Value input byte=6890 line=176 column=14 output byte=8641 line=229 column=17", \ "%% Current input byte=6938 line=176 column=62 output byte=8641 line=229 column=17" \ ])