From c7e7876d221487bb0686314bd12c3119bf75b83f Mon Sep 17 00:00:00 2001 From: Andreas Louv Date: Tue, 18 Apr 2023 21:48:08 +0200 Subject: [PATCH] Prevent raising errors when highlight arrive for deleted lines This is the same problem that was fixed in #193 (3661dc0) as the highlight also arrive asynchronous. --- autoload/lsp/lspserver.vim | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/autoload/lsp/lspserver.vim b/autoload/lsp/lspserver.vim index 42121bc..69af662 100644 --- a/autoload/lsp/lspserver.vim +++ b/autoload/lsp/lspserver.vim @@ -896,12 +896,17 @@ def DocHighlightReply(lspserver: dict, docHighlightReply: any, # textual reference propName = 'LspTextRef' endif - prop_add(docHL.range.start.line + 1, - util.GetLineByteFromPos(bnr, docHL.range.start) + 1, - {end_lnum: docHL.range.end.line + 1, - end_col: util.GetLineByteFromPos(bnr, docHL.range.end) + 1, - bufnr: bnr, - type: propName}) + try + prop_add(docHL.range.start.line + 1, + util.GetLineByteFromPos(bnr, docHL.range.start) + 1, + {end_lnum: docHL.range.end.line + 1, + end_col: util.GetLineByteFromPos(bnr, docHL.range.end) + 1, + bufnr: bnr, + type: propName}) + catch /E966\|E964/ # Invalid lnum | Invalid col + # Highlight arrive asynchronous and the document changed while they wore + # send. + endtry endfor enddef -- 2.50.0