Fix #1404 - Do not show balloons when g:ale_set_balloons is 0. Add b:ale_set_balloons

This commit is contained in:
w0rp
2018-03-25 12:57:08 +01:00
parent 107516c757
commit 164c711b3d
5 changed files with 107 additions and 17 deletions

View File

@@ -5,12 +5,14 @@ Before:
Save g:ale_run_synchronously
Save g:ale_pattern_options
Save g:ale_pattern_options_enabled
Save g:ale_set_balloons
let g:ale_set_signs = 1
let g:ale_set_lists_synchronously = 1
let g:ale_run_synchronously = 1
let g:ale_pattern_options = {}
let g:ale_pattern_options_enabled = 1
let g:ale_set_balloons = has('balloon_eval')
unlet! b:ale_enabled
@@ -344,3 +346,41 @@ Execute(ALEResetBuffer should reset everything for a buffer):
AssertEqual 1, g:ale_enabled
AssertEqual 1, get(b:, 'ale_enabled', 1)
Execute(Disabling ALE should disable balloons):
" These tests won't run in the console, but we can run them manually in GVim.
if has('balloon_eval')
call ale#linter#Reset()
" Enable balloons, so we can check the expr value.
call ale#balloon#Enable()
AssertEqual 1, &ballooneval
AssertEqual 'ale#balloon#Expr()', &balloonexpr
" Toggle ALE off.
ALEToggle
" The balloon settings should be reset.
AssertEqual 0, &ballooneval
AssertEqual '', &balloonexpr
endif
Execute(Enabling ALE should enable balloons if the setting is on):
if has('balloon_eval')
call ale#linter#Reset()
call ale#balloon#Disable()
ALEDisable
let g:ale_set_balloons = 0
ALEEnable
AssertEqual 0, &ballooneval
AssertEqual '', &balloonexpr
ALEDisable
let g:ale_set_balloons = 1
ALEEnable
AssertEqual 1, &ballooneval
AssertEqual 'ale#balloon#Expr()', &balloonexpr
endif

View File

@@ -1,21 +1,25 @@
Before:
Save g:ale_buffer_info
Save g:ale_enabled
Save g:ale_set_balloons
let g:ale_buffer_info[347] = {'loclist': [
let g:ale_set_balloons = 1
let g:ale_buffer_info[bufnr('')] = {'loclist': [
\ {
\ 'bufnr': 347,
\ 'bufnr': bufnr(''),
\ 'lnum': 1,
\ 'col': 10,
\ 'text': 'Missing semicolon. (semi)',
\ },
\ {
\ 'bufnr': 347,
\ 'bufnr': bufnr(''),
\ 'lnum': 2,
\ 'col': 10,
\ 'text': 'Infix operators must be spaced. (space-infix-ops)'
\ },
\ {
\ 'bufnr': 347,
\ 'bufnr': bufnr(''),
\ 'lnum': 2,
\ 'col': 15,
\ 'text': 'Missing radix parameter (radix)'
@@ -25,17 +29,50 @@ Before:
After:
Restore
unlet! b:ale_enabled
unlet! b:ale_set_balloons
Execute(Balloon messages should be shown for the correct lines):
AssertEqual
\ 'Missing semicolon. (semi)',
\ ale#balloon#MessageForPos(347, 1, 1)
\ ale#balloon#MessageForPos(bufnr(''), 1, 1)
Execute(Balloon messages should be shown for earlier columns):
AssertEqual
\ 'Infix operators must be spaced. (space-infix-ops)',
\ ale#balloon#MessageForPos(347, 2, 1)
\ ale#balloon#MessageForPos(bufnr(''), 2, 1)
Execute(Balloon messages should be shown for later columns):
AssertEqual
\ 'Missing radix parameter (radix)',
\ ale#balloon#MessageForPos(347, 2, 16)
\ ale#balloon#MessageForPos(bufnr(''), 2, 16)
Execute(Balloon messages should be disabled if ALE is disabled globally):
let g:ale_enabled = 0
" Enabling the buffer should not make a difference.
let b:ale_enabled = 1
AssertEqual '', ale#balloon#MessageForPos(bufnr(''), 1, 1)
Execute(Balloon messages should be disabled if ALE is disabled for a buffer):
let b:ale_enabled = 0
AssertEqual '', ale#balloon#MessageForPos(bufnr(''), 1, 1)
Execute(Balloon messages should be disabled if the global setting is off):
let g:ale_set_balloons = 0
AssertEqual '', ale#balloon#MessageForPos(bufnr(''), 1, 1)
Execute(Balloon messages should be disabled if the buffer setting is off):
let b:ale_set_balloons = 0
AssertEqual '', ale#balloon#MessageForPos(bufnr(''), 1, 1)
Execute(The balloon buffer setting should override the global one):
let g:ale_set_balloons = 0
let b:ale_set_balloons = 1
AssertEqual
\ 'Missing semicolon. (semi)',
\ ale#balloon#MessageForPos(bufnr(''), 1, 1)