@@ -388,6 +388,49 @@ function! syntastic#preprocess#rparse(errors) abort " {{{2
388388 return out
389389endfunction " }}}2
390390
391+ function ! syntastic#preprocess#remark_lint (errors) abort " {{{2
392+ let out = []
393+ let fname = expand (' %' , 1 )
394+
395+ for err in a: errors
396+ if err = ~# ' \m^\f\+$'
397+ let fname = err
398+
399+ elseif err = ~# ' \v^\s+\d+:\d+\s+%(warning|error)\s.*remark-lint$'
400+ let parts = matchlist (err, ' \v^\s+(\d+):(\d+)\s+([ew])\S+\s+(.{-})\s+(\S+)\s+remark-lint$' )
401+ if len (parts) >6
402+ let line = str2nr (parts[1 ])
403+ let col = str2nr (parts[2 ])
404+ let type = parts[3 ]
405+ let message = parts[4 ] . ' [' . parts[5 ] . ' ]'
406+ call add (out, join ([fname, type , line , col , message], ' :' ))
407+ else
408+ call syntastic#log#warn (' checker markdown/remark_lint: unrecognized error item ' . string (err))
409+ endif
410+
411+ elseif err = ~# ' \v^\s+\d+:\d+-\d+:\d+\s+%(warning|error)\s.*remark-lint$'
412+ let parts = matchlist (err, ' \v^\s+(\d+):(\d+)-(\d+):(\d+)\s+([ew])\S+\s+(.{-})\s+(\S+)\s+remark-lint$' )
413+ if len (parts) >8
414+ let line1 = str2nr (parts[1 ])
415+ let col1 = str2nr (parts[2 ])
416+ let line2 = str2nr (parts[3 ])
417+ let col2 = str2nr (parts[4 ]) - 1
418+ let type = parts[5 ]
419+ let message = parts[6 ] . ' [' . parts[7 ] . ' ]'
420+ if line1 == line2
421+ call add (out, join ([fname, type , line1, col1, col2, message], ' :' ))
422+ else
423+ call add (out, join ([fname, type , line1, col1, message], ' :' ))
424+ endif
425+ else
426+ call syntastic#log#warn (' checker markdown/remark_lint: unrecognized error item ' . string (err))
427+ endif
428+ endif
429+ endfor
430+
431+ return out
432+ endfunction " }}}2
433+
391434function ! syntastic#preprocess#scss_lint (errors) abort " {{{2
392435 let errs = join (a: errors , ' ' )
393436 if errs == # ' '
0 commit comments