Skip to content

Commit a2ad356

Browse files
authored
Use @vscode/python-environment (#281)
1 parent ea22e43 commit a2ad356

5 files changed

Lines changed: 50 additions & 65 deletions

File tree

.npmrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
@vscode:registry=https://pkgs.dev.azure.com/azure-public/vside/_packaging/python-environments/npm/registry/

package-lock.json

Lines changed: 37 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,24 +140,25 @@
140140
]
141141
},
142142
"dependencies": {
143+
"@vscode/python-environments": "^1.0.0",
143144
"@vscode/python-extension": "^1.0.6",
144145
"fs-extra": "^11.2.0",
145146
"vscode-languageclient": "^8.1.0"
146147
},
147148
"devDependencies": {
148149
"@types/fs-extra": "^11.0.4",
149-
"@types/vscode": "1.78.0",
150150
"@types/glob": "^8.1.0",
151151
"@types/node": "20.x",
152+
"@types/vscode": "1.78.0",
152153
"@typescript-eslint/eslint-plugin": "^8.57.0",
153154
"@typescript-eslint/parser": "^8.57.0",
154155
"@vscode/test-electron": "^2.5.2",
155156
"@vscode/vsce": "^3.7.1",
156157
"eslint": "^8.56.0",
157158
"glob": "^13.0.6",
158159
"prettier": "^3.8.1",
159-
"typescript": "^5.3.3",
160160
"ts-loader": "^9.5.4",
161+
"typescript": "^5.3.3",
161162
"webpack": "^5.105.4",
162163
"webpack-cli": "^5.1.4"
163164
}

src/common/python.ts

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
// Licensed under the MIT License.
33

44
/* eslint-disable @typescript-eslint/naming-convention */
5-
import { commands, Disposable, Event, EventEmitter, extensions, Uri } from 'vscode';
5+
import { commands, Disposable, Event, EventEmitter, Uri } from 'vscode';
66
import { traceError, traceLog } from './log/logging';
77
import { PythonExtension, ResolvedEnvironment } from '@vscode/python-extension';
8-
import { PythonEnvironmentsAPI } from '../typings/pythonEnvironments';
8+
import { PythonEnvironmentApi, PythonEnvironments } from '@vscode/python-environments';
99

1010
export interface IInterpreterDetails {
1111
path?: string[];
@@ -24,21 +24,16 @@ async function getPythonExtensionAPI(): Promise<PythonExtension | undefined> {
2424
return _api;
2525
}
2626

27-
const PYTHON_ENVIRONMENTS_EXTENSION_ID = 'ms-python.vscode-python-envs';
28-
29-
let _envsApi: PythonEnvironmentsAPI | undefined;
30-
async function getEnvironmentsExtensionAPI(): Promise<PythonEnvironmentsAPI | undefined> {
27+
let _envsApi: PythonEnvironmentApi | undefined;
28+
async function getEnvironmentsExtensionAPI(): Promise<PythonEnvironmentApi | undefined> {
3129
if (_envsApi) {
3230
return _envsApi;
3331
}
34-
const extension = extensions.getExtension(PYTHON_ENVIRONMENTS_EXTENSION_ID);
35-
if (!extension) {
32+
try {
33+
_envsApi = await PythonEnvironments.api();
34+
} catch {
3635
return undefined;
3736
}
38-
if (!extension.isActive) {
39-
await extension.activate();
40-
}
41-
_envsApi = extension.exports as PythonEnvironmentsAPI;
4237
return _envsApi;
4338
}
4439

@@ -70,7 +65,8 @@ export async function initializePython(disposables: Disposable[]): Promise<void>
7065
if (api) {
7166
disposables.push(
7267
api.environments.onDidChangeActiveEnvironmentPath((e) => {
73-
onDidChangePythonInterpreterEvent.fire({ path: [e.path], resource: e.resource?.uri });
68+
const resource = e.resource instanceof Uri ? e.resource : e.resource?.uri;
69+
onDidChangePythonInterpreterEvent.fire({ path: [e.path], resource });
7470
}),
7571
);
7672

src/typings/pythonEnvironments.d.ts

Lines changed: 0 additions & 47 deletions
This file was deleted.

0 commit comments

Comments
 (0)