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)
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}']: {