Include: include/setup.vader Execute (csslint: errorformat): new file file1 let output = [ \ "file1: line 315, col 1, Warning - Don't use IDs in selectors. (ids)", \ "file1: Warning - You have 2 h1s, 3 h2s defined in this stylesheet. (unique-headings)'", \ ] Save &errorformat let &errorformat = neomake#makers#ft#css#csslint().errorformat lgetexpr output AssertEqualQf getloclist(0), [ \ {'lnum': 315, 'bufnr': bufnr('%'), 'col': 1, 'valid': 1, 'vcol': 0, \ 'nr': -1, 'type': 'W', 'pattern': '', \ 'text': 'Don''t use IDs in selectors. (ids)'}, \ {'lnum': 0, 'bufnr': bufnr('%'), 'col': 0, 'valid': 1, 'vcol': 0, \ 'nr': -1, 'type': 'W', 'pattern': '', \ 'text': 'You have 2 h1s, 3 h2s defined in this stylesheet. (unique-headings)'''}] bwipe Execute (stylelint): let bufname1 = tempname() let bufname2 = tempname() call writefile([], bufname1) call writefile([], bufname2) let maker = NeomakeTestsGetMakerWithOutput(neomake#makers#ft#css#stylelint(), [ \ bufname1, \ ' 6:5 ✖ Expected indentation of 1 tab indentation ', \ ' 7:9 ✖ Expected indentation of 2 tabs indentation ', \ '', \ bufname2, \ ' 45:2 ✖ Expected empty line before rule rule-empty-line-before', \ '', \ '/doesnotexist', \ ' 26:36 ✖ Unexpected unit "px" unit-whitelist ', \]) new CallNeomake 1, [maker] let buf1 = bufnr(bufname1) let buf2 = bufnr(bufname2) " Without this patch entries are invalid always after setqflist/setloclist. let valid_after_setlist = has('patch-8.0.0580') " Keeps non-existing filenames and entries (without bufnr). " https://github.com/vim/vim/issues/2334 AssertEqual map(getloclist(0), '[v:val.valid, v:val.bufnr, v:val.text]'), [ \ [1, buf1, 'Expected indentation of 1 tab [indentation]'], \ [1, buf1, 'Expected indentation of 2 tabs [indentation]'], \ [1, buf2, 'Expected empty line before rule [rule-empty-line-before]'], \ [0, 0, '/doesnotexist'], \ [valid_after_setlist, 0, 'Unexpected unit "px" [unit-whitelist]'] \ ] bwipe exe buf1 'bwipe' exe buf2 'bwipe' Execute (stylelint: error with no config): let maker = NeomakeTestsGetMakerWithOutput(neomake#makers#ft#css#stylelint(), [ \ 'Error: No configuration provided for /path/to/foo.css', \ ' at module.exports (/usr/lib/node_modules/stylelint/lib/utils/configurationError.js:8:28)', \ ' at stylelint._fullExplorer.load.then.then.config (/usr/lib/node_modules/stylelint/lib/getConfigForFile.js:46:15)', \ ' at ', \]) new CallNeomake 1, [maker] let bufnr = bufnr('/path/to/foo.css') AssertEqualQf getloclist(0), [{ \ 'lnum': 0, 'bufnr': bufnr, 'col': 0, 'valid': 1, 'vcol': 0, \ 'nr': -1, 'type': 'E', 'pattern': '', \ 'text': 'Error: No configuration provided for /path/to/foo.css'}] bwipe exe bufnr.'bwipe'