Path: blob/main/extensions/configuration-editing/src/extensionsProposals.ts
3291 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import * as vscode from 'vscode';678export async function provideInstalledExtensionProposals(existing: string[], additionalText: string, range: vscode.Range, includeBuiltinExtensions: boolean): Promise<vscode.CompletionItem[] | vscode.CompletionList> {9if (Array.isArray(existing)) {10const extensions = includeBuiltinExtensions ? vscode.extensions.all : vscode.extensions.all.filter(e => !(e.id.startsWith('vscode.') || e.id === 'Microsoft.vscode-markdown'));11const knownExtensionProposals = extensions.filter(e => existing.indexOf(e.id) === -1);12if (knownExtensionProposals.length) {13return knownExtensionProposals.map(e => {14const item = new vscode.CompletionItem(e.id);15const insertText = `"${e.id}"${additionalText}`;16item.kind = vscode.CompletionItemKind.Value;17item.insertText = insertText;18item.range = range;19item.filterText = insertText;20return item;21});22} else {23const example = new vscode.CompletionItem(vscode.l10n.t("Example"));24example.insertText = '"vscode.csharp"';25example.kind = vscode.CompletionItemKind.Value;26example.range = range;27return [example];28}29}30return [];31}323334