mirror of
https://github.com/Microsoft/vscode
synced 2024-08-27 21:09:43 +00:00
Cleanup code
This commit is contained in:
parent
0bc066daef
commit
b7b095cdf6
|
@ -6,7 +6,7 @@
|
|||
import * as vscode from 'vscode';
|
||||
import { getLocation, Location, parse } from 'jsonc-parser';
|
||||
import * as nls from 'vscode-nls';
|
||||
import { provideInstalledExtensionProposals, provideWorkspaceTrustExtensionProposals } from './extensionsProposals';
|
||||
import { provideInstalledExtensionProposals } from './extensionsProposals';
|
||||
|
||||
const localize = nls.loadMessageBundle();
|
||||
|
||||
|
|
|
@ -72,7 +72,7 @@ import { Query } from 'vs/workbench/contrib/extensions/common/extensionQuery';
|
|||
import { Promises } from 'vs/base/common/async';
|
||||
import { EditorExtensions } from 'vs/workbench/common/editor';
|
||||
import { WORKSPACE_TRUST_EXTENSION_SUPPORT } from 'vs/workbench/services/workspaces/common/workspaceTrust';
|
||||
import { ExtensionSupportCompletionProvider } from 'vs/workbench/contrib/extensions/browser/extensionSupportCompletionProvider';
|
||||
import { ExtensionsCompletionItemsProvider } from 'vs/workbench/contrib/extensions/browser/extensionsCompletionItemsProvider';
|
||||
|
||||
// Singletons
|
||||
registerSingleton(IExtensionsWorkbenchService, ExtensionsWorkbenchService);
|
||||
|
@ -1326,7 +1326,7 @@ workbenchRegistry.registerWorkbenchContribution(ExtensionsViewletViewsContributi
|
|||
workbenchRegistry.registerWorkbenchContribution(ExtensionActivationProgress, LifecyclePhase.Eventually);
|
||||
workbenchRegistry.registerWorkbenchContribution(ExtensionDependencyChecker, LifecyclePhase.Eventually);
|
||||
workbenchRegistry.registerWorkbenchContribution(ExtensionEnablementByWorkspaceTrustRequirement, LifecyclePhase.Restored);
|
||||
workbenchRegistry.registerWorkbenchContribution(ExtensionSupportCompletionProvider, LifecyclePhase.Restored);
|
||||
workbenchRegistry.registerWorkbenchContribution(ExtensionsCompletionItemsProvider, LifecyclePhase.Restored);
|
||||
|
||||
// Running Extensions
|
||||
const actionRegistry = Registry.as<IWorkbenchActionRegistry>(WorkbenchActionExtensions.WorkbenchActions);
|
||||
|
|
|
@ -15,16 +15,14 @@ import { IWorkbenchContribution } from 'vs/workbench/common/contributions';
|
|||
import { Range } from 'vs/editor/common/core/range';
|
||||
|
||||
|
||||
export class ExtensionSupportCompletionProvider extends Disposable implements IWorkbenchContribution {
|
||||
export class ExtensionsCompletionItemsProvider extends Disposable implements IWorkbenchContribution {
|
||||
constructor(
|
||||
@IExtensionManagementService extensionManagementService: IExtensionManagementService,
|
||||
@IExtensionManagementService private readonly extensionManagementService: IExtensionManagementService,
|
||||
) {
|
||||
super();
|
||||
|
||||
this._register(CompletionProviderRegistry.register({ language: 'jsonc', pattern: '**/settings.json' }, {
|
||||
provideCompletionItems: async (model: ITextModel, position: Position, _context: CompletionContext, token: CancellationToken): Promise<CompletionList> => {
|
||||
const suggestions: CompletionItem[] = [];
|
||||
|
||||
const getWordRangeAtPosition = (model: ITextModel, position: Position): Range | null => {
|
||||
const wordAtPosition = model.getWordAtPosition(position);
|
||||
return wordAtPosition ? new Range(position.lineNumber, wordAtPosition.startColumn, position.lineNumber, wordAtPosition.endColumn) : null;
|
||||
|
@ -40,22 +38,29 @@ export class ExtensionSupportCompletionProvider extends Disposable implements IW
|
|||
alreadyConfigured = Object.keys(parse(model.getValue())['extensions.supportUntrustedWorkspaces']);
|
||||
} catch (e) {/* ignore error */ }
|
||||
|
||||
const installedExtensions = (await extensionManagementService.getInstalled()).filter(e => e.manifest.main);
|
||||
const proposedExtensions = installedExtensions.filter(e => alreadyConfigured.indexOf(e.identifier.id) === -1);
|
||||
|
||||
if (proposedExtensions.length) {
|
||||
suggestions.push(...proposedExtensions.map(e => {
|
||||
const text = `"${e.identifier.id}": {\n\t"supported": true,\n\t"version": "${e.manifest.version}"\n},`;
|
||||
return { label: e.identifier.id, kind: CompletionItemKind.Value, insertText: text, filterText: text, range };
|
||||
}));
|
||||
} else {
|
||||
const text = '"vscode.csharp": {\n\t"supported": true,\n\t"version": "0.0.0"\n},';
|
||||
suggestions.push({ label: localize('exampleExtension', "Example"), kind: CompletionItemKind.Value, insertText: text, filterText: text, range });
|
||||
}
|
||||
return { suggestions: await this.provideSupportUntrustedWorkspacesExtensionProposals(alreadyConfigured, range) };
|
||||
}
|
||||
|
||||
return { suggestions };
|
||||
return { suggestions: [] };
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
private async provideSupportUntrustedWorkspacesExtensionProposals(alreadyConfigured: string[], range: Range): Promise<CompletionItem[]> {
|
||||
const suggestions: CompletionItem[] = [];
|
||||
const installedExtensions = (await this.extensionManagementService.getInstalled()).filter(e => e.manifest.main);
|
||||
const proposedExtensions = installedExtensions.filter(e => alreadyConfigured.indexOf(e.identifier.id) === -1);
|
||||
|
||||
if (proposedExtensions.length) {
|
||||
suggestions.push(...proposedExtensions.map(e => {
|
||||
const text = `"${e.identifier.id}": {\n\t"supported": true,\n\t"version": "${e.manifest.version}"\n},`;
|
||||
return { label: e.identifier.id, kind: CompletionItemKind.Value, insertText: text, filterText: text, range };
|
||||
}));
|
||||
} else {
|
||||
const text = '"vscode.csharp": {\n\t"supported": true,\n\t"version": "0.0.0"\n},';
|
||||
suggestions.push({ label: localize('exampleExtension', "Example"), kind: CompletionItemKind.Value, insertText: text, filterText: text, range });
|
||||
}
|
||||
|
||||
return suggestions;
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue