Fix detailed messages with newline characters
This commit is contained in:
parent
c1947d13cf
commit
76df2d393b
@ -23,16 +23,19 @@ function! s:EchoWithShortMess(setting, message) abort
|
||||
let l:shortmess_options = getbufvar('%', '&shortmess')
|
||||
|
||||
try
|
||||
" Turn shormess on or off.
|
||||
" Turn shortmess on or off.
|
||||
if a:setting ==# 'on'
|
||||
setlocal shortmess+=T
|
||||
" echomsg is neede for the message to get truncated and appear in
|
||||
" the message history.
|
||||
exec "norm! :echomsg a:message\n"
|
||||
elseif a:setting ==# 'off'
|
||||
setlocal shortmess-=T
|
||||
" Regular echo is needed for printing newline characters.
|
||||
echo a:message
|
||||
else
|
||||
throw 'Invalid setting: ' . string(a:setting)
|
||||
endif
|
||||
|
||||
exec "norm! :echomsg a:message\n"
|
||||
finally
|
||||
call setbufvar('%', '&shortmess', l:shortmess_options)
|
||||
endtry
|
||||
|
@ -11,7 +11,7 @@ Before:
|
||||
\ 'nr': -1,
|
||||
\ 'type': 'E',
|
||||
\ 'text': 'Missing semicolon. (semi)',
|
||||
\ 'detail': 'Every statement should end with a semicolon'
|
||||
\ 'detail': "Every statement should end with a semicolon\nsecond line"
|
||||
\ },
|
||||
\ {
|
||||
\ 'lnum': 2,
|
||||
@ -61,6 +61,8 @@ After:
|
||||
|
||||
let g:ale_buffer_info = {}
|
||||
|
||||
unlet! g:output
|
||||
|
||||
delfunction GetLastMessage
|
||||
|
||||
mess clear
|
||||
@ -104,12 +106,18 @@ Execute(The message at the cursor should be shown on InsertLeave):
|
||||
|
||||
Execute(ALEDetail should print 'detail' attributes):
|
||||
call cursor(1, 1)
|
||||
ALEDetail
|
||||
|
||||
AssertEqual "Every statement should end with a semicolon", GetLastMessage()
|
||||
redir => g:output
|
||||
ALEDetail
|
||||
redir END
|
||||
|
||||
AssertEqual "\nEvery statement should end with a semicolon\nsecond line", g:output
|
||||
|
||||
Execute(ALEDetail should print regular 'text' attributes):
|
||||
call cursor(2, 10)
|
||||
ALEDetail
|
||||
|
||||
AssertEqual "Infix operators must be spaced. (space-infix-ops)", GetLastMessage()
|
||||
redir => g:output
|
||||
ALEDetail
|
||||
redir END
|
||||
|
||||
AssertEqual "\nInfix operators must be spaced. (space-infix-ops)", g:output
|
||||
|
Loading…
Reference in New Issue
Block a user