Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ import { INotificationService, Severity } from 'vs/platform/notification/common/
import { IHostService } from 'vs/workbench/services/host/browser/host';
import { ResourceContextKey } from 'vs/workbench/common/resources';
import { IAction } from 'vs/base/common/actions';
import { IWorkpsaceExtensionsConfigService } from 'vs/workbench/services/extensionRecommendations/common/workspaceExtensionsConfig';
import { IWorkspaceExtensionsConfigService } from 'vs/workbench/services/extensionRecommendations/common/workspaceExtensionsConfig';
import { Schemas } from 'vs/base/common/network';
import { ShowRuntimeExtensionsAction } from 'vs/workbench/contrib/extensions/browser/abstractRuntimeExtensionsEditor';
import { ExtensionEnablementWorkspaceTrustTransitionParticipant } from 'vs/workbench/contrib/extensions/browser/extensionEnablementWorkspaceTrustTransitionParticipant';
Expand Down Expand Up @@ -1245,7 +1245,7 @@ class ExtensionsContributions extends Disposable implements IWorkbenchContributi
when: ContextKeyExpr.and(WorkbenchStateContext.notEqualsTo('empty'), ContextKeyExpr.has('isBuiltinExtension').negate(), ContextKeyExpr.has('isExtensionWorkspaceRecommended').negate(), ContextKeyExpr.has('isUserIgnoredRecommendation').negate()),
order: 2
},
run: (accessor: ServicesAccessor, id: string) => accessor.get(IWorkpsaceExtensionsConfigService).toggleRecommendation(id)
run: (accessor: ServicesAccessor, id: string) => accessor.get(IWorkspaceExtensionsConfigService).toggleRecommendation(id)
});

this.registerExtensionAction({
Expand All @@ -1257,7 +1257,7 @@ class ExtensionsContributions extends Disposable implements IWorkbenchContributi
when: ContextKeyExpr.and(WorkbenchStateContext.notEqualsTo('empty'), ContextKeyExpr.has('isBuiltinExtension').negate(), ContextKeyExpr.has('isExtensionWorkspaceRecommended')),
order: 2
},
run: (accessor: ServicesAccessor, id: string) => accessor.get(IWorkpsaceExtensionsConfigService).toggleRecommendation(id)
run: (accessor: ServicesAccessor, id: string) => accessor.get(IWorkspaceExtensionsConfigService).toggleRecommendation(id)
});

this.registerExtensionAction({
Expand All @@ -1270,16 +1270,16 @@ class ExtensionsContributions extends Disposable implements IWorkbenchContributi
},
async run(accessor: ServicesAccessor): Promise<any> {
const editorService = accessor.get(IEditorService);
const workpsaceExtensionsConfigService = accessor.get(IWorkpsaceExtensionsConfigService);
const workspaceExtensionsConfigService = accessor.get(IWorkspaceExtensionsConfigService);
if (!(editorService.activeEditor instanceof ExtensionsInput)) {
return;
}
const extensionId = editorService.activeEditor.extension.identifier.id.toLowerCase();
const recommendations = await workpsaceExtensionsConfigService.getRecommendations();
const recommendations = await workspaceExtensionsConfigService.getRecommendations();
if (recommendations.includes(extensionId)) {
return;
}
await workpsaceExtensionsConfigService.toggleRecommendation(extensionId);
await workspaceExtensionsConfigService.toggleRecommendation(extensionId);
}
});

Expand All @@ -1304,16 +1304,16 @@ class ExtensionsContributions extends Disposable implements IWorkbenchContributi
},
async run(accessor: ServicesAccessor): Promise<any> {
const editorService = accessor.get(IEditorService);
const workpsaceExtensionsConfigService = accessor.get(IWorkpsaceExtensionsConfigService);
const workspaceExtensionsConfigService = accessor.get(IWorkspaceExtensionsConfigService);
if (!(editorService.activeEditor instanceof ExtensionsInput)) {
return;
}
const extensionId = editorService.activeEditor.extension.identifier.id.toLowerCase();
const unwatedRecommendations = await workpsaceExtensionsConfigService.getUnwantedRecommendations();
if (unwatedRecommendations.includes(extensionId)) {
const unwantedRecommendations = await workspaceExtensionsConfigService.getUnwantedRecommendations();
if (unwantedRecommendations.includes(extensionId)) {
return;
}
await workpsaceExtensionsConfigService.toggleUnwantedRecommendation(extensionId);
await workspaceExtensionsConfigService.toggleUnwantedRecommendation(extensionId);
}
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import { ILogService } from 'vs/platform/log/common/log';
import { CancellationToken } from 'vs/base/common/cancellation';
import { localize } from 'vs/nls';
import { Emitter } from 'vs/base/common/event';
import { IExtensionsConfigContent, IWorkpsaceExtensionsConfigService } from 'vs/workbench/services/extensionRecommendations/common/workspaceExtensionsConfig';
import { IExtensionsConfigContent, IWorkspaceExtensionsConfigService } from 'vs/workbench/services/extensionRecommendations/common/workspaceExtensionsConfig';

export class WorkspaceRecommendations extends ExtensionRecommendations {

Expand All @@ -26,7 +26,7 @@ export class WorkspaceRecommendations extends ExtensionRecommendations {
get ignoredRecommendations(): ReadonlyArray<string> { return this._ignoredRecommendations; }

constructor(
@IWorkpsaceExtensionsConfigService private readonly workpsaceExtensionsConfigService: IWorkpsaceExtensionsConfigService,
@IWorkspaceExtensionsConfigService private readonly workspaceExtensionsConfigService: IWorkspaceExtensionsConfigService,
@IExtensionGalleryService private readonly galleryService: IExtensionGalleryService,
@ILogService private readonly logService: ILogService,
@INotificationService private readonly notificationService: INotificationService,
Expand All @@ -36,15 +36,15 @@ export class WorkspaceRecommendations extends ExtensionRecommendations {

protected async doActivate(): Promise<void> {
await this.fetch();
this._register(this.workpsaceExtensionsConfigService.onDidChangeExtensionsConfigs(() => this.onDidChangeExtensionsConfigs()));
this._register(this.workspaceExtensionsConfigService.onDidChangeExtensionsConfigs(() => this.onDidChangeExtensionsConfigs()));
}

/**
* Parse all extensions.json files, fetch workspace recommendations, filter out invalid and unwanted ones
*/
private async fetch(): Promise<void> {

const extensionsConfigs = await this.workpsaceExtensionsConfigService.getExtensionsConfigs();
const extensionsConfigs = await this.workspaceExtensionsConfigService.getExtensionsConfigs();

const { invalidRecommendations, message } = await this.validateExtensions(extensionsConfigs);
if (invalidRecommendations.length) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ import { NoOpWorkspaceTagsService } from 'vs/workbench/contrib/tags/browser/work
import { IWorkspaceTagsService } from 'vs/workbench/contrib/tags/common/workspaceTags';
import { ExtensionsWorkbenchService } from 'vs/workbench/contrib/extensions/browser/extensionsWorkbenchService';
import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions';
import { IWorkpsaceExtensionsConfigService, WorkspaceExtensionsConfigService } from 'vs/workbench/services/extensionRecommendations/common/workspaceExtensionsConfig';
import { IWorkspaceExtensionsConfigService, WorkspaceExtensionsConfigService } from 'vs/workbench/services/extensionRecommendations/common/workspaceExtensionsConfig';
import { IExtensionIgnoredRecommendationsService } from 'vs/workbench/services/extensionRecommendations/common/extensionRecommendations';
import { ExtensionIgnoredRecommendationsService } from 'vs/workbench/services/extensionRecommendations/common/extensionIgnoredRecommendationsService';
import { IExtensionRecommendationNotificationService } from 'vs/platform/extensionRecommendations/common/extensionRecommendations';
Expand Down Expand Up @@ -313,7 +313,7 @@ suite('ExtensionRecommendationsService Test', () => {
instantiationService.stub(IFileService, fileService);
workspaceService = new TestContextService(myWorkspace);
instantiationService.stub(IWorkspaceContextService, workspaceService);
instantiationService.stub(IWorkpsaceExtensionsConfigService, instantiationService.createInstance(WorkspaceExtensionsConfigService));
instantiationService.stub(IWorkspaceExtensionsConfigService, instantiationService.createInstance(WorkspaceExtensionsConfigService));
instantiationService.stub(IExtensionIgnoredRecommendationsService, instantiationService.createInstance(ExtensionIgnoredRecommendationsService));
instantiationService.stub(IExtensionRecommendationNotificationService, instantiationService.createInstance(ExtensionRecommendationNotificationService));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import { Registry } from 'vs/platform/registry/common/platform';
const terminalDescriptors = '\n- ' + [
'`\${cwd}`: ' + localize("cwd", "the terminal's current working directory"),
'`\${cwdFolder}`: ' + localize('cwdFolder', "the terminal's current working directory, displayed for multi-root workspaces or in a single root workspace when the value differs from the initial working directory. This will not be displayed for Windows."),
'`\${workspaceFolder}`: ' + localize('workspaceFolder', "the workpsace in which the terminal was launched"),
'`\${workspaceFolder}`: ' + localize('workspaceFolder', "the workspace in which the terminal was launched"),
'`\${local}`: ' + localize('local', "indicates a local terminal in a remote workspace"),
'`\${process}`: ' + localize('process', "the name of the terminal process"),
'`\${separator}`: ' + localize('separator', "a conditional separator (\" - \") that only shows when surrounded by variables with values or static text."),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { Disposable } from 'vs/base/common/lifecycle';
import { registerSingleton } from 'vs/platform/instantiation/common/extensions';
import { IStorageService, IStorageValueChangeEvent, StorageScope, StorageTarget } from 'vs/platform/storage/common/storage';
import { IExtensionIgnoredRecommendationsService, IgnoredRecommendationChangeNotification } from 'vs/workbench/services/extensionRecommendations/common/extensionRecommendations';
import { IWorkpsaceExtensionsConfigService } from 'vs/workbench/services/extensionRecommendations/common/workspaceExtensionsConfig';
import { IWorkspaceExtensionsConfigService } from 'vs/workbench/services/extensionRecommendations/common/workspaceExtensionsConfig';

const ignoredRecommendationsStorageKey = 'extensionsAssistant/ignored_recommendations';

Expand All @@ -32,7 +32,7 @@ export class ExtensionIgnoredRecommendationsService extends Disposable implement
get ignoredRecommendations(): string[] { return distinct([...this.globalIgnoredRecommendations, ...this.ignoredWorkspaceRecommendations]); }

constructor(
@IWorkpsaceExtensionsConfigService private readonly workpsaceExtensionsConfigService: IWorkpsaceExtensionsConfigService,
@IWorkspaceExtensionsConfigService private readonly workspaceExtensionsConfigService: IWorkspaceExtensionsConfigService,
@IStorageService private readonly storageService: IStorageService,
) {
super();
Expand All @@ -43,10 +43,10 @@ export class ExtensionIgnoredRecommendationsService extends Disposable implement
}

private async initIgnoredWorkspaceRecommendations(): Promise<void> {
this.ignoredWorkspaceRecommendations = await this.workpsaceExtensionsConfigService.getUnwantedRecommendations();
this.ignoredWorkspaceRecommendations = await this.workspaceExtensionsConfigService.getUnwantedRecommendations();
this._onDidChangeIgnoredRecommendations.fire();
this._register(this.workpsaceExtensionsConfigService.onDidChangeExtensionsConfigs(async () => {
this.ignoredWorkspaceRecommendations = await this.workpsaceExtensionsConfigService.getUnwantedRecommendations();
this._register(this.workspaceExtensionsConfigService.onDidChangeExtensionsConfigs(async () => {
this.ignoredWorkspaceRecommendations = await this.workspaceExtensionsConfigService.getUnwantedRecommendations();
this._onDidChangeIgnoredRecommendations.fire();
}));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@ export interface IExtensionsConfigContent {
unwantedRecommendations?: string[];
}

export const IWorkpsaceExtensionsConfigService = createDecorator<IWorkpsaceExtensionsConfigService>('IWorkpsaceExtensionsConfigService');
export const IWorkspaceExtensionsConfigService = createDecorator<IWorkspaceExtensionsConfigService>('IWorkspaceExtensionsConfigService');

export interface IWorkpsaceExtensionsConfigService {
export interface IWorkspaceExtensionsConfigService {
readonly _serviceBrand: undefined;

onDidChangeExtensionsConfigs: Event<void>;
Expand All @@ -41,7 +41,7 @@ export interface IWorkpsaceExtensionsConfigService {
toggleUnwantedRecommendation(extensionId: string): Promise<void>;
}

export class WorkspaceExtensionsConfigService extends Disposable implements IWorkpsaceExtensionsConfigService {
export class WorkspaceExtensionsConfigService extends Disposable implements IWorkspaceExtensionsConfigService {

declare readonly _serviceBrand: undefined;

Expand Down Expand Up @@ -266,4 +266,4 @@ export class WorkspaceExtensionsConfigService extends Disposable implements IWor

}

registerSingleton(IWorkpsaceExtensionsConfigService, WorkspaceExtensionsConfigService);
registerSingleton(IWorkspaceExtensionsConfigService, WorkspaceExtensionsConfigService);