@@ -21,7 +21,7 @@ public sealed class PackageJsonTestContainerDiscoverer : ITestContainerDiscovere
2121 private readonly List < PackageJsonTestContainer > containers = new List < PackageJsonTestContainer > ( ) ;
2222 private readonly object containerLock = new object ( ) ;
2323
24- private IWorkspace currentWorkspace ;
24+ private IWorkspace activeWorkspace ;
2525
2626 [ ImportingConstructor ]
2727 public PackageJsonTestContainerDiscoverer ( IVsFolderWorkspaceService workspaceService )
@@ -31,10 +31,10 @@ public PackageJsonTestContainerDiscoverer(IVsFolderWorkspaceService workspaceSer
3131
3232 if ( this . workspaceService . CurrentWorkspace != null )
3333 {
34- this . currentWorkspace = this . workspaceService . CurrentWorkspace ;
34+ this . activeWorkspace = this . workspaceService . CurrentWorkspace ;
3535 this . RegisterEvents ( ) ;
3636
37- this . currentWorkspace . JTF . RunAsync ( async ( ) =>
37+ this . activeWorkspace . JTF . RunAsync ( async ( ) =>
3838 {
3939 // Yield so we don't do this now. Don't want to block the constructor.
4040 await Task . Yield ( ) ;
@@ -62,7 +62,7 @@ public IEnumerable<ITestContainer> TestContainers
6262
6363 private async Task AttemptUpdateAsync ( )
6464 {
65- var workspace = this . currentWorkspace ;
65+ var workspace = this . activeWorkspace ;
6666 if ( workspace != null )
6767 {
6868 var indexService = workspace . GetIndexWorkspaceService ( ) ;
@@ -91,7 +91,7 @@ private async Task OnActiveWorkspaceChangedAsync(object sender, EventArgs e)
9191 {
9292 this . UnRegisterEvents ( ) ;
9393
94- this . currentWorkspace = this . workspaceService . CurrentWorkspace ;
94+ this . activeWorkspace = this . workspaceService . CurrentWorkspace ;
9595
9696 this . RegisterEvents ( ) ;
9797
@@ -100,28 +100,32 @@ private async Task OnActiveWorkspaceChangedAsync(object sender, EventArgs e)
100100
101101 private void RegisterEvents ( )
102102 {
103- var fileWatcherService = this . currentWorkspace ? . GetFileWatcherService ( ) ;
104- if ( fileWatcherService != null )
103+ var workspace = this . activeWorkspace ;
104+ if ( workspace != null )
105105 {
106- fileWatcherService . OnFileSystemChanged += this . FileSystemChangedAsync ;
107- }
106+ var fileWatcherService = workspace . GetFileWatcherService ( ) ;
107+ if ( fileWatcherService != null )
108+ {
109+ fileWatcherService . OnFileSystemChanged += this . FileSystemChangedAsync ;
110+ }
108111
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+ }
113117 }
114118 }
115119
116120 private void UnRegisterEvents ( )
117121 {
118- var fileWatcherService = this . currentWorkspace ? . GetFileWatcherService ( ) ;
122+ var fileWatcherService = this . activeWorkspace ? . GetFileWatcherService ( ) ;
119123 if ( fileWatcherService != null )
120124 {
121125 fileWatcherService . OnFileSystemChanged -= this . FileSystemChangedAsync ;
122126 }
123127
124- var indexService = this . currentWorkspace ? . GetIndexWorkspaceService ( ) ;
128+ var indexService = this . activeWorkspace ? . GetIndexWorkspaceService ( ) ;
125129 if ( indexService != null )
126130 {
127131 indexService . OnFileScannerCompleted -= this . FileScannerCompletedAsync ;
@@ -135,7 +139,7 @@ private Task FileSystemChangedAsync(object sender, FileSystemEventArgs args)
135139 // Any changes to the 'package.json' will be handled by the FileScannerCompleted event.
136140 if ( IsJavaScriptFile ( args . FullPath ) || args . IsDirectoryChanged ( ) )
137141 {
138- // use a flag so we don't deadlock
142+ // use a flag so we don't raise the event while under the lock
139143 var testsUpdated = false ;
140144 lock ( this . containerLock )
141145 {
0 commit comments