Skip to content

Commit e3784a6

Browse files
author
Kartik Raj
committed
Revert "Cache the value of extensions.all (microsoft#20222)"
This reverts commit db5e96c.
1 parent b49a70f commit e3784a6

File tree

3 files changed

+13
-29
lines changed

3 files changed

+13
-29
lines changed

src/client/common/application/extensions.ts

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,6 @@ import { EXTENSION_ROOT_DIR } from '../constants';
1717
*/
1818
@injectable()
1919
export class Extensions implements IExtensions {
20-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
21-
private _cachedExtensions?: readonly Extension<any>[];
22-
2320
constructor(@inject(IFileSystem) private readonly fs: IFileSystem) {}
2421

2522
// eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -35,16 +32,6 @@ export class Extensions implements IExtensions {
3532
return extensions.getExtension(extensionId);
3633
}
3734

38-
private get cachedExtensions() {
39-
if (!this._cachedExtensions) {
40-
this._cachedExtensions = this._cachedExtensions || extensions.all;
41-
extensions.onDidChange(() => {
42-
this._cachedExtensions = this._cachedExtensions || extensions.all;
43-
});
44-
}
45-
return this._cachedExtensions;
46-
}
47-
4835
/**
4936
* Code borrowed from:
5037
* https://github.com/microsoft/vscode-jupyter/blob/67fe33d072f11d6443cf232a06bed0ac5e24682c/src/platform/common/application/extensions.node.ts
@@ -64,8 +51,7 @@ export class Extensions implements IExtensions {
6451
})
6552
.filter((item) => item && !item.toLowerCase().startsWith(pythonExtRoot))
6653
.filter((item) =>
67-
// Use cached list of extensions as we need this to be fast.
68-
this.cachedExtensions.some(
54+
this.all.some(
6955
(ext) => item!.includes(ext.extensionUri.path) || item!.includes(ext.extensionUri.fsPath),
7056
),
7157
) as string[];

src/client/proposedApi.ts

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -125,20 +125,16 @@ export function buildProposedApi(
125125
const extensions = serviceContainer.get<IExtensions>(IExtensions);
126126
const envVarsProvider = serviceContainer.get<IEnvironmentVariablesProvider>(IEnvironmentVariablesProvider);
127127
function sendApiTelemetry(apiName: string, args?: unknown) {
128-
setTimeout(() =>
129-
extensions
130-
.determineExtensionFromCallStack()
131-
.then((info) => {
132-
sendTelemetryEvent(EventName.PYTHON_ENVIRONMENTS_API, undefined, {
133-
apiName,
134-
extensionId: info.extensionId,
135-
});
136-
traceVerbose(
137-
`Extension ${info.extensionId} accessed ${apiName} with args: ${JSON.stringify(args)}`,
138-
);
139-
})
140-
.ignoreErrors(),
141-
);
128+
extensions
129+
.determineExtensionFromCallStack()
130+
.then((info) => {
131+
sendTelemetryEvent(EventName.PYTHON_ENVIRONMENTS_API, undefined, {
132+
apiName,
133+
extensionId: info.extensionId,
134+
});
135+
traceVerbose(`Extension ${info.extensionId} accessed ${apiName} with args: ${JSON.stringify(args)}`);
136+
})
137+
.ignoreErrors();
142138
}
143139
disposables.push(
144140
discoveryApi.onChanged((e) => {

src/test/proposedApi.unit.test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,8 @@ suite('Proposed Extension API', () => {
9999
});
100100

101101
teardown(() => {
102+
// Verify each API method sends telemetry regarding who called the API.
103+
extensions.verifyAll();
102104
sinon.restore();
103105
});
104106

0 commit comments

Comments
 (0)