]> Sergey Matveev's repositories - vim-lsp.git/commitdiff
Move diagnostic sorting to own function
authorAndreas Louv <andreas@louv.dk>
Tue, 11 Apr 2023 14:40:02 +0000 (16:40 +0200)
committerAndreas Louv <andreas@louv.dk>
Tue, 11 Apr 2023 15:09:11 +0000 (17:09 +0200)
autoload/lsp/diag.vim

index 02ce15f9bb9e3e81a2a1860a9e5e5d6a94eddbec..1e0cfa8a67527031f92e1ccc96d75a2d1adac238 100644 (file)
@@ -63,6 +63,17 @@ export def InitOnce()
   endif
 enddef
 
+# Sort diagnostics ascending based on line and character offset
+def SortDiags(diags: list<dict<any>>): list<dict<any>>
+  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<any>, bnr: number)
   if lspserver.diagsMap->has_key(bnr)
@@ -214,13 +225,7 @@ export def DiagNotification(lspserver: dict<any>, uri: string, diags: list<dict<
   endfor
 
   # sort the diagnostics by line number and column number
-  var sortedDiags = diagWithinRange->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
-  })
+  var sortedDiags = SortDiags(diagWithinRange)
 
   lspserver.diagsMap->extend({
     [$'{bnr}']: {