From 6a0ad94622dff5d7d05ca3491bfa2a29de69ed6d Mon Sep 17 00:00:00 2001 From: Andreas Louv Date: Tue, 11 Apr 2023 16:40:02 +0200 Subject: [PATCH] Move diagnostic sorting to own function --- autoload/lsp/diag.vim | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/autoload/lsp/diag.vim b/autoload/lsp/diag.vim index 02ce15f..1e0cfa8 100644 --- a/autoload/lsp/diag.vim +++ b/autoload/lsp/diag.vim @@ -63,6 +63,17 @@ export def InitOnce() endif enddef +# Sort diagnostics ascending based on line and character offset +def SortDiags(diags: list>): list> + return diags->sort((a, b) => { + var linediff = a.range.start.line - b.range.start.line + if linediff == 0 + return a.range.start.character - b.range.start.character + endif + return linediff + }) +enddef + # Remove the diagnostics stored for buffer 'bnr' export def DiagRemoveFile(lspserver: dict, bnr: number) if lspserver.diagsMap->has_key(bnr) @@ -214,13 +225,7 @@ export def DiagNotification(lspserver: dict, uri: string, diags: listsort((a, b) => { - var linediff = a.range.start.line - b.range.start.line - if linediff == 0 - return a.range.start.character - b.range.start.character - endif - return linediff - }) + var sortedDiags = SortDiags(diagWithinRange) lspserver.diagsMap->extend({ [$'{bnr}']: { -- 2.48.1