diff --git a/autoload/ale/pattern_options.vim b/autoload/ale/pattern_options.vim index c445a9ed..d1f91785 100644 --- a/autoload/ale/pattern_options.vim +++ b/autoload/ale/pattern_options.vim @@ -23,7 +23,8 @@ function! s:CmpPatterns(left_item, right_item) abort endfunction function! ale#pattern_options#SetOptions(buffer) abort - if !g:ale_pattern_options_enabled || empty(g:ale_pattern_options) + if !get(g:, 'ale_pattern_options_enabled', 0) + \|| empty(get(g:, 'ale_pattern_options', 0)) return endif diff --git a/test/test_pattern_options.vader b/test/test_pattern_options.vader index 0e26eaaa..f439afbd 100644 --- a/test/test_pattern_options.vader +++ b/test/test_pattern_options.vader @@ -90,3 +90,14 @@ Execute(Patterns should be applied after the Dictionary changes): call ale#pattern_options#SetOptions(bufnr('')) AssertEqual 666, b:some_option + +Execute(SetOptions should tolerate settings being unset): + " This might happen if ALE is loaded in a weird way, so tolerate it. + unlet! g:ale_pattern_options + unlet! g:ale_pattern_options_enabled + + call ale#pattern_options#SetOptions(bufnr('')) + + let g:ale_pattern_options_enabled = 1 + + call ale#pattern_options#SetOptions(bufnr(''))