From: Andreas Louv Date: Tue, 11 Apr 2023 14:40:02 +0000 (+0200) Subject: Move diagnostic sorting to own function X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=6a0ad94622dff5d7d05ca3491bfa2a29de69ed6d;p=vim-lsp.git Move diagnostic sorting to own function --- 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}']: {