optimise highlighting

This commit is contained in:
Matt Parker
2025-10-15 19:36:32 +10:00
parent 6120a75ad0
commit ca8acd0adf
3 changed files with 38 additions and 18 deletions

View File

@@ -339,7 +339,7 @@ public static class RoslynAnalysis
var timer = Stopwatch.StartNew();
var sharpIdeProjectModel = ((IChildSharpIdeNode) fileModel).GetNearestProjectNode()!;
var project = _workspace!.CurrentSolution.Projects.Single(s => s.FilePath == sharpIdeProjectModel!.FilePath);
if (!fileModel.Name.EndsWith(".razor", StringComparison.OrdinalIgnoreCase))
if (fileModel.IsRazorFile is false)
{
return [];
//throw new InvalidOperationException("File is not a .razor file");
@@ -444,7 +444,7 @@ public static class RoslynAnalysis
using var _ = SharpIdeOtel.Source.StartActivity($"{nameof(RoslynAnalysis)}.{nameof(GetDocumentSyntaxHighlighting)}");
await _solutionLoadedTcs.Task;
var project = _workspace!.CurrentSolution.Projects.Single(s => s.FilePath == ((IChildSharpIdeNode)fileModel).GetNearestProjectNode()!.FilePath);
if (fileModel.Name.EndsWith(".cs", StringComparison.OrdinalIgnoreCase) is false)
if (fileModel.IsCsharpFile is false)
{
//throw new InvalidOperationException("File is not a .cs");
return [];
@@ -603,7 +603,10 @@ public static class RoslynAnalysis
public static async Task<(ISymbol?, LinePositionSpan?)> LookupSymbol(SharpIdeFile fileModel, LinePosition linePosition)
{
await _solutionLoadedTcs.Task;
var (symbol, linePositionSpan) = fileModel.IsRazorFile ? await LookupSymbolInRazor(fileModel, linePosition) : await LookupSymbolInCs(fileModel, linePosition);
var (symbol, linePositionSpan) =
fileModel.IsRazorFile ? await LookupSymbolInRazor(fileModel, linePosition)
: fileModel.IsCsharpFile ? await LookupSymbolInCs(fileModel, linePosition)
: (null, null);
return (symbol, linePositionSpan);
}