update sln diagnostics on type
This commit is contained in:
@@ -81,12 +81,7 @@ public static class RoslynAnalysis
|
|||||||
_codeFixProviders = _codeFixProviders.DistinctBy(s => s.GetType().Name).ToHashSet();
|
_codeFixProviders = _codeFixProviders.DistinctBy(s => s.GetType().Name).ToHashSet();
|
||||||
_codeRefactoringProviders = _codeRefactoringProviders.DistinctBy(s => s.GetType().Name).ToHashSet();
|
_codeRefactoringProviders = _codeRefactoringProviders.DistinctBy(s => s.GetType().Name).ToHashSet();
|
||||||
|
|
||||||
foreach (var project in _sharpIdeSolutionModel.AllProjects)
|
await UpdateSolutionDiagnostics();
|
||||||
{
|
|
||||||
var projectDiagnostics = await GetProjectDiagnostics(project);
|
|
||||||
project.Diagnostics.Clear();
|
|
||||||
project.Diagnostics.AddRange(projectDiagnostics);
|
|
||||||
}
|
|
||||||
foreach (var project in solution.Projects)
|
foreach (var project in solution.Projects)
|
||||||
{
|
{
|
||||||
// foreach (var document in project.Documents)
|
// foreach (var document in project.Documents)
|
||||||
@@ -112,6 +107,18 @@ public static class RoslynAnalysis
|
|||||||
Console.WriteLine("RoslynAnalysis: Analysis completed.");
|
Console.WriteLine("RoslynAnalysis: Analysis completed.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static async Task UpdateSolutionDiagnostics()
|
||||||
|
{
|
||||||
|
await _solutionLoadedTcs.Task;
|
||||||
|
foreach (var project in _sharpIdeSolutionModel!.AllProjects)
|
||||||
|
{
|
||||||
|
var projectDiagnostics = await GetProjectDiagnostics(project);
|
||||||
|
// TODO: only add and remove diffs
|
||||||
|
project.Diagnostics.RemoveRange(project.Diagnostics);
|
||||||
|
project.Diagnostics.AddRange(projectDiagnostics);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static async Task<ImmutableArray<Diagnostic>> GetProjectDiagnostics(SharpIdeProjectModel projectModel)
|
public static async Task<ImmutableArray<Diagnostic>> GetProjectDiagnostics(SharpIdeProjectModel projectModel)
|
||||||
{
|
{
|
||||||
await _solutionLoadedTcs.Task;
|
await _solutionLoadedTcs.Task;
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ public partial class ProblemsPanel : Control
|
|||||||
.SubscribeAwait(async (innerEvent, ct) => await (innerEvent.Action switch
|
.SubscribeAwait(async (innerEvent, ct) => await (innerEvent.Action switch
|
||||||
{
|
{
|
||||||
NotifyCollectionChangedAction.Add => CreateDiagnosticTreeItem(_tree, treeItem, innerEvent),
|
NotifyCollectionChangedAction.Add => CreateDiagnosticTreeItem(_tree, treeItem, innerEvent),
|
||||||
NotifyCollectionChangedAction.Remove => FreeTreeItem(e.OldItem.View.Value),
|
NotifyCollectionChangedAction.Remove => FreeTreeItem(innerEvent.OldItem.View.Value),
|
||||||
_ => Task.CompletedTask
|
_ => Task.CompletedTask
|
||||||
})).AddTo(this);
|
})).AddTo(this);
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user