@@ -21,7 +21,7 @@ public sealed class PackageJsonTestContainerDiscoverer : ITestContainerDiscovere
21
21
private readonly List < PackageJsonTestContainer > containers = new List < PackageJsonTestContainer > ( ) ;
22
22
private readonly object containerLock = new object ( ) ;
23
23
24
- private IWorkspace currentWorkspace ;
24
+ private IWorkspace activeWorkspace ;
25
25
26
26
[ ImportingConstructor ]
27
27
public PackageJsonTestContainerDiscoverer ( IVsFolderWorkspaceService workspaceService )
@@ -31,10 +31,10 @@ public PackageJsonTestContainerDiscoverer(IVsFolderWorkspaceService workspaceSer
31
31
32
32
if ( this . workspaceService . CurrentWorkspace != null )
33
33
{
34
- this . currentWorkspace = this . workspaceService . CurrentWorkspace ;
34
+ this . activeWorkspace = this . workspaceService . CurrentWorkspace ;
35
35
this . RegisterEvents ( ) ;
36
36
37
- this . currentWorkspace . JTF . RunAsync ( async ( ) =>
37
+ this . activeWorkspace . JTF . RunAsync ( async ( ) =>
38
38
{
39
39
// Yield so we don't do this now. Don't want to block the constructor.
40
40
await Task . Yield ( ) ;
@@ -62,7 +62,7 @@ public IEnumerable<ITestContainer> TestContainers
62
62
63
63
private async Task AttemptUpdateAsync ( )
64
64
{
65
- var workspace = this . currentWorkspace ;
65
+ var workspace = this . activeWorkspace ;
66
66
if ( workspace != null )
67
67
{
68
68
var indexService = workspace . GetIndexWorkspaceService ( ) ;
@@ -91,7 +91,7 @@ private async Task OnActiveWorkspaceChangedAsync(object sender, EventArgs e)
91
91
{
92
92
this . UnRegisterEvents ( ) ;
93
93
94
- this . currentWorkspace = this . workspaceService . CurrentWorkspace ;
94
+ this . activeWorkspace = this . workspaceService . CurrentWorkspace ;
95
95
96
96
this . RegisterEvents ( ) ;
97
97
@@ -100,28 +100,32 @@ private async Task OnActiveWorkspaceChangedAsync(object sender, EventArgs e)
100
100
101
101
private void RegisterEvents ( )
102
102
{
103
- var fileWatcherService = this . currentWorkspace ? . GetFileWatcherService ( ) ;
104
- if ( fileWatcherService != null )
103
+ var workspace = this . activeWorkspace ;
104
+ if ( workspace != null )
105
105
{
106
- fileWatcherService . OnFileSystemChanged += this . FileSystemChangedAsync ;
107
- }
106
+ var fileWatcherService = workspace . GetFileWatcherService ( ) ;
107
+ if ( fileWatcherService != null )
108
+ {
109
+ fileWatcherService . OnFileSystemChanged += this . FileSystemChangedAsync ;
110
+ }
108
111
109
- var indexService = this . currentWorkspace ? . GetIndexWorkspaceService ( ) ;
110
- if ( indexService != null )
111
- {
112
- indexService . OnFileScannerCompleted += this . FileScannerCompletedAsync ;
112
+ var indexService = workspace . GetIndexWorkspaceService ( ) ;
113
+ if ( indexService != null )
114
+ {
115
+ indexService . OnFileScannerCompleted += this . FileScannerCompletedAsync ;
116
+ }
113
117
}
114
118
}
115
119
116
120
private void UnRegisterEvents ( )
117
121
{
118
- var fileWatcherService = this . currentWorkspace ? . GetFileWatcherService ( ) ;
122
+ var fileWatcherService = this . activeWorkspace ? . GetFileWatcherService ( ) ;
119
123
if ( fileWatcherService != null )
120
124
{
121
125
fileWatcherService . OnFileSystemChanged -= this . FileSystemChangedAsync ;
122
126
}
123
127
124
- var indexService = this . currentWorkspace ? . GetIndexWorkspaceService ( ) ;
128
+ var indexService = this . activeWorkspace ? . GetIndexWorkspaceService ( ) ;
125
129
if ( indexService != null )
126
130
{
127
131
indexService . OnFileScannerCompleted -= this . FileScannerCompletedAsync ;
@@ -135,7 +139,7 @@ private Task FileSystemChangedAsync(object sender, FileSystemEventArgs args)
135
139
// Any changes to the 'package.json' will be handled by the FileScannerCompleted event.
136
140
if ( IsJavaScriptFile ( args . FullPath ) || args . IsDirectoryChanged ( ) )
137
141
{
138
- // use a flag so we don't deadlock
142
+ // use a flag so we don't raise the event while under the lock
139
143
var testsUpdated = false ;
140
144
lock ( this . containerLock )
141
145
{
0 commit comments