autoload/lsp/diag.vim | 9 ++++----- diff --git a/autoload/lsp/diag.vim b/autoload/lsp/diag.vim index 5da9e81e2dc69283ef5eca7b5e836ee706a5e1a3..cb304ce540f7c2c972ed61c5650fd9bc6ec4d118 100644 --- a/autoload/lsp/diag.vim +++ b/autoload/lsp/diag.vim @@ -280,10 +280,9 @@ if fname == '' return false endif - var LspQfId: number = 0 - if bnr->getbufvar('LspQfId', 0) != 0 && - getloclist(0, {id: b:LspQfId}).id == b:LspQfId - LspQfId = b:LspQfId + var LspQfId: number = bnr->getbufvar('LspQfId', 0) + if !LspQfId->empty() && getloclist(0, {id: LspQfId}).id != LspQfId + LspQfId = 0 endif if !lspserver.diagsMap->has_key(bnr) || @@ -315,7 +314,7 @@ props.id = LspQfId endif setloclist(0, [], op, props) if LspQfId == 0 - b:LspQfId = getloclist(0, {id: 0}).id + setbufvar(bnr, 'LspQfId', getloclist(0, {id: 0}).id) endif return true