Skip to content

Commit ce4e126

Browse files
authored
Merge pull request #721 from CodinGame/lmn/backport-built-in-extension-detection-fix
Backport built-in extension detection fix
2 parents 4166d4a + 4110f84 commit ce4e126

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
2+
From: =?UTF-8?q?Lo=C3=AFc=20Mangeonjean?= <[email protected]>
3+
Date: Wed, 22 Oct 2025 18:02:13 +0200
4+
Subject: [PATCH] fix: backport configuration-editing built-in extension
5+
detection fix
6+
7+
https://github.com/microsoft/vscode/pull/272730
8+
---
9+
extensions/configuration-editing/src/extensionsProposals.ts | 2 +-
10+
src/vs/workbench/api/common/extHostExtensionService.ts | 2 ++
11+
src/vscode-dts/vscode.d.ts | 5 +++++
12+
3 files changed, 8 insertions(+), 1 deletion(-)
13+
14+
diff --git a/extensions/configuration-editing/src/extensionsProposals.ts b/extensions/configuration-editing/src/extensionsProposals.ts
15+
index ba1c33e7845..bafc4ef36a0 100644
16+
--- a/extensions/configuration-editing/src/extensionsProposals.ts
17+
+++ b/extensions/configuration-editing/src/extensionsProposals.ts
18+
@@ -8,7 +8,7 @@ import * as vscode from 'vscode';
19+
20+
export async function provideInstalledExtensionProposals(existing: string[], additionalText: string, range: vscode.Range, includeBuiltinExtensions: boolean): Promise<vscode.CompletionItem[] | vscode.CompletionList> {
21+
if (Array.isArray(existing)) {
22+
- const extensions = includeBuiltinExtensions ? vscode.extensions.all : vscode.extensions.all.filter(e => !(e.id.startsWith('vscode.') || e.id === 'Microsoft.vscode-markdown'));
23+
+ const extensions = includeBuiltinExtensions ? vscode.extensions.all : vscode.extensions.all.filter(e => !(e.isBuiltin || e.id === 'Microsoft.vscode-markdown'));
24+
const knownExtensionProposals = extensions.filter(e => existing.indexOf(e.id) === -1);
25+
if (knownExtensionProposals.length) {
26+
return knownExtensionProposals.map(e => {
27+
diff --git a/src/vs/workbench/api/common/extHostExtensionService.ts b/src/vs/workbench/api/common/extHostExtensionService.ts
28+
index 61b03cc7ae9..2fc7b0d1922 100644
29+
--- a/src/vs/workbench/api/common/extHostExtensionService.ts
30+
+++ b/src/vs/workbench/api/common/extHostExtensionService.ts
31+
@@ -1177,12 +1177,14 @@ export class Extension<T extends object | null | undefined> implements vscode.Ex
32+
readonly packageJSON: IExtensionDescription;
33+
readonly extensionKind: vscode.ExtensionKind;
34+
readonly isFromDifferentExtensionHost: boolean;
35+
+ readonly isBuiltin: boolean;
36+
37+
constructor(extensionService: IExtHostExtensionService, originExtensionId: ExtensionIdentifier, description: IExtensionDescription, kind: ExtensionKind, isFromDifferentExtensionHost: boolean) {
38+
this.#extensionService = extensionService;
39+
this.#originExtensionId = originExtensionId;
40+
this.#identifier = description.identifier;
41+
this.id = description.identifier.value;
42+
+ this.isBuiltin = description.isBuiltin;
43+
this.extensionUri = description.extensionLocation;
44+
this.extensionPath = path.normalize(originalFSPath(description.extensionLocation));
45+
this.packageJSON = description;
46+
diff --git a/src/vscode-dts/vscode.d.ts b/src/vscode-dts/vscode.d.ts
47+
index 7bb1c69f7f9..d457207627d 100644
48+
--- a/src/vscode-dts/vscode.d.ts
49+
+++ b/src/vscode-dts/vscode.d.ts
50+
@@ -8311,6 +8311,11 @@ declare module 'vscode' {
51+
*/
52+
extensionKind: ExtensionKind;
53+
54+
+ /**
55+
+ * `true` if the extension is a built-in extension.
56+
+ */
57+
+ isBuiltin: boolean;
58+
+
59+
/**
60+
* The public API exported by this extension (return value of `activate`).
61+
* It is an invalid action to access this field before this extension has been activated.

0 commit comments

Comments
 (0)