mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-01-24 06:40:05 +08:00
231 lines
11 KiB
Plaintext
231 lines
11 KiB
Plaintext
Include: include/setup.vader
|
|
|
|
Execute (LoclistCounts):
|
|
call neomake#statusline#ResetCounts()
|
|
call neomake#statusline#ResetCountsForBuf(99)
|
|
call neomake#statusline#AddLoclistCount(99, {'type': 'E', 'bufnr': 99})
|
|
call neomake#statusline#AddLoclistCount(99, {'type': 'W', 'bufnr': 99})
|
|
AssertEqual neomake#statusline#LoclistCounts(), {}
|
|
" With 'buf ==# "all"' this matched 0.
|
|
AssertEqual neomake#statusline#LoclistCounts(0), {}
|
|
|
|
" 0 could refer to current buffer, but does not currently.
|
|
let curbufnr = bufnr('%')
|
|
call neomake#statusline#AddLoclistCount(curbufnr, {'type': 'E', 'bufnr': curbufnr})
|
|
AssertEqual neomake#statusline#LoclistCounts(0), {}
|
|
|
|
AssertEqual neomake#statusline#LoclistCounts(1), {}
|
|
AssertEqual neomake#statusline#LoclistCounts(99), {'E': 1, 'W': 1}
|
|
AssertEqual filter(neomake#statusline#LoclistCounts('all'), 'v:key == 99'),
|
|
\ {'99': {'E': 1, 'W': 1}}
|
|
|
|
Execute (neomake#statusline#ResetCounts):
|
|
call neomake#statusline#ResetCounts()
|
|
call neomake#statusline#AddLoclistCount(99, {'type': 'E', 'bufnr': 99})
|
|
call neomake#statusline#AddLoclistCount(99, {'type': 'W', 'bufnr': 99})
|
|
AssertEqual neomake#statusline#LoclistCounts('all'), {'99': {'E': 1, 'W': 1}}
|
|
call neomake#statusline#AddQflistCount({'type': 'S', 'bufnr': 99})
|
|
AssertEqual neomake#statusline#QflistCounts(), {'S': 1}
|
|
|
|
call neomake#statusline#ResetCounts()
|
|
AssertEqual neomake#statusline#LoclistCounts('all'), {}
|
|
AssertEqual neomake#statusline#QflistCounts(), {}
|
|
|
|
Execute (LoclistCounts returns number):
|
|
call g:NeomakeSetupAutocmdWrappers()
|
|
new
|
|
let bufnr = bufnr('%')
|
|
call neomake#statusline#AddLoclistCount(bufnr, {'type': 'E', 'bufnr': bufnr})
|
|
AssertEqual neomake#statusline#LoclistCounts(bufnr), {'E': 1}
|
|
AssertEqual [], g:neomake_test_countschanged
|
|
call neomake#statusline#ResetCountsForBuf(bufnr)
|
|
AssertEqual bufnr, g:neomake_test_countschanged[0].bufnr
|
|
call setbufvar(g:neomake_test_countschanged[0].bufnr, 'test', 1)
|
|
AssertEqual 1, getbufvar(g:neomake_test_countschanged[0].bufnr, 'test')
|
|
bwipe
|
|
|
|
Execute (LoclistCounts for wiped buffer should clean s:loclist_counts):
|
|
call g:NeomakeSetupAutocmdWrappers()
|
|
new
|
|
let bufnr = bufnr('%')
|
|
call neomake#statusline#AddLoclistCount(bufnr, {'type': 'E', 'bufnr': bufnr})
|
|
AssertEqual neomake#statusline#LoclistCounts(bufnr), {'E': 1}
|
|
bwipe
|
|
AssertEqual neomake#statusline#LoclistCounts(bufnr), {'E': 1}
|
|
AssertEqual [], g:neomake_test_countschanged
|
|
|
|
call neomake#statusline#ResetCounts()
|
|
AssertEqual bufnr, g:neomake_test_countschanged[0].bufnr
|
|
call setbufvar(g:neomake_test_countschanged[0].bufnr, 'test', 1)
|
|
AssertEqual '', getbufvar(g:neomake_test_countschanged[0].bufnr, 'test')
|
|
|
|
Execute (neomake#statusline#get_status):
|
|
Save g:neomake_verbose
|
|
let g:neomake_verbose = 3
|
|
|
|
call neomake#statusline#ResetCounts()
|
|
new
|
|
let bufnr = bufnr('')
|
|
AssertEqual neomake#statusline#get_status(bufnr, {}), '?'
|
|
|
|
AssertEqual neomake#statusline#get_status(bufnr, {'format_loclist_unknown': '{{running_job_names}}'}), ''
|
|
" {{running_jobs}} is only available with 'format_running' (internally).
|
|
AssertEqual neomake#statusline#get_status(bufnr, {'format_loclist_unknown': '{{running_jobs}}'}), '{{running_jobs}}'
|
|
AssertNeomakeMessage "Error when formatting '{{running_jobs}}': Unknown statusline format: {{running_jobs}}.", 0
|
|
|
|
call neomake#Make({'enabled_makers': [g:sleep_maker]})
|
|
if neomake#has_async_support()
|
|
AssertEqual neomake#statusline#get_status(bufnr, {}), '… (sleep-maker)'
|
|
AssertEqual neomake#statusline#get_status(bufnr, {'format_running': '...'}), '...'
|
|
AssertEqual neomake#statusline#get_status(bufnr, {'format_running': ''}), ''
|
|
" format_running=0 disables display of running state.
|
|
AssertEqual neomake#statusline#get_status(bufnr, {'format_running': 0}), '?'
|
|
AssertEqual neomake#statusline#get_status(bufnr, {'format_running': '{{running_job_names}}'}), 'sleep-maker'
|
|
|
|
Assert neomake#statusline#get_status(bufnr, {'format_running': '{{running_jobs}}'}) =~# '\m^{''', '{{running_jobs}} is replaced in format_running'
|
|
|
|
AssertEqual neomake#statusline#get_status(bufnr, {'format_lists': '{{quickfix}}'}), ''
|
|
AssertEqual neomake#statusline#get_status(bufnr, {'format_lists': '{{loclist}}'}), '… (sleep-maker)'
|
|
" lists_sep is ignored for single list.
|
|
AssertEqual neomake#statusline#get_status(bufnr, {'lists_sep': 'IGNORED'}), '… (sleep-maker)'
|
|
|
|
call neomake#statusline#get_status(bufnr(''), {'format_running': 'Neomake: {{does_not_exist}}'})
|
|
AssertNeomakeMessage "Error when formatting 'Neomake: {{does_not_exist}}': Unknown statusline format: {{does_not_exist}}.", 0
|
|
|
|
" Start project make.
|
|
call neomake#Make({'file_mode': 0, 'enabled_makers': [g:sleep_maker]})
|
|
AssertEqual neomake#statusline#get_status(bufnr, {}), '… (sleep-maker) … (sleep-maker!)'
|
|
" Swapped default, no lists_sep.
|
|
AssertEqual neomake#statusline#get_status(bufnr, {'format_lists': '{{quickfix}} {{loclist}}'}), '… (sleep-maker!) … (sleep-maker)'
|
|
" Custom lists_sep.
|
|
AssertEqual neomake#statusline#get_status(bufnr, {'lists_sep': '//'}), '… (sleep-maker)//… (sleep-maker!)'
|
|
|
|
" Start project makers.
|
|
call neomake#Make({'file_mode': 0, 'enabled_makers': [g:sleep_maker, g:sleep_maker]})
|
|
AssertEqual neomake#statusline#get_status(bufnr, {
|
|
\ 'running_jobs_separator': '_SEP_',
|
|
\ 'format_running_job_project': 'project:%s',
|
|
\ 'format_running_job_file': 'file:%s',
|
|
\ }), '… (file:sleep-maker) … (project:sleep-maker_SEP_project:sleep-maker)'
|
|
|
|
NeomakeTestsWaitForFinishedJobs
|
|
else
|
|
AssertEqual neomake#statusline#get_status(bufnr, {'format_running': '...'}), '%#NeomakeStatusGood#✓%#NeomakeStatReset#'
|
|
AssertEqual neomake#statusline#get_status(bufnr, {'format_loclist_ok': 'dandy!'}), 'dandy!'
|
|
AssertEqual neomake#statusline#get_status(bufnr, {'format_loclist_ok': '{{running_job_names}}'}), ''
|
|
|
|
" Start project makers.
|
|
call neomake#Make({'file_mode': 0, 'enabled_makers': [g:sleep_maker, g:sleep_maker]})
|
|
endif
|
|
|
|
AssertNeomakeMessage '\v^Skipped 1 entries without bufnr:', 3
|
|
|
|
call neomake#statusline#get_status(bufnr(''), {'format_loclist_ok': 'Neomake: {{does_not_exist}}'})
|
|
AssertNeomakeMessage "Error when formatting 'Neomake: {{does_not_exist}}': Unknown statusline format: {{does_not_exist}}.", 0
|
|
call neomake#statusline#get_status(bufnr(''), {'format_loclist_ok': '{{foo}} {{bar}}'})
|
|
AssertNeomakeMessage "Errors when formatting '{{foo}} {{bar}}': Unknown statusline format: {{foo}}., Unknown statusline format: {{bar}}.", 0
|
|
|
|
" NOTE: warning is counted with quickfix list, but skipped with location list, because it has no bufnr.
|
|
let expected = '%#NeomakeStatusGood#✓%#NeomakeStatReset# %#NeomakeStatColorQuickfixTypeW# QW:2 %#NeomakeStatReset#'
|
|
AssertEqual neomake#statusline#get_status(bufnr, {}), expected
|
|
AssertEqual neomake#statusline#get(bufnr, {}), expected
|
|
|
|
call neomake#statusline#ResetCountsForBuf(bufnr)
|
|
let expected = '? %#NeomakeStatColorQuickfixTypeW# QW:2 %#NeomakeStatReset#'
|
|
AssertEqual neomake#statusline#get_status(bufnr, {}), expected
|
|
AssertEqual neomake#statusline#get(bufnr, {}), expected
|
|
|
|
call neomake#statusline#ResetCountsForProject()
|
|
AssertEqual neomake#statusline#get_status(bufnr, {}), '?'
|
|
AssertEqual neomake#statusline#get(bufnr, {}), '?'
|
|
|
|
CallNeomake 0, [g:success_maker]
|
|
AssertEqual neomake#statusline#get_status(bufnr, {'format_quickfix_ok': 'OK!'}), '? OK!'
|
|
bwipe
|
|
|
|
Execute (neomake#statusline#get: clears cache with new job (file mode)):
|
|
new
|
|
let bufnr = bufnr('%')
|
|
CallNeomake {'enabled_makers': [g:error_maker]}
|
|
AssertEqual neomake#statusline#get(bufnr), '%#NeomakeStatColorTypeE# E:1 %#NeomakeStatReset#'
|
|
|
|
call neomake#Make({'enabled_makers': [g:success_maker]})
|
|
if neomake#has_async_support()
|
|
AssertEqual neomake#statusline#get(bufnr), '… (success-maker)'
|
|
NeomakeTestsWaitForFinishedJobs
|
|
endif
|
|
AssertEqual neomake#statusline#get(bufnr), '%#NeomakeStatusGood#✓%#NeomakeStatReset#'
|
|
bwipe
|
|
|
|
Execute (neomake#statusline#get: clears cache with new job (project mode)):
|
|
new
|
|
let bufnr = bufnr('%')
|
|
CallNeomake {'file_mode': 0, 'enabled_makers': [g:error_maker]}
|
|
AssertEqual neomake#statusline#get(bufnr), '? %#NeomakeStatColorQuickfixTypeE# QE:1 %#NeomakeStatReset#'
|
|
|
|
call neomake#Make({'file_mode': 0, 'enabled_makers': [g:true_maker]})
|
|
if neomake#has_async_support()
|
|
AssertEqual neomake#statusline#get(bufnr), '? … (true-maker!)'
|
|
endif
|
|
call neomake#Make({'file_mode': 0, 'enabled_makers': [g:success_maker]})
|
|
if neomake#has_async_support()
|
|
AssertEqual neomake#statusline#get(bufnr), '? … (true-maker!, success-maker!)'
|
|
NeomakeTestsWaitForFinishedJobs
|
|
endif
|
|
" Unknown status, only project makers have been run.
|
|
AssertEqual neomake#statusline#get(bufnr), '?'
|
|
bwipe
|
|
|
|
Execute (neomake#statusline#get: clears cache with canceled job: keeps '?'):
|
|
if neomake#has_async_support()
|
|
new
|
|
let bufnr = bufnr('%')
|
|
call neomake#Make({'file_mode': 0, 'enabled_makers': [g:sleep_maker]})
|
|
AssertEqual neomake#statusline#get(bufnr), '? … (sleep-maker!)'
|
|
NeomakeCancelJobs
|
|
AssertEqual neomake#statusline#get(bufnr), '? … (sleep-maker!)'
|
|
NeomakeTestsWaitForFinishedJobs
|
|
AssertEqual neomake#statusline#get(bufnr), '?'
|
|
bwipe
|
|
else
|
|
NeomakeTestsSkip 'no async support.'
|
|
endif
|
|
|
|
Execute (neomake#statusline#get: disabling/enabling: clears cache):
|
|
new
|
|
let bufnr = bufnr('%')
|
|
AssertEqual neomake#statusline#get(bufnr), '?'
|
|
NeomakeDisableBuffer
|
|
AssertEqual neomake#statusline#get(bufnr), 'b- ?'
|
|
AssertNeomakeMessage "Using setting disabled=1 from 'buffer' (statusline#get).", 3, {'bufnr': bufnr}
|
|
|
|
NeomakeToggleBuffer
|
|
AssertEqual neomake#statusline#get(bufnr), '?'
|
|
|
|
CallNeomake 1, [g:true_maker]
|
|
AssertEqual neomake#statusline#get(bufnr), '%#NeomakeStatusGood#✓%#NeomakeStatReset#'
|
|
|
|
" no-op
|
|
NeomakeEnableBuffer
|
|
AssertEqual neomake#statusline#get(bufnr), '%#NeomakeStatusGood#✓%#NeomakeStatReset#'
|
|
bwipe
|
|
|
|
Execute (neomake#statusline#get: use_highlights_with_defaults):
|
|
new
|
|
let bufnr = bufnr('%')
|
|
AssertEqual neomake#statusline#get(bufnr, {'use_highlights_with_defaults': 0}), '?'
|
|
CallNeomake 1, [g:success_entry_maker]
|
|
AssertEqual neomake#statusline#get(bufnr, {'use_highlights_with_defaults': 0}), '✓'
|
|
AssertEqual neomake#statusline#get(bufnr, {'use_highlights_with_defaults': 1}),
|
|
\ '%#NeomakeStatusGood#✓%#NeomakeStatReset#'
|
|
bwipe
|
|
|
|
Execute (statusline: uses user-configured highlights):
|
|
new
|
|
let bufnr = bufnr('%')
|
|
hi NeomakeStatColorTypeW ctermfg=Black ctermbg=Black cterm=none
|
|
let orig = neomake#utils#redir('hi NeomakeStatColorTypeW')
|
|
CallNeomake 1, [g:success_entry_maker]
|
|
AssertEqual neomake#utils#redir('hi NeomakeStatColorTypeW'), orig
|
|
bwipe
|