diff --git a/autoload/ale/handlers/markdownlint.vim b/autoload/ale/handlers/markdownlint.vim index 6c273bd0..4ede259b 100644 --- a/autoload/ale/handlers/markdownlint.vim +++ b/autoload/ale/handlers/markdownlint.vim @@ -2,15 +2,21 @@ " Description: Adds support for markdownlint function! ale#handlers#markdownlint#Handle(buffer, lines) abort - let l:pattern=': \?\(\d\+\)\(:\(\d\+\)\?\)\? \(MD\d\{3}/[A-Za-z0-9-/]\+\) \(.*\)$' + let l:pattern=': \?\(\d\+\)\(:\(\d\+\)\?\)\? \(error\|warning\)\? \?\(MD\d\{3}/[A-Za-z0-9-/]\+\) \(.*\)$' let l:output=[] for l:match in ale#util#GetMatches(a:lines, l:pattern) + let l:type = 'W' + + if l:match[4] is# 'error' + let l:type = 'E' + endif + let l:result = ({ \ 'lnum': l:match[1] + 0, - \ 'code': l:match[4], - \ 'text': l:match[5], - \ 'type': 'W', + \ 'code': l:match[5], + \ 'text': l:match[6], + \ 'type': l:type, \}) if len(l:match[3]) > 0 diff --git a/test/handler/test_markdownlint_handler.vader b/test/handler/test_markdownlint_handler.vader index f49dba97..d9bf4618 100644 --- a/test/handler/test_markdownlint_handler.vader +++ b/test/handler/test_markdownlint_handler.vader @@ -32,3 +32,33 @@ Execute(The Markdownlint handler should parse output with multiple slashes in ru \ ale#handlers#markdownlint#Handle(0, [ \ 'README.md:10 MD022/blanks-around-headings/blanks-around-headers Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Above] [Context: "### something"]' \ ]) + +Execute(The Markdownlint handler should parse output with error severity (0.47.0+)): + AssertEqual + \ [ + \ { + \ 'lnum': 3, + \ 'col': 1, + \ 'code': 'MD051/link-fragments', + \ 'text': 'Link fragments should be valid [Context: "[Installation](#installation)"]', + \ 'type': 'E' + \ } + \ ], + \ ale#handlers#markdownlint#Handle(0, [ + \ 'test.md:3:1 error MD051/link-fragments Link fragments should be valid [Context: "[Installation](#installation)"]' + \ ]) + +Execute(The Markdownlint handler should parse output with warning severity (0.47.0+)): + AssertEqual + \ [ + \ { + \ 'lnum': 3, + \ 'col': 1, + \ 'code': 'MD051/link-fragments', + \ 'text': 'Link fragments should be valid [Context: "[Installation](#installation)"]', + \ 'type': 'W' + \ } + \ ], + \ ale#handlers#markdownlint#Handle(0, [ + \ 'test.md:3:1 warning MD051/link-fragments Link fragments should be valid [Context: "[Installation](#installation)"]' + \ ])