use ImmutableArray

This commit is contained in:
Matt Parker
2025-10-17 22:50:17 +10:00
parent b6060e34f5
commit 6a20f75f39
3 changed files with 12 additions and 12 deletions

View File

@@ -17,19 +17,19 @@ public partial class CustomHighlighter : SyntaxHighlighter
private System.Collections.Generic.Dictionary<int, ImmutableArray<SharpIdeClassifiedSpan>> _classifiedSpansByLine = [];
public void SetHighlightingData(IEnumerable<SharpIdeClassifiedSpan> classifiedSpans, IEnumerable<SharpIdeRazorClassifiedSpan> razorClassifiedSpans)
public void SetHighlightingData(ImmutableArray<SharpIdeClassifiedSpan> classifiedSpans, ImmutableArray<SharpIdeRazorClassifiedSpan> razorClassifiedSpans)
{
// separate each line here
var razorSpansForLine = razorClassifiedSpans
.Where(s => s.Span.Length is not 0)
.GroupBy(s => s.Span.LineIndex)
.ToList();
_razorClassifiedSpansByLine = razorSpansForLine.ToDictionary(g => g.Key, g => g.ToImmutableArray());
.GroupBy(s => s.Span.LineIndex);
_razorClassifiedSpansByLine = razorSpansForLine.ToDictionary(g => g.Key, g => g.ToImmutableArray());
var spansGroupedByFileSpan = classifiedSpans
.Where(s => s.ClassifiedSpan.TextSpan.Length is not 0)
.GroupBy(span => span.FileSpan.Start.Line)
.ToList();
.GroupBy(span => span.FileSpan.Start.Line);
_classifiedSpansByLine = spansGroupedByFileSpan.ToDictionary(g => g.Key, g => g.ToImmutableArray());
}

View File

@@ -454,7 +454,7 @@ public partial class SharpIdeCodeEdit : CodeEdit
}
[RequiresGodotUiThread]
private void SetSyntaxHighlightingModel(IEnumerable<SharpIdeClassifiedSpan> classifiedSpans, IEnumerable<SharpIdeRazorClassifiedSpan> razorClassifiedSpans)
private void SetSyntaxHighlightingModel(ImmutableArray<SharpIdeClassifiedSpan> classifiedSpans, ImmutableArray<SharpIdeRazorClassifiedSpan> razorClassifiedSpans)
{
_syntaxHighlighter.SetHighlightingData(classifiedSpans, razorClassifiedSpans);
//_syntaxHighlighter.ClearHighlightingCache();