@@ -7,10 +7,11 @@ import {
77 WorkspaceConfiguration ,
88 WorkspaceFolder ,
99} from 'vscode' ;
10- import { PythonProjectManager , PythonProjectSettings } from '../../internal.api' ;
11- import { traceError , traceInfo } from '../../common/logging' ;
1210import { PythonProject } from '../../api' ;
1311import { DEFAULT_ENV_MANAGER_ID , DEFAULT_PACKAGE_MANAGER_ID } from '../../common/constants' ;
12+ import { traceError , traceInfo } from '../../common/logging' ;
13+ import { getWorkspaceFile } from '../../common/workspace.apis' ;
14+ import { PythonProjectManager , PythonProjectSettings } from '../../internal.api' ;
1415
1516function getSettings (
1617 wm : PythonProjectManager ,
@@ -105,6 +106,7 @@ export async function setAllManagerSettings(edits: EditAllManagerSettings[]): Pr
105106 }
106107 } ) ;
107108
109+ const workspaceFile = getWorkspaceFile ( ) ;
108110 const promises : Thenable < void > [ ] = [ ] ;
109111
110112 workspaces . forEach ( ( es , w ) => {
@@ -116,6 +118,12 @@ export async function setAllManagerSettings(edits: EditAllManagerSettings[]): Pr
116118 if ( index >= 0 ) {
117119 overrides [ index ] . envManager = e . envManager ;
118120 overrides [ index ] . packageManager = e . packageManager ;
121+ } else if ( workspaceFile ) {
122+ overrides . push ( {
123+ path : path . relative ( w . uri . fsPath , pwPath ) . replace ( / \\ / g, '/' ) ,
124+ envManager : e . envManager ,
125+ packageManager : e . packageManager ,
126+ } ) ;
119127 } else {
120128 if ( config . get ( 'defaultEnvManager' ) !== e . envManager ) {
121129 promises . push ( config . update ( 'defaultEnvManager' , e . envManager , ConfigurationTarget . Workspace ) ) ;
@@ -127,7 +135,13 @@ export async function setAllManagerSettings(edits: EditAllManagerSettings[]): Pr
127135 }
128136 }
129137 } ) ;
130- promises . push ( config . update ( 'pythonProjects' , overrides , ConfigurationTarget . Workspace ) ) ;
138+ promises . push (
139+ config . update (
140+ 'pythonProjects' ,
141+ overrides ,
142+ workspaceFile ? ConfigurationTarget . WorkspaceFolder : ConfigurationTarget . Workspace ,
143+ ) ,
144+ ) ;
131145 } ) ;
132146
133147 const config = workspace . getConfiguration ( 'python-envs' , undefined ) ;
0 commit comments