@@ -21,8 +21,6 @@ import {
2121 ProjectEnvironmentInfo ,
2222 ProjectItem ,
2323 ProjectPackage ,
24- ProjectPackageRootInfoTreeItem ,
25- ProjectPackageRootTreeItem ,
2624 ProjectTreeItem ,
2725 ProjectTreeItemKind ,
2826} from './treeViewItems' ;
@@ -34,7 +32,7 @@ export class ProjectView implements TreeDataProvider<ProjectTreeItem> {
3432 > ( ) ;
3533 private projectViews : Map < string , ProjectItem > = new Map ( ) ;
3634 private revealMap : Map < string , ProjectEnvironment > = new Map ( ) ;
37- private packageRoots : Map < string , ProjectPackageRootTreeItem > = new Map ( ) ;
35+ private packageRoots : Map < string , ProjectEnvironment > = new Map ( ) ;
3836 private disposables : Disposable [ ] = [ ] ;
3937 private debouncedUpdateProject = createSimpleDebounce ( 500 , ( ) => this . updateProject ( ) ) ;
4038 public constructor ( private envManagers : EnvironmentManagers , private projectManager : PythonProjectManager ) {
@@ -83,7 +81,8 @@ export class ProjectView implements TreeDataProvider<ProjectTreeItem> {
8381
8482 private updatePackagesForEnvironment ( e : PythonEnvironment ) : void {
8583 const views : ProjectTreeItem [ ] = [ ] ;
86- this . packageRoots . forEach ( ( v ) => {
84+ // Look for environments matching this environment ID and refresh them
85+ this . revealMap . forEach ( ( v ) => {
8786 if ( v . environment . envId . id === e . envId . id ) {
8887 views . push ( v ) ;
8988 }
@@ -193,32 +192,24 @@ export class ProjectView implements TreeDataProvider<ProjectTreeItem> {
193192 const pkgManager = this . envManagers . getPackageManager ( uri ) ;
194193 const environment = environmentItem . environment ;
195194
196- const views : ProjectTreeItem [ ] = [ ] ;
195+ if ( ! pkgManager ) {
196+ return [ new ProjectEnvironmentInfo ( environmentItem , ProjectViews . noPackageManager ) ] ;
197+ }
197198
198- if ( pkgManager ) {
199- const item = new ProjectPackageRootTreeItem ( environmentItem , pkgManager , environment ) ;
200- this . packageRoots . set ( uri ? uri . fsPath : 'global' , item ) ;
201- views . push ( item ) ;
202- } else {
203- views . push ( new ProjectEnvironmentInfo ( environmentItem , ProjectViews . noPackageManager ) ) ;
199+ let packages = await pkgManager . getPackages ( environment ) ;
200+ if ( ! packages ) {
201+ return [ new ProjectEnvironmentInfo ( environmentItem , ProjectViews . noPackages ) ] ;
204202 }
205- return views ;
206- }
207203
208- if ( element . kind === ProjectTreeItemKind . packageRoot ) {
209- const root = element as ProjectPackageRootTreeItem ;
210- const manager = root . manager ;
211- const environment = root . environment ;
212- let packages = await manager . getPackages ( environment ) ;
213- const views : ProjectTreeItem [ ] = [ ] ;
204+ // Store the reference for refreshing packages
205+ this . packageRoots . set ( uri ? uri . fsPath : 'global' , environmentItem ) ;
214206
215- if ( packages ) {
216- return packages . map ( ( p ) => new ProjectPackage ( root , p , manager ) ) ;
217- } else {
218- views . push ( new ProjectPackageRootInfoTreeItem ( root , ProjectViews . noPackages ) ) ;
219- }
207+ // Return packages directly under the environment
208+ return packages . map ( ( p ) => new ProjectPackage ( environmentItem , p , pkgManager ) ) ;
220209 }
221210
211+ // We no longer need to handle packageRoot items as they are not created anymore
212+
222213 return undefined ;
223214 }
224215 getParent ( element : ProjectTreeItem ) : ProviderResult < ProjectTreeItem > {
0 commit comments