This repository has been archived on 2024-07-19. You can view files and clone it, but cannot push or open issues or pull requests.
ale/test/test_list_formatting.vader
2020-08-31 09:01:44 +01:00

188 lines
4 KiB
Text

Before:
Save g:ale_set_loclist
Save g:ale_set_quickfix
Save g:ale_loclist_msg_format
Save g:ale_open_list
Save g:ale_buffer_info
Save g:ale_set_lists_synchronously
let g:ale_set_lists_synchronously = 1
let g:ale_loclist_msg_format = '%code: %%s'
let g:ale_open_list = 0
let g:loclist = []
let g:ale_buffer_info = {bufnr(''): {'loclist': g:loclist}}
function! AddItem(data) abort
let l:item = {
\ 'bufnr': bufnr(''),
\ 'lnum': 1,
\ 'col': 1,
\ 'type': 'E',
\ 'linter_name': 'some_linter',
\}
call add(g:loclist, extend(l:item, a:data))
endfunction
After:
Restore
unlet! g:loclist
unlet! b:ale_loclist_msg_format
delfunction AddItem
call setloclist(0, [])
call setqflist([])
Execute(Formatting with codes should work for the loclist):
call AddItem({'text': "nocode\r"})
call ale#list#SetLists(bufnr(''), g:loclist)
AssertEqual
\ [
\ {
\ 'lnum': 1,
\ 'bufnr': bufnr(''),
\ 'col': 1,
\ 'valid': 1,
\ 'vcol': 0,
\ 'nr': 0,
\ 'type': 'E',
\ 'pattern': '',
\ 'text': 'nocode',
\ },
\ ],
\ ale#test#GetLoclistWithoutModule()
call remove(g:loclist, 0)
call AddItem({'text': 'withcode', 'code': 'E123'})
call ale#list#SetLists(bufnr(''), g:loclist)
AssertEqual
\ [
\ {
\ 'lnum': 1,
\ 'bufnr': bufnr(''),
\ 'col': 1,
\ 'valid': 1,
\ 'vcol': 0,
\ 'nr': 0,
\ 'type': 'E',
\ 'pattern': '',
\ 'text': 'E123: withcode',
\ },
\ ],
\ ale#test#GetLoclistWithoutModule()
Execute(Formatting with codes should work for the quickfix list):
let g:ale_set_loclist = 0
let g:ale_set_quickfix = 1
call AddItem({'text': "nocode\r"})
call ale#list#SetLists(bufnr(''), g:loclist)
AssertEqual
\ [
\ {
\ 'lnum': 1,
\ 'bufnr': bufnr(''),
\ 'col': 1,
\ 'valid': 1,
\ 'vcol': 0,
\ 'nr': 0,
\ 'type': 'E',
\ 'pattern': '',
\ 'text': 'nocode',
\ },
\ ],
\ ale#test#GetQflistWithoutModule()
call remove(g:loclist, 0)
call AddItem({'text': 'withcode', 'code': 'E123'})
call ale#list#SetLists(bufnr(''), g:loclist)
AssertEqual
\ [
\ {
\ 'lnum': 1,
\ 'bufnr': bufnr(''),
\ 'col': 1,
\ 'valid': 1,
\ 'vcol': 0,
\ 'nr': 0,
\ 'type': 'E',
\ 'pattern': '',
\ 'text': 'E123: withcode',
\ },
\ ],
\ ale#test#GetQflistWithoutModule()
Execute(Formatting with the linter name should work for the loclist):
let g:ale_loclist_msg_format = '(%linter%) %s'
call AddItem({'text': 'whatever'})
call ale#list#SetLists(bufnr(''), g:loclist)
AssertEqual
\ [
\ {
\ 'lnum': 1,
\ 'bufnr': bufnr(''),
\ 'col': 1,
\ 'valid': 1,
\ 'vcol': 0,
\ 'nr': 0,
\ 'type': 'E',
\ 'pattern': '',
\ 'text': '(some_linter) whatever',
\ },
\ ],
\ ale#test#GetLoclistWithoutModule()
Execute(Formatting with the linter name should work for the quickfix list):
let g:ale_loclist_msg_format = '(%linter%) %s'
let g:ale_set_loclist = 0
let g:ale_set_quickfix = 1
call AddItem({'text': 'whatever'})
call ale#list#SetLists(bufnr(''), g:loclist)
AssertEqual
\ [
\ {
\ 'lnum': 1,
\ 'bufnr': bufnr(''),
\ 'col': 1,
\ 'valid': 1,
\ 'vcol': 0,
\ 'nr': 0,
\ 'type': 'E',
\ 'pattern': '',
\ 'text': '(some_linter) whatever',
\ },
\ ],
\ ale#test#GetQflistWithoutModule()
Execute(The buffer loclist format option should take precedence):
let g:ale_loclist_msg_format = '(%linter%) %s'
let b:ale_loclist_msg_format = 'FOO %s'
call AddItem({'text': 'whatever'})
call ale#list#SetLists(bufnr(''), g:loclist)
AssertEqual
\ [
\ {
\ 'lnum': 1,
\ 'bufnr': bufnr(''),
\ 'col': 1,
\ 'valid': 1,
\ 'vcol': 0,
\ 'nr': 0,
\ 'type': 'E',
\ 'pattern': '',
\ 'text': 'FOO whatever',
\ },
\ ],
\ ale#test#GetLoclistWithoutModule()