@@ -30,6 +30,7 @@ import { showReloadExtensionNotification } from "./ui/ReloadExtension";
3030 */
3131export class PackageWatcher {
3232 private packageFileWatcher ?: vscode . FileSystemWatcher ;
33+ private resolvedChangedDisposable ?: vscode . Disposable ;
3334 private resolvedFileWatcher ?: vscode . FileSystemWatcher ;
3435 private workspaceStateFileWatcher ?: vscode . FileSystemWatcher ;
3536 private snippetWatcher ?: vscode . FileSystemWatcher ;
@@ -59,6 +60,7 @@ export class PackageWatcher {
5960 */
6061 dispose ( ) {
6162 this . packageFileWatcher ?. dispose ( ) ;
63+ this . resolvedChangedDisposable ?. dispose ( ) ;
6264 this . resolvedFileWatcher ?. dispose ( ) ;
6365 this . workspaceStateFileWatcher ?. dispose ( ) ;
6466 this . snippetWatcher ?. dispose ( ) ;
@@ -77,11 +79,18 @@ export class PackageWatcher {
7779
7880 private createResolvedFileWatcher ( ) : vscode . FileSystemWatcher {
7981 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 ( )
8193 ) ;
82- watcher . onDidCreate ( async ( ) => await this . handlePackageResolvedChange ( ) ) ;
83- watcher . onDidChange ( async ( ) => await this . handlePackageResolvedChange ( ) ) ;
84- watcher . onDidDelete ( async ( ) => await this . handlePackageResolvedChange ( ) ) ;
8594 return watcher ;
8695 }
8796
0 commit comments