Before: runtime! ale_linters/markdown/redpen.vim After: call ale#linter#Reset() Execute(redpen handler should handle errors output): AssertEqual \ [ \ { \ 'lnum': 1, \ 'col': 10, \ 'end_lnum': 1, \ 'end_col': 15, \ 'text': 'Found possibly misspelled word "plugin".', \ 'type': 'W', \ 'code': 'Spelling', \ }, \ { \ 'lnum': 1, \ 'col': 1, \ 'text': 'Found possibly misspelled word "NeoVim".', \ 'type': 'W', \ 'code': 'Spelling', \ }, \ { \ 'lnum': 1, \ 'col': 35, \ 'end_lnum': 1, \ 'end_col': 55, \ 'text': 'Found possibly misspelled word "コードチェック".', \ 'type': 'W', \ 'code': 'Spelling', \ }, \ ], \ ale#handlers#redpen#HandleRedpenOutput(bufnr(''), [ \ '[', \ ' {', \ ' "document": "test.md",', \ ' "errors": [', \ ' {', \ ' "sentence": "ALE is a plugin for providing linting in NeoVim and Vim 8 while you edit your text files.",', \ ' "endPosition": {', \ ' "offset": 15,', \ ' "lineNum": 1', \ ' },', \ ' "validator": "Spelling",', \ ' "lineNum": 1,', \ ' "sentenceStartColumnNum": 0,', \ ' "message": "Found possibly misspelled word \"plugin\".",', \ ' "startPosition": {', \ ' "offset": 9,', \ ' "lineNum": 1', \ ' }', \ ' },', \ ' {', \ ' "sentence": "ALE is a plugin for providing linting in NeoVim and Vim 8 while you edit your text files.",', \ ' "validator": "Spelling",', \ ' "lineNum": 1,', \ ' "sentenceStartColumnNum": 0,', \ ' "message": "Found possibly misspelled word \"NeoVim\"."', \ ' },', \ ' {', \ ' "sentence": "ALEはNeoVimとVim8で非同期のコードチェックを実現するプラグインです。",', \ ' "endPosition": {', \ ' "offset": 27,', \ ' "lineNum": 1', \ ' },', \ ' "validator": "Spelling",', \ ' "lineNum": 1,', \ ' "sentenceStartColumnNum": 0,', \ ' "message": "Found possibly misspelled word \"コードチェック\".",', \ ' "startPosition": {', \ ' "offset": 20,', \ ' "lineNum": 1', \ ' }', \ ' }', \ ' ]', \ ' }', \ ']', \ ]) Execute(redpen handler should no error output): AssertEqual \ [], \ ale#handlers#redpen#HandleRedpenOutput(bufnr(''), [ \ '[', \ ' {', \ ' "document": "test.md",', \ ' "errors": []', \ ' }', \ ']', \ ])