Skip to content

Commit 89fe2f2

Browse files
Stop using dispatcher to notify IDocumentProcessedListeners
1 parent a93e127 commit 89fe2f2

File tree

3 files changed

+15
-34
lines changed

3 files changed

+15
-34
lines changed

src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/OpenDocumentGenerator.cs

Lines changed: 8 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
using System.Collections.Immutable;
77
using System.Threading;
88
using System.Threading.Tasks;
9-
using Microsoft.CodeAnalysis.Razor;
109
using Microsoft.CodeAnalysis.Razor.ProjectSystem;
1110
using Microsoft.CodeAnalysis.Razor.Utilities;
1211
using Microsoft.CodeAnalysis.Razor.Workspaces;
@@ -29,7 +28,6 @@ internal partial class OpenDocumentGenerator : IRazorStartupService, IDisposable
2928

3029
private readonly ImmutableArray<IDocumentProcessedListener> _listeners;
3130
private readonly IProjectSnapshotManager _projectManager;
32-
private readonly ProjectSnapshotManagerDispatcher _dispatcher;
3331
private readonly LanguageServerFeatureOptions _options;
3432

3533
private readonly AsyncBatchingWorkQueue<IDocumentSnapshot> _workQueue;
@@ -38,12 +36,10 @@ internal partial class OpenDocumentGenerator : IRazorStartupService, IDisposable
3836
public OpenDocumentGenerator(
3937
IEnumerable<IDocumentProcessedListener> listeners,
4038
IProjectSnapshotManager projectManager,
41-
ProjectSnapshotManagerDispatcher dispatcher,
4239
LanguageServerFeatureOptions options)
4340
{
4441
_listeners = listeners.ToImmutableArray();
4542
_projectManager = projectManager;
46-
_dispatcher = dispatcher;
4743
_options = options;
4844

4945
_disposeTokenSource = new();
@@ -72,25 +68,15 @@ private async ValueTask ProcessBatchAsync(ImmutableArray<IDocumentSnapshot> item
7268

7369
var codeDocument = await document.GetGeneratedOutputAsync().ConfigureAwait(false);
7470

75-
await _dispatcher
76-
.RunAsync(
77-
static state =>
78-
{
79-
var (codeDocument, document, listeners, token) = state;
80-
81-
foreach (var listener in listeners)
82-
{
83-
if (token.IsCancellationRequested)
84-
{
85-
return;
86-
}
71+
foreach (var listener in _listeners)
72+
{
73+
if (token.IsCancellationRequested)
74+
{
75+
return;
76+
}
8777

88-
listener.DocumentProcessed(codeDocument, document);
89-
}
90-
},
91-
state: (codeDocument, document, _listeners, token),
92-
token)
93-
.ConfigureAwait(false);
78+
listener.DocumentProcessed(codeDocument, document);
79+
}
9480
}
9581
}
9682

src/Razor/test/Microsoft.AspNetCore.Razor.LanguageServer.Test/CodeDocumentReferenceHolderTest.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -180,10 +180,7 @@ private async Task<WeakReference<RazorCodeDocument>> ProcessDocumentAndRetrieveO
180180
{
181181
var codeDocument = await documentSnapshot.GetGeneratedOutputAsync();
182182

183-
await RunOnDispatcherAsync(() =>
184-
{
185-
_referenceHolder.DocumentProcessed(codeDocument, documentSnapshot);
186-
});
183+
_referenceHolder.DocumentProcessed(codeDocument, documentSnapshot);
187184

188185
return new(codeDocument);
189186
}

src/Razor/test/Microsoft.AspNetCore.Razor.LanguageServer.Test/OpenDocumentGeneratorTest.cs

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
using Microsoft.AspNetCore.Razor.Test.Common.LanguageServer;
1010
using Microsoft.AspNetCore.Razor.Test.Common.Workspaces;
1111
using Microsoft.CodeAnalysis.CSharp;
12-
using Microsoft.CodeAnalysis.Razor;
1312
using Microsoft.CodeAnalysis.Razor.ProjectSystem;
1413
using Microsoft.CodeAnalysis.Text;
1514
using Xunit;
@@ -34,7 +33,7 @@ public async Task DocumentAdded_IgnoresClosedDocument()
3433
// Arrange
3534
var projectManager = CreateProjectSnapshotManager();
3635
var listener = new TestDocumentProcessedListener();
37-
using var generator = new TestOpenDocumentGenerator(projectManager, Dispatcher, listener);
36+
using var generator = new TestOpenDocumentGenerator(projectManager, listener);
3837

3938
await projectManager.UpdateAsync(updater =>
4039
{
@@ -55,7 +54,7 @@ public async Task DocumentChanged_IgnoresClosedDocument()
5554
// Arrange
5655
var projectManager = CreateProjectSnapshotManager();
5756
var listener = new TestDocumentProcessedListener();
58-
using var generator = new TestOpenDocumentGenerator(projectManager, Dispatcher, listener);
57+
using var generator = new TestOpenDocumentGenerator(projectManager, listener);
5958

6059
await projectManager.UpdateAsync(updater =>
6160
{
@@ -77,7 +76,7 @@ public async Task DocumentChanged_ProcessesOpenDocument()
7776
// Arrange
7877
var projectManager = CreateProjectSnapshotManager();
7978
var listener = new TestDocumentProcessedListener();
80-
using var generator = new TestOpenDocumentGenerator(projectManager, Dispatcher, listener);
79+
using var generator = new TestOpenDocumentGenerator(projectManager, listener);
8180

8281
await projectManager.UpdateAsync(updater =>
8382
{
@@ -102,7 +101,7 @@ public async Task ProjectChanged_IgnoresClosedDocument()
102101
// Arrange
103102
var projectManager = CreateProjectSnapshotManager();
104103
var listener = new TestDocumentProcessedListener();
105-
using var generator = new TestOpenDocumentGenerator(projectManager, Dispatcher, listener);
104+
using var generator = new TestOpenDocumentGenerator(projectManager, listener);
106105

107106
await projectManager.UpdateAsync(updater =>
108107
{
@@ -125,7 +124,7 @@ public async Task ProjectChanged_ProcessesOpenDocument()
125124
// Arrange
126125
var projectManager = CreateProjectSnapshotManager();
127126
var listener = new TestDocumentProcessedListener();
128-
using var generator = new TestOpenDocumentGenerator(projectManager, Dispatcher, listener);
127+
using var generator = new TestOpenDocumentGenerator(projectManager, listener);
129128

130129
await projectManager.UpdateAsync(updater =>
131130
{
@@ -146,9 +145,8 @@ await projectManager.UpdateAsync(updater =>
146145

147146
private class TestOpenDocumentGenerator(
148147
IProjectSnapshotManager projectManager,
149-
ProjectSnapshotManagerDispatcher dispatcher,
150148
params IDocumentProcessedListener[] listeners)
151-
: OpenDocumentGenerator(listeners, projectManager, dispatcher, TestLanguageServerFeatureOptions.Instance);
149+
: OpenDocumentGenerator(listeners, projectManager, TestLanguageServerFeatureOptions.Instance);
152150

153151
private class TestDocumentProcessedListener : IDocumentProcessedListener
154152
{

0 commit comments

Comments
 (0)