extensionsRegistry.ts ×14

Frontier kind: Code frontier

unlabeled · c_5092b00dcbb3

734 tests · 10886 LOC · 47 files · introduces 0 tests · 1161 LOC · 2 files

Introduces — evidence that enters the hierarchy at this concept

Code
15 ranges1161 lines · 2 files
Tests
0 tests

Contains — complete concept membership

All code (extent)
1076 ranges10886 lines · 47 files · Browse complete extent
All tests (intent)
734 testsBrowse complete intent

Neighbourhood graph

The orange circle is the focus. Violet and green circles are every ancestor and descendant, broader and narrower, at any distance; blue squares and pink diamonds are the introduced files and exact introduced tests of every visible concept, not only the focus's. Arrows point from broader to narrower concepts and bridge only concepts omitted from this view. Undirected links show source or test introduction. Concept and file size follows LOC; exact test nodes use test-count units.

Introduced files, introduced tests, and structurally relevant concept specialization

In the embedded map, ordinary wheel input scrolls the page; use the visible controls to zoom and drag to pan. Open the full-screen map for canvas navigation: wheel pans, Ctrl/Command plus wheel zooms, and arrow keys pan when this region is focused. On touch screens, open the full-screen map to pan or pinch. If JavaScript or WebGL is unavailable, use the native relationship evidence on this page.

Graph controls are ready.

Interactive rendering requires JavaScript and WebGL. Use the native relationship evidence on this page while the interactive map is unavailable.

Native relationship evidence

Every exact file and test below is linked only from the concept that introduces it.

Introduced tests

Every collected test enters the hierarchy at exactly one concept.

No tests are introduced at this concept. Its intent tests are introduced by other concepts.

Introduced code

Every collected source range enters the hierarchy at exactly one concept.

2 files ranked by introduced lines: 1161 introduced LOC across 15 ranges. Expand a file to inspect source; the > gutter marks introduced lines.

src/vs/workbench/services/extensions/common/extensionsRegistry.ts 622 introduced LOC · 14 ranges

Open complete file

1 > /*--------------------------------------------------------------------------------------------- extensionsRegistry.ts
2 > * Copyright (c) Microsoft Corporation. All rights reserved.
3 > * Licensed under the MIT License. See License.txt in the project root for license information.
4 > *--------------------------------------------------------------------------------------------*/
5 >
6 > import * as nls from '../../../../nls.js';
7 > import { onUnexpectedError } from '../../../../base/common/errors.js';
8 > import { IJSONSchema } from '../../../../base/common/jsonSchema.js';
9 > import Severity from '../../../../base/common/severity.js';
10 > import { EXTENSION_IDENTIFIER_PATTERN } from '../../../../platform/extensionManagement/common/extensionManagement.js';
11 > import { Extensions, IJSONContributionRegistry } from '../../../../platform/jsonschemas/common/jsonContributionRegistry.js';
12 > import { Registry } from '../../../../platform/registry/common/platform.js';
13 > import { IMessage } from './extensions.js';
14 > import { IExtensionDescription, EXTENSION_CATEGORIES, ExtensionIdentifierSet } from '../../../../platform/extensions/common/extensions.js';
15 > import { ExtensionKind } from '../../../../platform/environment/common/environment.js';
16 > import { productSchemaId } from '../../../../platform/product/common/productService.js';
17 > import { ImplicitActivationEvents, IActivationEventsGenerator } from '../../../../platform/extensionManagement/common/implicitActivationEvents.js';
18 > import { IDisposable } from '../../../../base/common/lifecycle.js';
19 > import { allApiProposals } from '../../../../platform/extensions/common/extensionsApiProposals.js';
20 >
21 > const schemaRegistry = Registry.as<IJSONContributionRegistry>(Extensions.JSONContribution);
22 >
23 > export class ExtensionMessageCollector {
24 >
25 > private readonly _messageHandler: (msg: IMessage) => void;
26 > private readonly _extension: IExtensionDescription;
27 > private readonly _extensionPointId: string;
28 >
29 > constructor(
30 messageHandler: (msg: IMessage) => void,
31 extension: IExtensionDescription,
36 this._extensionPointId = extensionPointId;
37 }
39 > private _msg(type: Severity, message: string): void {
40 this._messageHandler({
41 type: type,
45 });
46 }
48 > public error(message: string): void {
49 this._msg(Severity.Error, message);
50 }
52 > public warn(message: string): void {
53 this._msg(Severity.Warning, message);
54 }
56 > public info(message: string): void {
57 this._msg(Severity.Info, message);
58 }
60 >
61 > export interface IExtensionPointUser<T> {
62 > description: IExtensionDescription;
63 > value: T;
64 > collector: ExtensionMessageCollector;
65 > }
66 >
67 > export type IExtensionPointHandler<T> = (extensions: readonly IExtensionPointUser<T>[], delta: ExtensionPointUserDelta<T>) => void;
68 >
69 > export interface IExtensionPoint<T> {
70 > readonly name: string;
71 > setHandler(handler: IExtensionPointHandler<T>): IDisposable;
72 > readonly defaultExtensionKind: ExtensionKind[] | undefined;
73 > readonly canHandleResolver?: boolean;
74 > }
75 >
76 > export class ExtensionPointUserDelta<T> {
77 >
78 > private static _toSet<T>(arr: readonly IExtensionPointUser<T>[]): ExtensionIdentifierSet {
79 > const result = new ExtensionIdentifierSet();
80 > for (let i = 0, len = arr.length; i < len; i++) {
81 > result.add(arr[i].description.identifier);
82 > }
83 > return result;
84 > }
85 >
86 > public static compute<T>(previous: readonly IExtensionPointUser<T>[] | null, current: readonly IExtensionPointUser<T>[]): ExtensionPointUserDelta<T> {
87 if (!previous || !previous.length) {
88 return new ExtensionPointUserDelta<T>(current, []);
100 return new ExtensionPointUserDelta<T>(added, removed);
101 }
103 > constructor(
104 public readonly added: readonly IExtensionPointUser<T>[],
105 public readonly removed: readonly IExtensionPointUser<T>[],
106 ) { }
108 >
109 > export class ExtensionPoint<T> implements IExtensionPoint<T> {
110 >
111 > public readonly name: string;
112 > public readonly defaultExtensionKind: ExtensionKind[] | undefined;
113 > public readonly canHandleResolver?: boolean;
114 >
115 > private _handler: IExtensionPointHandler<T> | null;
116 > private _users: IExtensionPointUser<T>[] | null;
117 > private _delta: ExtensionPointUserDelta<T> | null;
118 >
119 > constructor(name: string, defaultExtensionKind: ExtensionKind[] | undefined, canHandleResolver?: boolean) {
120 this.name = name;
121 this.defaultExtensionKind = defaultExtensionKind;
125 this._delta = null;
126 }
128 > setHandler(handler: IExtensionPointHandler<T>): IDisposable {
129 if (this._handler !== null) {
130 throw new Error('Handler already set!');
139 };
140 }
142 > acceptUsers(users: IExtensionPointUser<T>[]): void {
143 this._delta = ExtensionPointUserDelta.compute(this._users, users);
144 this._users = users;
145 this._handle();
146 }
148 > private _handle(): void {
149 if (this._handler === null || this._users === null || this._delta === null) {
150 return;
157 }
158 }
160 >
161 > const extensionKindSchema: IJSONSchema = {
162 > type: 'string',
163 > enum: [
164 > 'ui',
165 > 'workspace'
166 > ],
167 > enumDescriptions: [
168 > nls.localize('ui', "UI extension kind. In a remote window, such extensions are enabled only when available on the local machine."),
169 > nls.localize('workspace', "Workspace extension kind. In a remote window, such extensions are enabled only when available on the remote."),
170 > ],
171 > };
172 >
173 > const schemaId = 'vscode://schemas/vscode-extensions';
174 > export const schema: IJSONSchema = {
175 > properties: {
176 > engines: {
177 > type: 'object',
178 > description: nls.localize('vscode.extension.engines', "Engine compatibility."),
179 > properties: {
180 > 'vscode': {
181 > type: 'string',
182 > description: nls.localize('vscode.extension.engines.vscode', 'For VS Code extensions, specifies the VS Code version that the extension is compatible with. Cannot be *. For example: ^1.105.0 indicates compatibility with a minimum VS Code version of 1.105.0.'),
183 > default: '^1.105.0',
184 > }
185 > }
186 > },
187 > publisher: {
188 > description: nls.localize('vscode.extension.publisher', 'The publisher of the VS Code extension.'),
189 > type: 'string'
190 > },
191 > displayName: {
192 > description: nls.localize('vscode.extension.displayName', 'The display name for the extension used in the VS Code gallery.'),
193 > type: 'string'
194 > },
195 > categories: {
196 > description: nls.localize('vscode.extension.categories', 'The categories used by the VS Code gallery to categorize the extension.'),
197 > type: 'array',
198 > uniqueItems: true,
199 > items: {
200 > oneOf: [{
201 > type: 'string',
202 > enum: EXTENSION_CATEGORIES,
203 > },
204 > {
205 > type: 'string',
206 > const: 'Languages',
207 > deprecationMessage: nls.localize('vscode.extension.category.languages.deprecated', 'Use \'Programming Languages\' instead'),
208 > }]
209 > }
210 > },
211 > galleryBanner: {
212 > type: 'object',
213 > description: nls.localize('vscode.extension.galleryBanner', 'Banner used in the VS Code marketplace.'),
214 > properties: {
215 > color: {
216 > description: nls.localize('vscode.extension.galleryBanner.color', 'The banner color on the VS Code marketplace page header.'),
217 > type: 'string'
218 > },
219 > theme: {
220 > description: nls.localize('vscode.extension.galleryBanner.theme', 'The color theme for the font used in the banner.'),
221 > type: 'string',
222 > enum: ['dark', 'light']
223 > }
224 > }
225 > },
226 > contributes: {
227 > description: nls.localize('vscode.extension.contributes', 'All contributions of the VS Code extension represented by this package.'),
228 > type: 'object',
229 > // eslint-disable-next-line local/code-no-any-casts
230 > properties: {
231 > // extensions will fill in
232 > } as any as { [key: string]: any },
233 > default: {}
234 > },
235 > preview: {
236 > type: 'boolean',
237 > description: nls.localize('vscode.extension.preview', 'Sets the extension to be flagged as a Preview in the Marketplace.'),
238 > },
239 > enableProposedApi: {
240 > type: 'boolean',
241 > deprecationMessage: nls.localize('vscode.extension.enableProposedApi.deprecated', 'Use `enabledApiProposals` instead.'),
242 > },
243 > enabledApiProposals: {
244 > markdownDescription: nls.localize('vscode.extension.enabledApiProposals', 'Enable API proposals to try them out. Only valid **during development**. Extensions **cannot be published** with this property. For more details visit: https://code.visualstudio.com/api/advanced-topics/using-proposed-api'),
245 > type: 'array',
246 > uniqueItems: true,
247 > items: {
248 > type: 'string',
249 > enum: Object.keys(allApiProposals).map(proposalName => proposalName),
250 > markdownEnumDescriptions: Object.values(allApiProposals).map(value => value.proposal)
251 > }
252 > },
253 > api: {
254 > markdownDescription: nls.localize('vscode.extension.api', 'Describe the API provided by this extension. For more details visit: https://code.visualstudio.com/api/advanced-topics/remote-extensions#handling-dependencies-with-remote-extensions'),
255 > type: 'string',
256 > enum: ['none'],
257 > enumDescriptions: [
258 > nls.localize('vscode.extension.api.none', "Give up entirely the ability to export any APIs. This allows other extensions that depend on this extension to run in a separate extension host process or in a remote machine.")
259 > ]
260 > },
261 > activationEvents: {
262 > description: nls.localize('vscode.extension.activationEvents', 'Activation events for the VS Code extension.'),
263 > type: 'array',
264 > items: {
265 > type: 'string',
266 > defaultSnippets: [
267 > {
268 > label: 'onWebviewPanel',
269 > description: nls.localize('vscode.extension.activationEvents.onWebviewPanel', 'An activation event emitted when a webview is loaded of a certain viewType'),
270 > body: 'onWebviewPanel:viewType'
271 > },
272 > {
273 > label: 'onLanguage',
274 > description: nls.localize('vscode.extension.activationEvents.onLanguage', 'An activation event emitted whenever a file that resolves to the specified language gets opened.'),
275 > body: 'onLanguage:${1:languageId}'
276 > },
277 > {
278 > label: 'onCommand',
279 > description: nls.localize('vscode.extension.activationEvents.onCommand', 'An activation event emitted whenever the specified command gets invoked.'),
280 > body: 'onCommand:${2:commandId}'
281 > },
282 > {
283 > label: 'onDebug',
284 > description: nls.localize('vscode.extension.activationEvents.onDebug', 'An activation event emitted whenever a user is about to start debugging or about to setup debug configurations.'),
285 > body: 'onDebug'
286 > },
287 > {
288 > label: 'onDebugInitialConfigurations',
289 > description: nls.localize('vscode.extension.activationEvents.onDebugInitialConfigurations', 'An activation event emitted whenever a "launch.json" needs to be created (and all provideDebugConfigurations methods need to be called).'),
290 > body: 'onDebugInitialConfigurations'
291 > },
292 > {
293 > label: 'onDebugDynamicConfigurations',
294 > description: nls.localize('vscode.extension.activationEvents.onDebugDynamicConfigurations', 'An activation event emitted whenever a list of all debug configurations needs to be created (and all provideDebugConfigurations methods for the "dynamic" scope need to be called).'),
295 > body: 'onDebugDynamicConfigurations'
296 > },
297 > {
298 > label: 'onDebugResolve',
299 > description: nls.localize('vscode.extension.activationEvents.onDebugResolve', 'An activation event emitted whenever a debug session with the specific type is about to be launched (and a corresponding resolveDebugConfiguration method needs to be called).'),
300 > body: 'onDebugResolve:${6:type}'
301 > },
302 > {
303 > label: 'onDebugAdapterProtocolTracker',
304 > description: nls.localize('vscode.extension.activationEvents.onDebugAdapterProtocolTracker', 'An activation event emitted whenever a debug session with the specific type is about to be launched and a debug protocol tracker might be needed.'),
305 > body: 'onDebugAdapterProtocolTracker:${6:type}'
306 > },
307 > {
308 > label: 'workspaceContains',
309 > description: nls.localize('vscode.extension.activationEvents.workspaceContains', 'An activation event emitted whenever a folder is opened that contains at least a file matching the specified glob pattern.'),
310 > body: 'workspaceContains:${4:filePattern}'
311 > },
312 > {
313 > label: 'onStartupFinished',
314 > description: nls.localize('vscode.extension.activationEvents.onStartupFinished', 'An activation event emitted after the start-up finished (after all `*` activated extensions have finished activating).'),
315 > body: 'onStartupFinished'
316 > },
317 > {
318 > label: 'onTaskType',
319 > description: nls.localize('vscode.extension.activationEvents.onTaskType', 'An activation event emitted whenever tasks of a certain type need to be listed or resolved.'),
320 > body: 'onTaskType:${1:taskType}'
321 > },
322 > {
323 > label: 'onFileSystem',
324 > description: nls.localize('vscode.extension.activationEvents.onFileSystem', 'An activation event emitted whenever a file or folder is accessed with the given scheme.'),
325 > body: 'onFileSystem:${1:scheme}'
326 > },
327 > {
328 > label: 'onEditSession',
329 > description: nls.localize('vscode.extension.activationEvents.onEditSession', 'An activation event emitted whenever an edit session is accessed with the given scheme.'),
330 > body: 'onEditSession:${1:scheme}'
331 > },
332 > {
333 > label: 'onSearch',
334 > description: nls.localize('vscode.extension.activationEvents.onSearch', 'An activation event emitted whenever a search is started in the folder with the given scheme.'),
335 > body: 'onSearch:${7:scheme}'
336 > },
337 > {
338 > label: 'onView',
339 > body: 'onView:${5:viewId}',
340 > description: nls.localize('vscode.extension.activationEvents.onView', 'An activation event emitted whenever the specified view is expanded.'),
341 > },
342 > {
343 > label: 'onUri',
344 > body: 'onUri',
345 > description: nls.localize('vscode.extension.activationEvents.onUri', 'An activation event emitted whenever a system-wide Uri directed towards this extension is open.'),
346 > },
347 > {
348 > label: 'onOpenExternalUri',
349 > body: 'onOpenExternalUri',
350 > description: nls.localize('vscode.extension.activationEvents.onOpenExternalUri', 'An activation event emitted whenever a external uri (such as an http or https link) is being opened.'),
351 > },
352 > {
353 > label: 'onCustomEditor',
354 > body: 'onCustomEditor:${9:viewType}',
355 > description: nls.localize('vscode.extension.activationEvents.onCustomEditor', 'An activation event emitted whenever the specified custom editor becomes visible.'),
356 > },
357 > {
358 > label: 'onNotebook',
359 > body: 'onNotebook:${1:type}',
360 > description: nls.localize('vscode.extension.activationEvents.onNotebook', 'An activation event emitted whenever the specified notebook document is opened.'),
361 > },
362 > {
363 > label: 'onAuthenticationRequest',
364 > body: 'onAuthenticationRequest:${11:authenticationProviderId}',
365 > description: nls.localize('vscode.extension.activationEvents.onAuthenticationRequest', 'An activation event emitted whenever sessions are requested from the specified authentication provider.')
366 > },
367 > {
368 > label: 'onRenderer',
369 > description: nls.localize('vscode.extension.activationEvents.onRenderer', 'An activation event emitted whenever a notebook output renderer is used.'),
370 > body: 'onRenderer:${11:rendererId}'
371 > },
372 > {
373 > label: 'onTerminalProfile',
374 > body: 'onTerminalProfile:${1:terminalId}',
375 > description: nls.localize('vscode.extension.activationEvents.onTerminalProfile', 'An activation event emitted when a specific terminal profile is launched.'),
376 > },
377 > {
378 > label: 'onTerminalQuickFixRequest',
379 > body: 'onTerminalQuickFixRequest:${1:quickFixId}',
380 > description: nls.localize('vscode.extension.activationEvents.onTerminalQuickFixRequest', 'An activation event emitted when a command matches the selector associated with this ID'),
381 > },
382 > {
383 > label: 'onWalkthrough',
384 > body: 'onWalkthrough:${1:walkthroughID}',
385 > description: nls.localize('vscode.extension.activationEvents.onWalkthrough', 'An activation event emitted when a specified walkthrough is opened.'),
386 > },
387 > {
388 > label: 'onIssueReporterOpened',
389 > body: 'onIssueReporterOpened',
390 > description: nls.localize('vscode.extension.activationEvents.onIssueReporterOpened', 'An activation event emitted when the issue reporter is opened.'),
391 > },
392 > {
393 > label: 'onChatParticipant',
394 > body: 'onChatParticipant:${1:participantId}',
395 > description: nls.localize('vscode.extension.activationEvents.onChatParticipant', 'An activation event emitted when the specified chat participant is invoked.'),
396 > },
397 > {
398 > label: 'onChatContextProvider',
399 > body: 'onChatContextProvider:${1:contextProviderId}',
400 > description: nls.localize('vscode.extension.activationEvents.onChatContextProvider', 'An activation event emitted when the specified chat context provider is invoked.'),
401 > },
402 > {
403 > label: 'onLanguageModelChatProvider',
404 > body: 'onLanguageModelChatProvider:${1:vendor}',
405 > description: nls.localize('vscode.extension.activationEvents.onLanguageModelChatProvider', 'An activation event emitted when a chat model provider for the given vendor is requested.'),
406 > },
407 > {
408 > label: 'onLanguageModelTool',
409 > body: 'onLanguageModelTool:${1:toolId}',
410 > description: nls.localize('vscode.extension.activationEvents.onLanguageModelTool', 'An activation event emitted when the specified language model tool is invoked.'),
411 > },
412 > {
413 > label: 'onTerminal',
414 > body: 'onTerminal:{1:shellType}',
415 > description: nls.localize('vscode.extension.activationEvents.onTerminal', 'An activation event emitted when a terminal of the given shell type is opened.'),
416 > },
417 > {
418 > label: 'onTerminalShellIntegration',
419 > body: 'onTerminalShellIntegration:${1:shellType}',
420 > description: nls.localize('vscode.extension.activationEvents.onTerminalShellIntegration', 'An activation event emitted when terminal shell integration is activated for the given shell type.'),
421 > },
422 > {
423 > label: 'onMcpCollection',
424 > description: nls.localize('vscode.extension.activationEvents.onMcpCollection', 'An activation event emitted whenever a tool from the MCP server is requested.'),
425 > body: 'onMcpCollection:${2:collectionId}',
426 > },
427 > {
428 > label: '*',
429 > description: nls.localize('vscode.extension.activationEvents.star', 'An activation event emitted on VS Code startup. To ensure a great end user experience, please use this activation event in your extension only when no other activation events combination works in your use-case.'),
430 > body: '*'
431 > }
432 > ],
433 > }
434 > },
435 > badges: {
436 > type: 'array',
437 > description: nls.localize('vscode.extension.badges', 'Array of badges to display in the sidebar of the Marketplace\'s extension page.'),
438 > items: {
439 > type: 'object',
440 > required: ['url', 'href', 'description'],
441 > properties: {
442 > url: {
443 > type: 'string',
444 > description: nls.localize('vscode.extension.badges.url', 'Badge image URL.')
445 > },
446 > href: {
447 > type: 'string',
448 > description: nls.localize('vscode.extension.badges.href', 'Badge link.')
449 > },
450 > description: {
451 > type: 'string',
452 > description: nls.localize('vscode.extension.badges.description', 'Badge description.')
453 > }
454 > }
455 > }
456 > },
457 > markdown: {
458 > type: 'string',
459 > description: nls.localize('vscode.extension.markdown', "Controls the Markdown rendering engine used in the Marketplace. Either github (default) or standard."),
460 > enum: ['github', 'standard'],
461 > default: 'github'
462 > },
463 > qna: {
464 > default: 'marketplace',
465 > description: nls.localize('vscode.extension.qna', "Controls the Q&A link in the Marketplace. Set to marketplace to enable the default Marketplace Q & A site. Set to a string to provide the URL of a custom Q & A site. Set to false to disable Q & A altogether."),
466 > anyOf: [
467 > {
468 > type: ['string', 'boolean'],
469 > enum: ['marketplace', false]
470 > },
471 > {
472 > type: 'string'
473 > }
474 > ]
475 > },
476 > extensionDependencies: {
477 > description: nls.localize('vscode.extension.extensionDependencies', 'Dependencies to other extensions. The identifier of an extension is always ${publisher}.${name}. For example: vscode.csharp.'),
478 > type: 'array',
479 > uniqueItems: true,
480 > items: {
481 > type: 'string',
482 > pattern: EXTENSION_IDENTIFIER_PATTERN
483 > }
484 > },
485 > extensionAffinity: {
486 > description: nls.localize('vscode.extension.extensionAffinity', 'Extensions that this extension should be colocated with in the same extension host process if possible. The identifier of an extension is always ${publisher}.${name}. For example: vscode.git.'),
487 > type: 'array',
488 > uniqueItems: true,
489 > items: {
490 > type: 'string',
491 > pattern: EXTENSION_IDENTIFIER_PATTERN
492 > }
493 > },
494 > extensionPack: {
495 > description: nls.localize('vscode.extension.contributes.extensionPack', "A set of extensions that can be installed together. The identifier of an extension is always ${publisher}.${name}. For example: vscode.csharp."),
496 > type: 'array',
497 > uniqueItems: true,
498 > items: {
499 > type: 'string',
500 > pattern: EXTENSION_IDENTIFIER_PATTERN
501 > }
502 > },
503 > extensionKind: {
504 > description: nls.localize('extensionKind', "Define the kind of an extension. `ui` extensions are installed and run on the local machine while `workspace` extensions run on the remote."),
505 > type: 'array',
506 > items: extensionKindSchema,
507 > default: ['workspace'],
508 > defaultSnippets: [
509 > {
510 > body: ['ui'],
511 > description: nls.localize('extensionKind.ui', "Define an extension which can run only on the local machine when connected to remote window.")
512 > },
513 > {
514 > body: ['workspace'],
515 > description: nls.localize('extensionKind.workspace', "Define an extension which can run only on the remote machine when connected remote window.")
516 > },
517 > {
518 > body: ['ui', 'workspace'],
519 > description: nls.localize('extensionKind.ui-workspace', "Define an extension which can run on either side, with a preference towards running on the local machine.")
520 > },
521 > {
522 > body: ['workspace', 'ui'],
523 > description: nls.localize('extensionKind.workspace-ui', "Define an extension which can run on either side, with a preference towards running on the remote machine.")
524 > },
525 > {
526 > body: [],
527 > description: nls.localize('extensionKind.empty', "Define an extension which cannot run in a remote context, neither on the local, nor on the remote machine.")
528 > }
529 > ]
530 > },
531 > capabilities: {
532 > description: nls.localize('vscode.extension.capabilities', "Declare the set of supported capabilities by the extension."),
533 > type: 'object',
534 > properties: {
535 > virtualWorkspaces: {
536 > description: nls.localize('vscode.extension.capabilities.virtualWorkspaces', "Declares whether the extension should be enabled in virtual workspaces. A virtual workspace is a workspace which is not backed by any on-disk resources. When false, this extension will be automatically disabled in virtual workspaces. Default is true."),
537 > type: ['boolean', 'object'],
538 > defaultSnippets: [
539 > { label: 'limited', body: { supported: '${1:limited}', description: '${2}' } },
540 > { label: 'false', body: { supported: false, description: '${2}' } },
541 > ],
542 > default: true.valueOf,
543 > properties: {
544 > supported: {
545 > markdownDescription: nls.localize('vscode.extension.capabilities.virtualWorkspaces.supported', "Declares the level of support for virtual workspaces by the extension."),
546 > type: ['string', 'boolean'],
547 > enum: ['limited', true, false],
548 > enumDescriptions: [
549 > nls.localize('vscode.extension.capabilities.virtualWorkspaces.supported.limited', "The extension will be enabled in virtual workspaces with some functionality disabled."),
550 > nls.localize('vscode.extension.capabilities.virtualWorkspaces.supported.true', "The extension will be enabled in virtual workspaces with all functionality enabled."),
551 > nls.localize('vscode.extension.capabilities.virtualWorkspaces.supported.false', "The extension will not be enabled in virtual workspaces."),
552 > ]
553 > },
554 > description: {
555 > type: 'string',
556 > markdownDescription: nls.localize('vscode.extension.capabilities.virtualWorkspaces.description', "A description of how virtual workspaces affects the extensions behavior and why it is needed. This only applies when `supported` is not `true`."),
557 > }
558 > }
559 > },
560 > untrustedWorkspaces: {
561 > description: nls.localize('vscode.extension.capabilities.untrustedWorkspaces', 'Declares how the extension should be handled in untrusted workspaces.'),
562 > type: 'object',
563 > required: ['supported'],
564 > defaultSnippets: [
565 > { body: { supported: '${1:limited}', description: '${2}' } },
566 > ],
567 > properties: {
568 > supported: {
569 > markdownDescription: nls.localize('vscode.extension.capabilities.untrustedWorkspaces.supported', "Declares the level of support for untrusted workspaces by the extension."),
570 > type: ['string', 'boolean'],
571 > enum: ['limited', true, false],
572 > enumDescriptions: [
573 > nls.localize('vscode.extension.capabilities.untrustedWorkspaces.supported.limited', "The extension will be enabled in untrusted workspaces with some functionality disabled."),
574 > nls.localize('vscode.extension.capabilities.untrustedWorkspaces.supported.true', "The extension will be enabled in untrusted workspaces with all functionality enabled."),
575 > nls.localize('vscode.extension.capabilities.untrustedWorkspaces.supported.false', "The extension will not be enabled in untrusted workspaces."),
576 > ]
577 > },
578 > restrictedConfigurations: {
579 > description: nls.localize('vscode.extension.capabilities.untrustedWorkspaces.restrictedConfigurations', "A list of configuration keys contributed by the extension that should not use workspace values in untrusted workspaces."),
580 > type: 'array',
581 > items: {
582 > type: 'string'
583 > }
584 > },
585 > description: {
586 > type: 'string',
587 > markdownDescription: nls.localize('vscode.extension.capabilities.untrustedWorkspaces.description', "A description of how workspace trust affects the extensions behavior and why it is needed. This only applies when `supported` is not `true`."),
588 > }
589 > }
590 > }
591 > }
592 > },
593 > sponsor: {
594 > description: nls.localize('vscode.extension.contributes.sponsor', "Specify the location from where users can sponsor your extension."),
595 > type: 'object',
596 > defaultSnippets: [
597 > { body: { url: '${1:https:}' } },
598 > ],
599 > properties: {
600 > 'url': {
601 > description: nls.localize('vscode.extension.contributes.sponsor.url', "URL from where users can sponsor your extension. It must be a valid URL with a HTTP or HTTPS protocol. Example value: https://github.com/sponsors/nvaccess"),
602 > type: 'string',
603 > }
604 > }
605 > },
606 > scripts: {
607 > type: 'object',
608 > properties: {
609 > 'vscode:prepublish': {
610 > description: nls.localize('vscode.extension.scripts.prepublish', 'Script executed before the package is published as a VS Code extension.'),
611 > type: 'string'
612 > },
613 > 'vscode:uninstall': {
614 > description: nls.localize('vscode.extension.scripts.uninstall', 'Uninstall hook for VS Code extension. Script that gets executed when the extension is completely uninstalled from VS Code which is when VS Code is restarted (shutdown and start) after the extension is uninstalled. Only Node scripts are supported.'),
615 > type: 'string'
616 > }
617 > }
618 > },
619 > icon: {
620 > type: 'string',
621 > description: nls.localize('vscode.extension.icon', 'The path to a 128x128 pixel icon.')
622 > },
623 > l10n: {
624 > type: 'string',
625 > description: nls.localize({
626 > key: 'vscode.extension.l10n',
627 > comment: [
628 > '{Locked="bundle.l10n._locale_.json"}',
629 > '{Locked="vscode.l10n API"}'
630 > ]
631 > }, 'The relative path to a folder containing localization (bundle.l10n.*.json) files. Must be specified if you are using the vscode.l10n API.')
632 > },
633 > pricing: {
634 > type: 'string',
635 > markdownDescription: nls.localize('vscode.extension.pricing', 'The pricing information for the extension. Can be Free (default) or Trial. For more details visit: https://code.visualstudio.com/api/working-with-extensions/publishing-extension#extension-pricing-label'),
636 > enum: ['Free', 'Trial'],
637 > default: 'Free'
638 > }
639 > }
640 > };
641 >
642 > export type removeArray<T> = T extends Array<infer X> ? X : T;
643 >
644 > export interface IExtensionPointDescriptor<T> {
645 > extensionPoint: string;
646 > deps?: IExtensionPoint<unknown>[];
647 > jsonSchema: IJSONSchema;
648 > defaultExtensionKind?: ExtensionKind[];
649 > canHandleResolver?: boolean;
650 > /**
651 > * A function which runs before the extension point has been validated and which
652 > * should collect automatic activation events from the contribution.
653 > */
654 > activationEventsGenerator?: IActivationEventsGenerator<removeArray<T>>;
655 > }
656 >
657 > export class ExtensionsRegistryImpl {
658 >
659 > private readonly _extensionPoints = new Map<string, ExtensionPoint<any>>();
660 >
661 > public registerExtensionPoint<T>(desc: IExtensionPointDescriptor<T>): IExtensionPoint<T> {
662 if (this._extensionPoints.has(desc.extensionPoint)) {
663 throw new Error('Duplicate extension point: ' + desc.extensionPoint);
674 return result;
675 }
677 > public getExtensionPoints(): ExtensionPoint<unknown>[] {
678 return Array.from(this._extensionPoints.values());
679 }
681 >
682 > const PRExtensions = {
683 > ExtensionsRegistry: 'ExtensionsRegistry'
684 > };
685 > Registry.add(PRExtensions.ExtensionsRegistry, new ExtensionsRegistryImpl());
686 > export const ExtensionsRegistry: ExtensionsRegistryImpl = Registry.as(PRExtensions.ExtensionsRegistry);
687 >
688 > schemaRegistry.registerSchema(schemaId, schema);
689 >
690 >
691 > schemaRegistry.registerSchema(productSchemaId, {
692 > properties: {
693 > extensionEnabledApiProposals: {
694 > description: nls.localize('product.extensionEnabledApiProposals', "API proposals that the respective extensions can freely use."),
695 > type: 'object',
696 > properties: {},
697 > additionalProperties: {
698 > anyOf: [{
699 > type: 'array',
700 > uniqueItems: true,
701 > items: {
702 > type: 'string',
703 > enum: Object.keys(allApiProposals),
704 > markdownEnumDescriptions: Object.values(allApiProposals).map(value => value.proposal)
705 > }
706 > }]
707 > }
708 > }
709 > }
710 > });
src/vs/platform/extensions/common/extensionsApiProposals.ts 539 introduced LOC · 1 range

Open complete file

1 > /*--------------------------------------------------------------------------------------------- extensionsApiProposals.ts
2 > * Copyright (c) Microsoft Corporation. All rights reserved.
3 > * Licensed under the MIT License. See License.txt in the project root for license information.
4 > *--------------------------------------------------------------------------------------------*/
5 >
6 > // THIS IS A GENERATED FILE. DO NOT EDIT DIRECTLY.
7 >
8 > const _allApiProposals = {
9 > activeComment: {
10 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.activeComment.d.ts',
11 > },
12 > agentEditorComments: {
13 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.agentEditorComments.d.ts',
14 > },
15 > agentSessionsWorkspace: {
16 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.agentSessionsWorkspace.d.ts',
17 > },
18 > agentsWindowConfiguration: {
19 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.agentsWindowConfiguration.d.ts',
20 > },
21 > aiRelatedInformation: {
22 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.aiRelatedInformation.d.ts',
23 > },
24 > aiSettingsSearch: {
25 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.aiSettingsSearch.d.ts',
26 > },
27 > aiTextSearchProvider: {
28 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.aiTextSearchProvider.d.ts',
29 > },
30 > authIssuers: {
31 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.authIssuers.d.ts',
32 > },
33 > authLearnMore: {
34 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.authLearnMore.d.ts',
35 > },
36 > authProviderSpecific: {
37 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.authProviderSpecific.d.ts',
38 > },
39 > authSession: {
40 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.authSession.d.ts',
41 > },
42 > authSessionAudience: {
43 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.authSessionAudience.d.ts',
44 > },
45 > authenticationChallenges: {
46 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.authenticationChallenges.d.ts',
47 > },
48 > browser: {
49 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.browser.d.ts',
50 > },
51 > canonicalUriProvider: {
52 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.canonicalUriProvider.d.ts',
53 > },
54 > chatContextProvider: {
55 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatContextProvider.d.ts',
56 > },
57 > chatDebug: {
58 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatDebug.d.ts',
59 > },
60 > chatHooks: {
61 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatHooks.d.ts',
62 > },
63 > chatInputNotification: {
64 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatInputNotification.d.ts',
65 > },
66 > chatOutputRenderer: {
67 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatOutputRenderer.d.ts',
68 > },
69 > chatParticipantAdditions: {
70 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatParticipantAdditions.d.ts',
71 > },
72 > chatParticipantPrivate: {
73 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatParticipantPrivate.d.ts',
74 > },
75 > chatPromptFiles: {
76 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatPromptFiles.d.ts',
77 > },
78 > chatProvider: {
79 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatProvider.d.ts',
80 > },
81 > chatReferenceBinaryData: {
82 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatReferenceBinaryData.d.ts',
83 > },
84 > chatReferenceDiagnostic: {
85 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatReferenceDiagnostic.d.ts',
86 > },
87 > chatSessionCustomizationProvider: {
88 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatSessionCustomizationProvider.d.ts',
89 > },
90 > chatSessionsProvider: {
91 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatSessionsProvider.d.ts',
92 > },
93 > chatStatusItem: {
94 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatStatusItem.d.ts',
95 > },
96 > chatTab: {
97 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatTab.d.ts',
98 > },
99 > codeActionAI: {
100 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.codeActionAI.d.ts',
101 > },
102 > codeActionRanges: {
103 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.codeActionRanges.d.ts',
104 > },
105 > codiconDecoration: {
106 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.codiconDecoration.d.ts',
107 > },
108 > commentReactor: {
109 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.commentReactor.d.ts',
110 > },
111 > commentReveal: {
112 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.commentReveal.d.ts',
113 > },
114 > commentThreadApplicability: {
115 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.commentThreadApplicability.d.ts',
116 > },
117 > commentingRangeHint: {
118 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.commentingRangeHint.d.ts',
119 > },
120 > commentsDraftState: {
121 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.commentsDraftState.d.ts',
122 > },
123 > contribAccessibilityHelpContent: {
124 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribAccessibilityHelpContent.d.ts',
125 > },
126 > contribChatEditorInlineGutterMenu: {
127 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribChatEditorInlineGutterMenu.d.ts',
128 > },
129 > contribCommentEditorActionsMenu: {
130 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribCommentEditorActionsMenu.d.ts',
131 > },
132 > contribCommentPeekContext: {
133 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribCommentPeekContext.d.ts',
134 > },
135 > contribCommentThreadAdditionalMenu: {
136 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribCommentThreadAdditionalMenu.d.ts',
137 > },
138 > contribCommentsViewThreadMenus: {
139 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribCommentsViewThreadMenus.d.ts',
140 > },
141 > contribDebugCreateConfiguration: {
142 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribDebugCreateConfiguration.d.ts',
143 > },
144 > contribDiffEditorGutterToolBarMenus: {
145 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribDiffEditorGutterToolBarMenus.d.ts',
146 > },
147 > contribEditSessions: {
148 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribEditSessions.d.ts',
149 > },
150 > contribEditorContentMenu: {
151 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribEditorContentMenu.d.ts',
152 > },
153 > contribLabelFormatterWorkspaceTooltip: {
154 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribLabelFormatterWorkspaceTooltip.d.ts',
155 > },
156 > contribLanguageModelToolSets: {
157 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribLanguageModelToolSets.d.ts',
158 > },
159 > contribMenuBarHome: {
160 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribMenuBarHome.d.ts',
161 > },
162 > contribMergeEditorMenus: {
163 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribMergeEditorMenus.d.ts',
164 > },
165 > contribMultiDiffEditorMenus: {
166 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribMultiDiffEditorMenus.d.ts',
167 > },
168 > contribNotebookStaticPreloads: {
169 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribNotebookStaticPreloads.d.ts',
170 > },
171 > contribRemoteHelp: {
172 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribRemoteHelp.d.ts',
173 > },
174 > contribShareMenu: {
175 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribShareMenu.d.ts',
176 > },
177 > contribSourceControlArtifactGroupMenu: {
178 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribSourceControlArtifactGroupMenu.d.ts',
179 > },
180 > contribSourceControlArtifactMenu: {
181 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribSourceControlArtifactMenu.d.ts',
182 > },
183 > contribSourceControlHistoryItemMenu: {
184 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribSourceControlHistoryItemMenu.d.ts',
185 > },
186 > contribSourceControlHistoryTitleMenu: {
187 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribSourceControlHistoryTitleMenu.d.ts',
188 > },
189 > contribSourceControlInputBoxMenu: {
190 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribSourceControlInputBoxMenu.d.ts',
191 > },
192 > contribSourceControlTitleMenu: {
193 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribSourceControlTitleMenu.d.ts',
194 > },
195 > contribStatusBarItems: {
196 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribStatusBarItems.d.ts',
197 > },
198 > contribViewContainerTitle: {
199 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribViewContainerTitle.d.ts',
200 > },
201 > contribViewsRemote: {
202 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribViewsRemote.d.ts',
203 > },
204 > contribViewsWelcome: {
205 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribViewsWelcome.d.ts',
206 > },
207 > css: {
208 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.css.d.ts',
209 > },
210 > customEditorDiffs: {
211 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.customEditorDiffs.d.ts',
212 > },
213 > customEditorMove: {
214 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.customEditorMove.d.ts',
215 > },
216 > customEditorPriority: {
217 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.customEditorPriority.d.ts',
218 > },
219 > dataChannels: {
220 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.dataChannels.d.ts',
221 > },
222 > debugVisualization: {
223 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.debugVisualization.d.ts',
224 > },
225 > defaultChatParticipant: {
226 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.defaultChatParticipant.d.ts',
227 > },
228 > devDeviceId: {
229 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.devDeviceId.d.ts',
230 > },
231 > diffCommand: {
232 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.diffCommand.d.ts',
233 > },
234 > diffContentOptions: {
235 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.diffContentOptions.d.ts',
236 > },
237 > documentDiff: {
238 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.documentDiff.d.ts',
239 > },
240 > documentFiltersExclusive: {
241 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.documentFiltersExclusive.d.ts',
242 > },
243 > documentSyntaxHighlighting: {
244 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.documentSyntaxHighlighting.d.ts',
245 > },
246 > editSessionIdentityProvider: {
247 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.editSessionIdentityProvider.d.ts',
248 > },
249 > editorHoverVerbosityLevel: {
250 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.editorHoverVerbosityLevel.d.ts',
251 > },
252 > editorInsets: {
253 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.editorInsets.d.ts',
254 > },
255 > embeddings: {
256 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.embeddings.d.ts',
257 > },
258 > envIsConnectionMetered: {
259 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.envIsConnectionMetered.d.ts',
260 > },
261 > environmentPower: {
262 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.environmentPower.d.ts',
263 > },
264 > extensionAffinity: {
265 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.extensionAffinity.d.ts',
266 > },
267 > extensionRuntime: {
268 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.extensionRuntime.d.ts',
269 > },
270 > extensionsAny: {
271 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.extensionsAny.d.ts',
272 > },
273 > externalUriOpener: {
274 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.externalUriOpener.d.ts',
275 > },
276 > fileSearchProvider: {
277 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.fileSearchProvider.d.ts',
278 > },
279 > fileSearchProvider2: {
280 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.fileSearchProvider2.d.ts',
281 > },
282 > findFiles2: {
283 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.findFiles2.d.ts',
284 > },
285 > findTextInFiles: {
286 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.findTextInFiles.d.ts',
287 > },
288 > findTextInFiles2: {
289 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.findTextInFiles2.d.ts',
290 > },
291 > fsChunks: {
292 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.fsChunks.d.ts',
293 > },
294 > inlineCompletionsAdditions: {
295 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.inlineCompletionsAdditions.d.ts',
296 > },
297 > interactive: {
298 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.interactive.d.ts',
299 > },
300 > interactiveWindow: {
301 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.interactiveWindow.d.ts',
302 > },
303 > ipc: {
304 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.ipc.d.ts',
305 > },
306 > languageModelCapabilities: {
307 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.languageModelCapabilities.d.ts',
308 > },
309 > languageModelPricing: {
310 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.languageModelPricing.d.ts',
311 > },
312 > languageModelProxy: {
313 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.languageModelProxy.d.ts',
314 > },
315 > languageModelSystem: {
316 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.languageModelSystem.d.ts',
317 > },
318 > languageModelThinkingPart: {
319 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.languageModelThinkingPart.d.ts',
320 > },
321 > languageModelToolResultAudience: {
322 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.languageModelToolResultAudience.d.ts',
323 > },
324 > languageModelToolSupportsModel: {
325 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.languageModelToolSupportsModel.d.ts',
326 > },
327 > languageStatusText: {
328 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.languageStatusText.d.ts',
329 > },
330 > mappedEditsProvider: {
331 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.mappedEditsProvider.d.ts',
332 > },
333 > markdownAlertSyntax: {
334 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.markdownAlertSyntax.d.ts',
335 > },
336 > mcpServerDefinitions: {
337 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.mcpServerDefinitions.d.ts',
338 > },
339 > mcpToolDefinitions: {
340 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.mcpToolDefinitions.d.ts',
341 > },
342 > multiDocumentHighlightProvider: {
343 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.multiDocumentHighlightProvider.d.ts',
344 > },
345 > nativeWindowHandle: {
346 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.nativeWindowHandle.d.ts',
347 > },
348 > newSymbolNamesProvider: {
349 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.newSymbolNamesProvider.d.ts',
350 > },
351 > notebookCellExecution: {
352 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.notebookCellExecution.d.ts',
353 > },
354 > notebookControllerAffinityHidden: {
355 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.notebookControllerAffinityHidden.d.ts',
356 > },
357 > notebookDeprecated: {
358 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.notebookDeprecated.d.ts',
359 > },
360 > notebookExecution: {
361 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.notebookExecution.d.ts',
362 > },
363 > notebookKernelSource: {
364 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.notebookKernelSource.d.ts',
365 > },
366 > notebookLiveShare: {
367 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.notebookLiveShare.d.ts',
368 > },
369 > notebookMessaging: {
370 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.notebookMessaging.d.ts',
371 > },
372 > notebookMime: {
373 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.notebookMime.d.ts',
374 > },
375 > notebookReplDocument: {
376 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.notebookReplDocument.d.ts',
377 > },
378 > notebookVariableProvider: {
379 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.notebookVariableProvider.d.ts',
380 > },
381 > portsAttributes: {
382 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.portsAttributes.d.ts',
383 > },
384 > profileContentHandlers: {
385 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.profileContentHandlers.d.ts',
386 > },
387 > quickDiffProvider: {
388 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.quickDiffProvider.d.ts',
389 > },
390 > quickPickItemTooltip: {
391 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.quickPickItemTooltip.d.ts',
392 > },
393 > quickPickSortByLabel: {
394 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.quickPickSortByLabel.d.ts',
395 > },
396 > remoteCodingAgents: {
397 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.remoteCodingAgents.d.ts',
398 > },
399 > resolvers: {
400 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.resolvers.d.ts',
401 > },
402 > scmActionButton: {
403 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.scmActionButton.d.ts',
404 > },
405 > scmArtifactProvider: {
406 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.scmArtifactProvider.d.ts',
407 > },
408 > scmHistoryProvider: {
409 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.scmHistoryProvider.d.ts',
410 > },
411 > scmMultiDiffEditor: {
412 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.scmMultiDiffEditor.d.ts',
413 > },
414 > scmProviderOptions: {
415 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.scmProviderOptions.d.ts',
416 > },
417 > scmSelectedProvider: {
418 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.scmSelectedProvider.d.ts',
419 > },
420 > scmTextDocument: {
421 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.scmTextDocument.d.ts',
422 > },
423 > scmValidation: {
424 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.scmValidation.d.ts',
425 > },
426 > shareProvider: {
427 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.shareProvider.d.ts',
428 > },
429 > speech: {
430 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.speech.d.ts',
431 > },
432 > statusBarItemTooltip: {
433 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.statusBarItemTooltip.d.ts',
434 > },
435 > tabInputMultiDiff: {
436 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.tabInputMultiDiff.d.ts',
437 > },
438 > tabInputTextMerge: {
439 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.tabInputTextMerge.d.ts',
440 > },
441 > taskExecutionTerminal: {
442 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.taskExecutionTerminal.d.ts',
443 > },
444 > taskPresentationGroup: {
445 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.taskPresentationGroup.d.ts',
446 > },
447 > taskProblemMatcherStatus: {
448 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.taskProblemMatcherStatus.d.ts',
449 > },
450 > taskRunOptions: {
451 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.taskRunOptions.d.ts',
452 > },
453 > telemetry: {
454 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.telemetry.d.ts',
455 > },
456 > terminalCompletionProvider: {
457 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.terminalCompletionProvider.d.ts',
458 > },
459 > terminalDataWriteEvent: {
460 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.terminalDataWriteEvent.d.ts',
461 > },
462 > terminalDimensions: {
463 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.terminalDimensions.d.ts',
464 > },
465 > terminalExecuteCommandEvent: {
466 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.terminalExecuteCommandEvent.d.ts',
467 > },
468 > terminalQuickFixProvider: {
469 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.terminalQuickFixProvider.d.ts',
470 > },
471 > terminalSelection: {
472 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.terminalSelection.d.ts',
473 > },
474 > terminalShellEnv: {
475 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.terminalShellEnv.d.ts',
476 > },
477 > terminalTitle: {
478 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.terminalTitle.d.ts',
479 > },
480 > testObserver: {
481 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.testObserver.d.ts',
482 > },
483 > testRelatedCode: {
484 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.testRelatedCode.d.ts',
485 > },
486 > textDocumentChangeReason: {
487 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.textDocumentChangeReason.d.ts',
488 > },
489 > textEditorDiffInformation: {
490 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.textEditorDiffInformation.d.ts',
491 > },
492 > textSearchComplete2: {
493 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.textSearchComplete2.d.ts',
494 > },
495 > textSearchProvider: {
496 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.textSearchProvider.d.ts',
497 > },
498 > textSearchProvider2: {
499 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.textSearchProvider2.d.ts',
500 > },
501 > timeline: {
502 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.timeline.d.ts',
503 > },
504 > tokenInformation: {
505 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.tokenInformation.d.ts',
506 > },
507 > toolInvocationApproveCombination: {
508 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.toolInvocationApproveCombination.d.ts',
509 > },
510 > toolProgress: {
511 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.toolProgress.d.ts',
512 > },
513 > treeItemMarkdownLabel: {
514 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.treeItemMarkdownLabel.d.ts',
515 > },
516 > treeViewActiveItem: {
517 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.treeViewActiveItem.d.ts',
518 > },
519 > treeViewMarkdownMessage: {
520 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.treeViewMarkdownMessage.d.ts',
521 > },
522 > treeViewReveal: {
523 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.treeViewReveal.d.ts',
524 > },
525 > tunnelFactory: {
526 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.tunnelFactory.d.ts',
527 > },
528 > tunnels: {
529 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.tunnels.d.ts',
530 > },
531 > valueSelectionInQuickPick: {
532 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.valueSelectionInQuickPick.d.ts',
533 > },
534 > workspaceTrust: {
535 > proposal: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.workspaceTrust.d.ts',
536 > }
537 > };
538 > export const allApiProposals = Object.freeze<{ [proposalName: string]: Readonly<{ proposal: string }> }>(_allApiProposals);
539 > export type ApiProposalName = keyof typeof _allApiProposals;