diff --git a/autoload/ale/sign.vim b/autoload/ale/sign.vim index e002f58..0e0250b 100644 --- a/autoload/ale/sign.vim +++ b/autoload/ale/sign.vim @@ -169,6 +169,12 @@ endfunction " This function will set the signs which show up on the left. function! ale#sign#SetSigns(buffer, loclist) abort + if !bufexists(str2nr(a:buffer)) + " Stop immediately when attempting to set signs for a buffer which + " does not exist. + return + endif + " Find the current markers let l:current_sign_list = ale#sign#FindCurrentSigns(a:buffer) diff --git a/test/sign/test_sign_placement.vader b/test/sign/test_sign_placement.vader index 396ef5c..518e1b8 100644 --- a/test/sign/test_sign_placement.vader +++ b/test/sign/test_sign_placement.vader @@ -132,3 +132,6 @@ Execute(Loclist items with sign_id values should be kept): \ ['16', '1000004', 'ALEErrorSign'], \ ], \ ParseSigns() + +Execute(No excpetions should be thrown when setting signs for invalid buffers): + call ale#sign#SetSigns(123456789, [{'lnum': 15, 'col': 2, 'type': 'W', 'text': 'e'}])