@@ -51,8 +51,9 @@ class CreateEnvironmentProviders {
51
51
this . _createEnvProviders = [ ] ;
52
52
}
53
53
54
- public add ( provider : CreateEnvironmentProvider ) {
55
- // --- Start Positron ---
54
+ // --- Start Positron ---
55
+ // Added toTopOfList param
56
+ public add ( provider : CreateEnvironmentProvider , toTopOfList : boolean ) {
56
57
if ( ! isEnvProviderEnabled ( provider . id ) ) {
57
58
traceLog ( `${ provider . name } environment provider ${ provider . id } is not enabled...skipping registration` ) ;
58
59
return ;
@@ -62,6 +63,12 @@ class CreateEnvironmentProviders {
62
63
if ( this . _createEnvProviders . filter ( ( p ) => p . id === provider . id ) . length > 0 ) {
63
64
throw new Error ( `Create Environment provider with id ${ provider . id } already registered` ) ;
64
65
}
66
+ // --- Start Positron ---
67
+ if ( toTopOfList ) {
68
+ this . _createEnvProviders . unshift ( provider ) ;
69
+ return ;
70
+ }
71
+ // --- End Positron ---
65
72
this . _createEnvProviders . push ( provider ) ;
66
73
}
67
74
@@ -76,8 +83,14 @@ class CreateEnvironmentProviders {
76
83
77
84
const _createEnvironmentProviders : CreateEnvironmentProviders = new CreateEnvironmentProviders ( ) ;
78
85
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 ---
81
94
return new Disposable ( ( ) => {
82
95
_createEnvironmentProviders . remove ( provider ) ;
83
96
} ) ;
@@ -96,9 +109,6 @@ export async function registerCreateEnvironmentFeatures(
96
109
// --- Start Positron ---
97
110
pythonRuntimeManager : IPythonRuntimeManager ,
98
111
) : Promise < void > {
99
- if ( await isUvInstalled ( ) ) {
100
- disposables . push ( registerCreateEnvironmentProvider ( new UvCreationProvider ( ) ) ) ;
101
- }
102
112
// --- End Positron ---
103
113
disposables . push (
104
114
registerCommand (
@@ -159,12 +169,15 @@ export async function registerCreateEnvironmentFeatures(
159
169
} ,
160
170
) ,
161
171
registerCommand ( Commands . Get_Conda_Python_Versions , ( ) => getCondaPythonVersions ( ) ) ,
162
- registerCommand ( Commands . Is_Uv_Installed , async ( ) => isUvInstalled ( ) ) ,
172
+ registerCommand ( Commands . Is_Uv_Installed , async ( ) => await isUvInstalled ( ) ) ,
163
173
registerCommand ( Commands . Get_Uv_Python_Versions , ( ) => getUvPythonVersions ( ) ) ,
164
174
registerCommand ( Commands . Is_Global_Python , ( interpreterPath : string ) => isGlobalPython ( interpreterPath ) ) ,
165
175
// --- End Positron ---
166
176
registerCreateEnvironmentProvider ( new VenvCreationProvider ( interpreterQuickPick ) ) ,
167
177
registerCreateEnvironmentProvider ( condaCreationProvider ( ) ) ,
178
+ // --- Start Positron ---
179
+ registerCreateEnvironmentProvider ( new UvCreationProvider ( ) , await isUvInstalled ( ) ) ,
180
+ // --- End Positron ---
168
181
onCreateEnvironmentExited ( async ( e : EnvironmentDidCreateEvent ) => {
169
182
if ( e . path && e . options ?. selectEnvironment ) {
170
183
await interpreterPathService . update (
@@ -176,11 +189,6 @@ export async function registerCreateEnvironmentFeatures(
176
189
}
177
190
} ) ,
178
191
) ;
179
- // --- Start Positron ---
180
- if ( ! ( await isUvInstalled ( ) ) ) {
181
- disposables . push ( registerCreateEnvironmentProvider ( new UvCreationProvider ( ) ) ) ;
182
- }
183
- // --- End Positron ---
184
192
}
185
193
186
194
export function buildEnvironmentCreationApi ( ) : ProposedCreateEnvironmentAPI {
0 commit comments