From 9819a0b70744e0fe63a8e7cc10354a1af17d5cfe Mon Sep 17 00:00:00 2001 From: Matt Parker <61717342+MattParkerDev@users.noreply.github.com> Date: Mon, 22 Sep 2025 19:24:08 +1000 Subject: [PATCH] re-order file setting logic --- src/SharpIDE.Godot/SharpIdeCodeEdit.cs | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/SharpIDE.Godot/SharpIdeCodeEdit.cs b/src/SharpIDE.Godot/SharpIdeCodeEdit.cs index c44078f..d031cdd 100644 --- a/src/SharpIDE.Godot/SharpIdeCodeEdit.cs +++ b/src/SharpIDE.Godot/SharpIdeCodeEdit.cs @@ -167,17 +167,18 @@ public partial class SharpIdeCodeEdit : CodeEdit { await Task.CompletedTask.ConfigureAwait(ConfigureAwaitOptions.ForceYielding); // get off the UI thread _currentFile = file; - var fileContents = await File.ReadAllTextAsync(_currentFile.Path); - await this.InvokeAsync(() => - { - _fileChangingSuppressBreakpointToggleEvent = true; - SetText(fileContents); - _fileChangingSuppressBreakpointToggleEvent = false; - }); + var readFileTask = File.ReadAllTextAsync(_currentFile.Path); + var syntaxHighlighting = RoslynAnalysis.GetDocumentSyntaxHighlighting(_currentFile); var razorSyntaxHighlighting = RoslynAnalysis.GetRazorDocumentSyntaxHighlighting(_currentFile); var diagnostics = RoslynAnalysis.GetDocumentDiagnostics(_currentFile); - await Task.WhenAll(syntaxHighlighting, razorSyntaxHighlighting); + var setTextTask = this.InvokeAsync(async () => + { + _fileChangingSuppressBreakpointToggleEvent = true; + SetText(await readFileTask); + _fileChangingSuppressBreakpointToggleEvent = false; + }); + await Task.WhenAll(syntaxHighlighting, razorSyntaxHighlighting, setTextTask); // Text must be set before setting syntax highlighting SetSyntaxHighlightingModel(await syntaxHighlighting, await razorSyntaxHighlighting); SetDiagnosticsModel(await diagnostics); }