normalizeTextDiagnostics function
List<TextDiagnosticRange>
normalizeTextDiagnostics(
- Iterable<
TextDiagnosticRange> diagnostics, { - int? maxLength,
Implementation
List<TextDiagnosticRange> normalizeTextDiagnostics(
Iterable<TextDiagnosticRange> diagnostics, {
int? maxLength,
}) {
final normalized =
diagnostics
.map((diagnostic) {
final range = diagnostic.normalized();
if (maxLength == null) {
return range;
}
return TextDiagnosticRange(
startOffset: range.startOffset.clamp(0, maxLength),
endOffset: range.endOffset.clamp(0, maxLength),
severity: range.severity,
code: range.code,
message: range.message,
source: range.source,
);
})
.toList(growable: false)
..sort((a, b) {
final startComparison = a.startOffset.compareTo(b.startOffset);
if (startComparison != 0) {
return startComparison;
}
final endComparison = a.endOffset.compareTo(b.endOffset);
if (endComparison != 0) {
return endComparison;
}
return _diagnosticSeverityRank(
b.severity,
).compareTo(_diagnosticSeverityRank(a.severity));
});
return List<TextDiagnosticRange>.unmodifiable(normalized);
}