mirror of https://github.com/dense-analysis/ale
180 lines
5.3 KiB
Plaintext
180 lines
5.3 KiB
Plaintext
|
Before:
|
||
|
Save g:ale_buffer_info
|
||
|
Save g:ale_virtualtext_cursor
|
||
|
Save g:ale_virtualtext_delay
|
||
|
Save g:ale_virtualtext_prefix
|
||
|
Save b:ale_virtualtext_prefix
|
||
|
|
||
|
call ale#virtualtext#ResetDataForTests()
|
||
|
|
||
|
let g:setting = ''
|
||
|
let g:ale_virtualtext_delay = 0
|
||
|
let g:ale_buffer_info = {
|
||
|
\ bufnr(''): {
|
||
|
\ 'loclist': [
|
||
|
\ {
|
||
|
\ 'bufnr': bufnr(''),
|
||
|
\ 'type': 'E',
|
||
|
\ 'lnum': 1,
|
||
|
\ 'col': 5,
|
||
|
\ 'text': 'Line 1 error',
|
||
|
\ },
|
||
|
\ {
|
||
|
\ 'bufnr': bufnr(''),
|
||
|
\ 'type': 'W',
|
||
|
\ 'lnum': 2,
|
||
|
\ 'col': 1,
|
||
|
\ 'text': 'Line 2 warning 1',
|
||
|
\ },
|
||
|
\ {
|
||
|
\ 'bufnr': bufnr(''),
|
||
|
\ 'type': 'W',
|
||
|
\ 'lnum': 2,
|
||
|
\ 'col': 5,
|
||
|
\ 'text': 'Line 2 warning 2',
|
||
|
\ },
|
||
|
\ ],
|
||
|
\ },
|
||
|
\}
|
||
|
|
||
|
After:
|
||
|
Restore
|
||
|
|
||
|
unlet! g:setting
|
||
|
unlet! g:ns_id
|
||
|
|
||
|
Execute(The correct highlight groups should be loaded for virtual-text):
|
||
|
AssertEqual 'ALEVirtualTextError', ale#virtualtext#GetGroup({})
|
||
|
AssertEqual 'ALEVirtualTextError', ale#virtualtext#GetGroup({'type': 'E'})
|
||
|
AssertEqual 'ALEVirtualTextStyleError',
|
||
|
\ ale#virtualtext#GetGroup({'type': 'E', 'sub_type': 'style'})
|
||
|
AssertEqual 'ALEVirtualTextWarning', ale#virtualtext#GetGroup({'type': 'W'})
|
||
|
AssertEqual 'ALEVirtualTextStyleWarning',
|
||
|
\ ale#virtualtext#GetGroup({'type': 'W', 'sub_type': 'style'})
|
||
|
AssertEqual 'ALEVirtualTextInfo', ale#virtualtext#GetGroup({'type': 'I'})
|
||
|
|
||
|
Given python (An empty Python file):
|
||
|
Execute(Comment text should be detected correctly for Python files):
|
||
|
if has('patch-9.0.0297') || has('nvim-0.8.0')
|
||
|
AssertEqual '#', ale#virtualtext#GetComment(bufnr(''))
|
||
|
endif
|
||
|
|
||
|
Given java (An empty Java file):
|
||
|
Execute(Comment text should be detected correctly for Java files):
|
||
|
if has('patch-9.0.0297') || has('nvim-0.8.0')
|
||
|
AssertEqual '//', ale#virtualtext#GetComment(bufnr(''))
|
||
|
endif
|
||
|
|
||
|
Given html (An empty HTML file):
|
||
|
Execute(Comment text should be detected correctly for HTML files):
|
||
|
if has('patch-9.0.0297') || has('nvim-0.8.0')
|
||
|
AssertEqual "\<!--", ale#virtualtext#GetComment(bufnr(''))
|
||
|
endif
|
||
|
|
||
|
Given python(An example Python file):
|
||
|
# line 1
|
||
|
# line 2
|
||
|
|
||
|
Execute(We should not show virtualtext when disabled):
|
||
|
if has('patch-9.0.0297') || has('nvim-0.8.0')
|
||
|
for g:setting in ['disabled', '0', 0]
|
||
|
call ale#virtualtext#ResetDataForTests()
|
||
|
|
||
|
let g:ale_virtualtext_cursor = g:setting
|
||
|
call cursor(1, 1)
|
||
|
call ale#virtualtext#ShowCursorWarningWithDelay()
|
||
|
" Tick the timer.
|
||
|
sleep 1ms
|
||
|
|
||
|
AssertEqual '', ale#virtualtext#GetLastMessageForTests()
|
||
|
endfor
|
||
|
endif
|
||
|
|
||
|
Execute(We should find a virtualtext error on line 1):
|
||
|
if has('patch-9.0.0297') || has('nvim-0.8.0')
|
||
|
for g:setting in ['current', '1', 1]
|
||
|
call ale#virtualtext#ResetDataForTests()
|
||
|
|
||
|
let g:ale_virtualtext_cursor = 'current'
|
||
|
call cursor(1, 1)
|
||
|
call ale#virtualtext#ShowCursorWarningWithDelay()
|
||
|
" Tick the timer.
|
||
|
sleep 1ms
|
||
|
|
||
|
AssertEqual '# E: Line 1 error', ale#virtualtext#GetLastMessageForTests()
|
||
|
|
||
|
if has('patch-9.0.0297')
|
||
|
AssertEqual ['ALEVirtualTextError'], map(prop_list(1), {_, v -> v.type})
|
||
|
AssertEqual [], prop_list(2)
|
||
|
endif
|
||
|
endfor
|
||
|
endif
|
||
|
|
||
|
Execute(We should find a virtualtext error on line 2):
|
||
|
if has('patch-9.0.0297') || has('nvim-0.8.0')
|
||
|
let g:ale_virtualtext_cursor = 'current'
|
||
|
call cursor(2, 5)
|
||
|
call ale#virtualtext#ShowCursorWarningWithDelay()
|
||
|
" Tick the timer.
|
||
|
sleep 1ms
|
||
|
|
||
|
AssertEqual '# W: Line 2 warning 2', ale#virtualtext#GetLastMessageForTests()
|
||
|
|
||
|
if has('patch-9.0.0297')
|
||
|
AssertEqual [], prop_list(1)
|
||
|
AssertEqual ['ALEVirtualTextWarning'], map(prop_list(2), {_, v -> v.type})
|
||
|
endif
|
||
|
endif
|
||
|
|
||
|
Execute(We should be able to change the virtualtext prefix globally):
|
||
|
let g:ale_virtualtext_prefix = '> '
|
||
|
|
||
|
if has('patch-9.0.0297') || has('nvim-0.8.0')
|
||
|
let g:ale_virtualtext_cursor = 'current'
|
||
|
call cursor(1, 1)
|
||
|
call ale#virtualtext#ShowCursorWarningWithDelay()
|
||
|
" Tick the timer.
|
||
|
sleep 1ms
|
||
|
|
||
|
AssertEqual '> Line 1 error', ale#virtualtext#GetLastMessageForTests()
|
||
|
endif
|
||
|
|
||
|
Execute(We should be able to change the virtualtext prefix per-buffer):
|
||
|
let b:ale_virtualtext_prefix = 'B> '
|
||
|
|
||
|
if has('patch-9.0.0297') || has('nvim-0.8.0')
|
||
|
let g:ale_virtualtext_cursor = 'current'
|
||
|
call cursor(1, 1)
|
||
|
call ale#virtualtext#ShowCursorWarningWithDelay()
|
||
|
" Tick the timer.
|
||
|
sleep 1ms
|
||
|
|
||
|
AssertEqual 'B> Line 1 error', ale#virtualtext#GetLastMessageForTests()
|
||
|
endif
|
||
|
|
||
|
Execute(We should be format in other data from the loclist items):
|
||
|
let g:ale_virtualtext_prefix = '%severity%: '
|
||
|
|
||
|
if has('patch-9.0.0297') || has('nvim-0.8.0')
|
||
|
let g:ale_virtualtext_cursor = 'current'
|
||
|
call cursor(1, 1)
|
||
|
call ale#virtualtext#ShowCursorWarningWithDelay()
|
||
|
" Tick the timer.
|
||
|
sleep 1ms
|
||
|
|
||
|
AssertEqual 'Error: Line 1 error', ale#virtualtext#GetLastMessageForTests()
|
||
|
endif
|
||
|
|
||
|
Execute(We should set errors across all lines):
|
||
|
if has('patch-9.0.0297') || has('nvim-0.8.0')
|
||
|
call ale#virtualtext#SetTexts(bufnr(''), g:ale_buffer_info[bufnr('')].loclist)
|
||
|
|
||
|
AssertEqual '# W: Line 2 warning 2', ale#virtualtext#GetLastMessageForTests()
|
||
|
|
||
|
if has('patch-9.0.0297')
|
||
|
AssertEqual ['ALEVirtualTextError'], map(prop_list(1), {_, v -> v.type})
|
||
|
AssertEqual ['ALEVirtualTextWarning', 'ALEVirtualTextWarning'],
|
||
|
\ map(prop_list(2), {_, v -> v.type})
|
||
|
endif
|
||
|
endif
|