Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/extensions/configuration-editing/src/extensionsProposals.ts
3291 views
1
/*---------------------------------------------------------------------------------------------
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 vscode from 'vscode';
7
8
9
export async function provideInstalledExtensionProposals(existing: string[], additionalText: string, range: vscode.Range, includeBuiltinExtensions: boolean): Promise<vscode.CompletionItem[] | vscode.CompletionList> {
10
if (Array.isArray(existing)) {
11
const extensions = includeBuiltinExtensions ? vscode.extensions.all : vscode.extensions.all.filter(e => !(e.id.startsWith('vscode.') || e.id === 'Microsoft.vscode-markdown'));
12
const knownExtensionProposals = extensions.filter(e => existing.indexOf(e.id) === -1);
13
if (knownExtensionProposals.length) {
14
return knownExtensionProposals.map(e => {
15
const item = new vscode.CompletionItem(e.id);
16
const insertText = `"${e.id}"${additionalText}`;
17
item.kind = vscode.CompletionItemKind.Value;
18
item.insertText = insertText;
19
item.range = range;
20
item.filterText = insertText;
21
return item;
22
});
23
} else {
24
const example = new vscode.CompletionItem(vscode.l10n.t("Example"));
25
example.insertText = '"vscode.csharp"';
26
example.kind = vscode.CompletionItemKind.Value;
27
example.range = range;
28
return [example];
29
}
30
}
31
return [];
32
}
33
34