@@ -17,8 +17,10 @@ import * as vscode from "vscode";
1717
1818import  {  FolderContext  }  from  "./FolderContext" ; 
1919import  {  FolderOperation  }  from  "./WorkspaceContext" ; 
20+ import  {  handleMissingSwiftly  }  from  "./commands/installSwiftly" ; 
2021import  {  SwiftLogger  }  from  "./logging/SwiftLogger" ; 
2122import  {  BuildFlags  }  from  "./toolchain/BuildFlags" ; 
23+ import  {  handleMissingSwiftlyToolchain  }  from  "./toolchain/swiftly" ; 
2224import  {  showReloadExtensionNotification  }  from  "./ui/ReloadExtension" ; 
2325import  {  fileExists  }  from  "./utilities/filesystem" ; 
2426import  {  Version  }  from  "./utilities/version" ; 
@@ -140,6 +142,30 @@ export class PackageWatcher {
140142    async  handleSwiftVersionFileChange ( )  { 
141143        const  version  =  await  this . readSwiftVersionFile ( ) ; 
142144        if  ( version ?. toString ( )  !==  this . currentVersion ?. toString ( ) )  { 
145+             if  ( version )  { 
146+                 const  swiftlyInstalled  =  await  handleMissingSwiftly ( this . logger ) ; 
147+                 if  ( swiftlyInstalled )  { 
148+                     const  toolchainInstalled  =  await  handleMissingSwiftlyToolchain ( 
149+                         version . toString ( ) , 
150+                         this . logger , 
151+                         this . folderContext . folder 
152+                     ) ; 
153+                     if  ( toolchainInstalled )  { 
154+                         // Build dynamic message based on installation results 
155+                         const  message  = 
156+                             "Swiftly and Swift toolchain have been installed. Please reload the extension to use the new toolchain." ; 
157+                         await  showReloadExtensionNotification ( message ) ; 
158+                         return ; 
159+                     }  else  { 
160+                         // Only Swiftly was installed 
161+                         const  message  = 
162+                             "Swiftly has been installed. Please reload the extension to continue." ; 
163+                         await  showReloadExtensionNotification ( message ) ; 
164+                         return ; 
165+                     } 
166+                 } 
167+             } 
168+ 
143169            await  this . folderContext . fireEvent ( FolderOperation . swiftVersionUpdated ) ; 
144170            await  showReloadExtensionNotification ( 
145171                "Changing the swift toolchain version requires the extension to be reloaded" 
0 commit comments