Skip to content

Commit 852b0e5

Browse files
committed
feedback
1 parent c8656d1 commit 852b0e5

File tree

1 file changed

+21
-13
lines changed
  • extensions/positron-python/src/client/pythonEnvironments/creation

1 file changed

+21
-13
lines changed

extensions/positron-python/src/client/pythonEnvironments/creation/createEnvApi.ts

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,9 @@ class CreateEnvironmentProviders {
5151
this._createEnvProviders = [];
5252
}
5353

54-
public add(provider: CreateEnvironmentProvider) {
55-
// --- Start Positron ---
54+
// --- Start Positron ---
55+
// Added toTopOfList param
56+
public add(provider: CreateEnvironmentProvider, toTopOfList: boolean) {
5657
if (!isEnvProviderEnabled(provider.id)) {
5758
traceLog(`${provider.name} environment provider ${provider.id} is not enabled...skipping registration`);
5859
return;
@@ -62,6 +63,12 @@ class CreateEnvironmentProviders {
6263
if (this._createEnvProviders.filter((p) => p.id === provider.id).length > 0) {
6364
throw new Error(`Create Environment provider with id ${provider.id} already registered`);
6465
}
66+
// --- Start Positron ---
67+
if (toTopOfList) {
68+
this._createEnvProviders.unshift(provider);
69+
return;
70+
}
71+
// --- End Positron ---
6572
this._createEnvProviders.push(provider);
6673
}
6774

@@ -76,8 +83,14 @@ class CreateEnvironmentProviders {
7683

7784
const _createEnvironmentProviders: CreateEnvironmentProviders = new CreateEnvironmentProviders();
7885

79-
export function registerCreateEnvironmentProvider(provider: CreateEnvironmentProvider): Disposable {
80-
_createEnvironmentProviders.add(provider);
86+
// --- Start Positron ---
87+
// Added toTopOfList param
88+
export function registerCreateEnvironmentProvider(
89+
provider: CreateEnvironmentProvider,
90+
toTopOfList: boolean = false,
91+
): Disposable {
92+
_createEnvironmentProviders.add(provider, toTopOfList);
93+
// --- End Positron ---
8194
return new Disposable(() => {
8295
_createEnvironmentProviders.remove(provider);
8396
});
@@ -96,9 +109,6 @@ export async function registerCreateEnvironmentFeatures(
96109
// --- Start Positron ---
97110
pythonRuntimeManager: IPythonRuntimeManager,
98111
): Promise<void> {
99-
if (await isUvInstalled()) {
100-
disposables.push(registerCreateEnvironmentProvider(new UvCreationProvider()));
101-
}
102112
// --- End Positron ---
103113
disposables.push(
104114
registerCommand(
@@ -159,12 +169,15 @@ export async function registerCreateEnvironmentFeatures(
159169
},
160170
),
161171
registerCommand(Commands.Get_Conda_Python_Versions, () => getCondaPythonVersions()),
162-
registerCommand(Commands.Is_Uv_Installed, async () => isUvInstalled()),
172+
registerCommand(Commands.Is_Uv_Installed, async () => await isUvInstalled()),
163173
registerCommand(Commands.Get_Uv_Python_Versions, () => getUvPythonVersions()),
164174
registerCommand(Commands.Is_Global_Python, (interpreterPath: string) => isGlobalPython(interpreterPath)),
165175
// --- End Positron ---
166176
registerCreateEnvironmentProvider(new VenvCreationProvider(interpreterQuickPick)),
167177
registerCreateEnvironmentProvider(condaCreationProvider()),
178+
// --- Start Positron ---
179+
registerCreateEnvironmentProvider(new UvCreationProvider(), await isUvInstalled()),
180+
// --- End Positron ---
168181
onCreateEnvironmentExited(async (e: EnvironmentDidCreateEvent) => {
169182
if (e.path && e.options?.selectEnvironment) {
170183
await interpreterPathService.update(
@@ -176,11 +189,6 @@ export async function registerCreateEnvironmentFeatures(
176189
}
177190
}),
178191
);
179-
// --- Start Positron ---
180-
if (!(await isUvInstalled())) {
181-
disposables.push(registerCreateEnvironmentProvider(new UvCreationProvider()));
182-
}
183-
// --- End Positron ---
184192
}
185193

186194
export function buildEnvironmentCreationApi(): ProposedCreateEnvironmentAPI {

0 commit comments

Comments
 (0)