@@ -30,6 +30,7 @@ import { showReloadExtensionNotification } from "./ui/ReloadExtension";
30
30
*/
31
31
export class PackageWatcher {
32
32
private packageFileWatcher ?: vscode . FileSystemWatcher ;
33
+ private resolvedChangedDisposable ?: vscode . Disposable ;
33
34
private resolvedFileWatcher ?: vscode . FileSystemWatcher ;
34
35
private workspaceStateFileWatcher ?: vscode . FileSystemWatcher ;
35
36
private snippetWatcher ?: vscode . FileSystemWatcher ;
@@ -59,6 +60,7 @@ export class PackageWatcher {
59
60
*/
60
61
dispose ( ) {
61
62
this . packageFileWatcher ?. dispose ( ) ;
63
+ this . resolvedChangedDisposable ?. dispose ( ) ;
62
64
this . resolvedFileWatcher ?. dispose ( ) ;
63
65
this . workspaceStateFileWatcher ?. dispose ( ) ;
64
66
this . snippetWatcher ?. dispose ( ) ;
@@ -77,11 +79,18 @@ export class PackageWatcher {
77
79
78
80
private createResolvedFileWatcher ( ) : vscode . FileSystemWatcher {
79
81
const watcher = vscode . workspace . createFileSystemWatcher (
80
- new vscode . RelativePattern ( this . folderContext . folder , "Package.resolved" )
82
+ new vscode . RelativePattern ( this . folderContext . folder , "Package.resolved" ) ,
83
+ // https://github.com/swiftlang/vscode-swift/issues/1571
84
+ // We can ignore create because that would be seemingly from a Package.resolved
85
+ // and will ignore delete as we don't know the reason behind. By still listening
86
+ // for change
87
+ true ,
88
+ false ,
89
+ true
90
+ ) ;
91
+ this . resolvedChangedDisposable = watcher . onDidChange (
92
+ async ( ) => await this . handlePackageResolvedChange ( )
81
93
) ;
82
- watcher . onDidCreate ( async ( ) => await this . handlePackageResolvedChange ( ) ) ;
83
- watcher . onDidChange ( async ( ) => await this . handlePackageResolvedChange ( ) ) ;
84
- watcher . onDidDelete ( async ( ) => await this . handlePackageResolvedChange ( ) ) ;
85
94
return watcher ;
86
95
}
87
96
0 commit comments