Include: include/setup.vader Execute (neomake#cmd#complete_makers: completes makers for b:): new let b:neomake_c_lint_maker = { \ 'exe': 'lint', \ 'args': ['--option', 'x'], \ 'errorformat': '%f:%l:%c: %m', \ } set filetype=c call g:NeomakeTestsCreateExe('lint', []) AssertEqual neomake#GetMaker('checkpatch').name, 'checkpatch' Assert index(neomake#cmd#complete_makers('', 'Neomake '), 'lint') != -1, 'lint maker gets completed' bwipe Execute (neomake#cmd#complete_makers: handles invalid ArgLead): AssertEqual neomake#cmd#complete_makers('~', 'Neomake '), [] Execute (neomake#cmd#complete_makers: completes makers for g:): Save g:neomake_c_lint_maker new let g:neomake_c_lint_maker = { \ 'exe': 'lint', \ 'args': ['--option', 'x'], \ 'errorformat': '%f:%l:%c: %m', \ } set filetype=c call g:NeomakeTestsCreateExe('lint', []) Assert index(neomake#cmd#complete_makers('', 'Neomake '), 'lint') != -1, 'lint maker gets completed' bwipe Execute (neomake#cmd#complete_makers: completes space after Neomake!): AssertEqual neomake#cmd#complete_makers('', 'Neomake!'), [' '] Execute (neomake#cmd#complete_makers: completes all (executable) makers, preferring filetype): call g:NeomakeTestsSetPATH('') new noautocmd set ft=rust for m in ['cargo', 'cargotest', 'rustc', 'cabal', 'clippy', 'gradle'] call g:NeomakeTestsCreateExe(m, []) endfor " Neomake! completes ft makers (first), and project makers. AssertEqual neomake#cmd#complete_makers('', 'Neomake! '), [ \ 'cargo', 'cargotest', 'rustc', 'cabal', 'clippy', 'gradle'] call g:NeomakeTestsCreateExe('mvn', []) AssertEqual neomake#cmd#complete_makers('', 'Neomake! '), [ \ 'cargo', 'cargotest', 'rustc', 'cabal', 'clippy', 'gradle', 'mvn'] " Neomake completes ft makers. AssertEqual neomake#cmd#complete_makers('', 'Neomake '), [ \ 'cargo', 'cargotest', 'rustc'] " Neomake completes ft makers with project makers when called again. AssertEqual neomake#cmd#complete_makers('', 'Neomake '), [ \ 'cargo', 'cargotest', 'rustc', 'cabal', 'clippy', 'gradle', 'mvn'] " Neomake with ArgLead completes ft makers. AssertEqual neomake#cmd#complete_makers('c', 'Neomake c'), [ \ 'cargo', 'cargotest'] " Neomake with ArgLead completes ft makers with project makers when called again. AssertEqual neomake#cmd#complete_makers('c', 'Neomake c'), [ \ 'cargo', 'cargotest', 'cabal', 'clippy'] " Neomake completes global makers when no filetype makers match. AssertEqual neomake#cmd#complete_makers('g', 'Neomake g'), [ \ 'gradle'] " Neomake with ArgLead completes ft makers only again afterwards. AssertEqual neomake#cmd#complete_makers('c', 'Neomake c'), [ \ 'cargo', 'cargotest'] bwipe Execute (neomake#cmd#complete_makers: filter by maker.name): new noautocmd set filetype=neomake_tests let b:neomake_neomake_tests_custom_maker = { \ 'name': 'some_custom_name', \ 'exe': 'true', \ } let all = neomake#cmd#complete_makers('', 'Neomake ') Assert index(all, 'some_custom_name') == -1 " Includes maker.name (appended with non-breaking-space). Assert index(all, 'custom (some_custom_name)') != -1 let filtered = neomake#cmd#complete_makers('some_', 'Neomake some_') AssertEqual filtered, [] let filtered = neomake#cmd#complete_makers('cust', 'Neomake cust') " Does not include description for single match. AssertEqual filtered, ['custom'] " Does not append maker.name if it matches completely. let filtered = neomake#cmd#complete_makers('custom', 'Neomake custom') AssertEqual filtered, ['custom'] " Completes with partial annotation. let filtered = neomake#cmd#complete_makers('custom (some_custom_', 'Neomake custom (some_custom_') AssertEqual filtered, ['custom (some_custom_name)'] " A second time (for s:last_completion adding project makers). let filtered = neomake#cmd#complete_makers('custom (some_custom_', 'Neomake custom (some_custom_') AssertEqual filtered, ['custom (some_custom_name)'] " Completes with full annotation. let filtered = neomake#cmd#complete_makers('custom (some_custom_name)', 'Neomake custom (some_custom_name)') AssertEqual filtered, ['custom (some_custom_name)'] " Includes description with multiple matches. let b:neomake_neomake_tests_custom2_maker = { \ 'name': 'another_custom_name', \ 'exe': 'true', \ } let filtered = neomake#cmd#complete_makers('', 'Neomake ') AssertEqual filtered[:1], [ \ 'custom (some_custom_name)', \ 'custom2 (another_custom_name)', \ ] let filtered = neomake#cmd#complete_makers('cust', 'Neomake cust') AssertEqual filtered, [ \ 'custom', \ 'custom2', \ ] let filtered = neomake#cmd#complete_makers('custom', 'Neomake custom') AssertEqual filtered, [ \ 'custom', \ 'custom2', \ ] bwipe Execute (neomake#cmd#complete_jobs): if NeomakeAsyncTestsSetup() AssertEqual neomake#cmd#complete_jobs(), '' let job_ids = [neomake#Sh('sleep 0.1')] AssertEqual neomake#cmd#complete_jobs(), job_ids[0].': sh: sleep 0.1' let job_ids += [neomake#Sh('sleep 0.11')] AssertEqual neomake#cmd#complete_jobs(), printf( \ "%d: sh: sleep 0.1\n%d: sh: sleep 0.11", job_ids[0], job_ids[1]) NeomakeCancelJobs NeomakeTestsWaitForFinishedJobs endif