Include: include/setup.vader Execute (maker.args as list gets escaped): let maker = { \ 'exe': '/usr/bin/printf', \ 'args': ['%s\n', '1', '2', '3a 3b'], \ 'errorformat': '%f: %m', \ 'mapexpr': 'expand("%:p") . ": " . v:val', \ } let fname = 'tests/fixtures/a filename with spaces' new edit tests/fixtures/a\ filename\ with\ spaces let fname = bufname('%') call neomake#Make(1, [maker]) NeomakeTestsWaitForFinishedJobs AssertEqual map(getloclist(0), 'v:val.text'), \ ['1', '2', '3a 3b', fname] bwipe Execute (maker.args as string gets not escaped): let maker = { \ 'exe': '/usr/bin/printf', \ 'args': "'%s\\n' 1 2 '3a 3b' 4", \ 'errorformat': '%f: %m', \ 'mapexpr': 'expand("%:p") . ": " . v:val', \ } let fname = 'tests/fixtures/a filename with spaces' new edit tests/fixtures/a\ filename\ with\ spaces let fname = expand('%') call neomake#Make(1, [maker]) NeomakeTestsWaitForFinishedJobs AssertEqual map(getloclist(0), 'v:val.text'), \ ['1', '2', '3a 3b', '4', fname] bwipe Execute (fname in args gets not expanded (command maker, args as list)): let maker = { \ 'exe': 'printf', \ 'args': ['%s'], \ 'errorformat': '%m', \ } new lcd tests/fixtures edit ~ CallNeomake 1, [maker] AssertEqual map(getloclist(0), 'v:val.text'), ['~'] if neomake#has_async_support() AssertNeomakeMessage "Starting async job: printf '%s' '~'." else AssertNeomakeMessage "Starting [string]: printf '%s' '~'." endif bwipe Execute (fname in args gets not expanded (command maker, args as string)): let maker = { \ 'exe': 'printf', \ 'args': '%s', \ 'errorformat': '%m', \ } new lcd tests/fixtures edit ~ CallNeomake 1, [maker] AssertEqual map(getloclist(0), 'v:val.text'), ['~'] if neomake#has_async_support() if has('nvim') AssertNeomakeMessage "Starting async job [string]: printf %s '~'." endif else AssertNeomakeMessage "Starting [string]: printf %s '~'." endif bwipe Execute (fname in args gets not expanded (maker from command string)): let maker = neomake#utils#MakerFromCommand('printf %s') let maker.errorformat = '%m' new lcd tests/fixtures edit ~ CallNeomake 1, [maker] AssertEqual map(getloclist(0), 'v:val.text'), ['~'] let shell_argv = join(split(&shell) + split(&shellcmdflag)) if neomake#has_async_support() AssertNeomakeMessage "Starting async job: ".shell_argv." 'printf %s '\\''~'\\'''." else AssertNeomakeMessage "Starting [string]: ".shell_argv." 'printf %s '\\''~'\\'''." endif bwipe Execute (fname in args gets not expanded (maker from command list)): let maker = neomake#utils#MakerFromCommand(['printf', '%s']) let maker.errorformat = '%m' new lcd tests/fixtures edit ~ CallNeomake 1, [maker] AssertEqual map(getloclist(0), 'v:val.text'), ['~'] if neomake#has_async_support() AssertNeomakeMessage "Starting async job: printf '%s' '~'." else AssertNeomakeMessage "Starting [string]: printf '%s' '~'." endif bwipe