@@ -24,6 +24,7 @@ function shouldRunCheckup() {
2424
2525class UpgradeManager {
2626 private static watcherSetup = false ;
27+ private static scanned = false ;
2728
2829 public static initialize ( context : ExtensionContext ) {
2930 notificationManager . initialize ( context ) ;
@@ -45,15 +46,19 @@ class UpgradeManager {
4546 } ) ) ;
4647
4748 // Defer the expensive scan operation to not block extension activation
48- setImmediate ( ( ) => UpgradeManager . scan ( ) ) ;
49+ setImmediate ( ( ) => UpgradeManager . scan ( false ) ) ;
4950 }
5051
51- public static scan ( ) {
52+ public static scan ( forceRescan : boolean ) {
5253 return instrumentOperation ( "java.dependency.scan" , async ( _operationId : string ) => {
5354 if ( ! shouldRunCheckup ( ) ) {
5455 return ;
5556 }
5657
58+ if ( forceRescan ) {
59+ UpgradeManager . scanned = false ;
60+ }
61+
5762 if ( ! ( await languageServerApiManager . ready ( ) ) ) {
5863 sendInfo ( _operationId , { skipReason : "languageServerNotReady" } ) ;
5964 return ;
@@ -67,6 +72,11 @@ class UpgradeManager {
6772 return ;
6873 }
6974
75+ if ( UpgradeManager . scanned ) {
76+ return ;
77+ }
78+ UpgradeManager . scanned = true ;
79+
7080 workspace . workspaceFolders ?. forEach ( ( folder ) =>
7181 UpgradeManager . runDependencyCheckup ( folder )
7282 ) ;
@@ -109,7 +119,7 @@ class UpgradeManager {
109119 const onDidServerModeChange : Event < string > = extensionApi . onDidServerModeChange ;
110120 contextManager . context . subscriptions . push ( onDidServerModeChange ( ( mode : LanguageServerMode ) => {
111121 if ( mode !== LanguageServerMode . LightWeight ) {
112- UpgradeManager . scan ( ) ;
122+ UpgradeManager . scan ( false ) ;
113123 }
114124 } ) ) ;
115125 UpgradeManager . watcherSetup = true ;
0 commit comments