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 "\