mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 10:58:30 -05:00
Merge from vscode cfc1ab4c5f816765b91fb7ead3c3427a7c8581a3
This commit is contained in:
@@ -895,7 +895,7 @@ suite('ExtHostLanguageFeatureCommands', function () {
|
||||
|
||||
disposables.push(extHost.registerCallHierarchyProvider(nullExtensionDescription, defaultSelector, new class implements vscode.CallHierarchyProvider {
|
||||
|
||||
prepareCallHierarchy(document: vscode.TextDocument, position: vscode.Position, ): vscode.ProviderResult<vscode.CallHierarchyItem> {
|
||||
prepareCallHierarchy(document: vscode.TextDocument, position: vscode.Position,): vscode.ProviderResult<vscode.CallHierarchyItem> {
|
||||
return new types.CallHierarchyItem(types.SymbolKind.Constant, 'ROOT', 'ROOT', document.uri, new types.Range(0, 0, 0, 0), new types.Range(0, 0, 0, 0));
|
||||
}
|
||||
|
||||
@@ -931,4 +931,53 @@ suite('ExtHostLanguageFeatureCommands', function () {
|
||||
assert.equal(outgoing.length, 1);
|
||||
assert.equal(outgoing[0].to.name, 'OUTGOING');
|
||||
});
|
||||
|
||||
test('selectionRangeProvider on inner array always returns outer array #91852', async function () {
|
||||
|
||||
disposables.push(extHost.registerSelectionRangeProvider(nullExtensionDescription, defaultSelector, <vscode.SelectionRangeProvider>{
|
||||
provideSelectionRanges(_doc, positions) {
|
||||
const [first] = positions;
|
||||
return [
|
||||
new types.SelectionRange(new types.Range(first.line, first.character, first.line, first.character)),
|
||||
];
|
||||
}
|
||||
}));
|
||||
|
||||
await rpcProtocol.sync();
|
||||
let value = await commands.executeCommand<vscode.SelectionRange[]>('vscode.executeSelectionRangeProvider', model.uri, [new types.Position(0, 10)]);
|
||||
assert.equal(value.length, 1);
|
||||
assert.equal(value[0].range.start.line, 0);
|
||||
assert.equal(value[0].range.start.character, 10);
|
||||
assert.equal(value[0].range.end.line, 0);
|
||||
assert.equal(value[0].range.end.character, 10);
|
||||
});
|
||||
|
||||
test('selectionRangeProvider on inner array always returns outer array #91852', async function () {
|
||||
|
||||
disposables.push(extHost.registerSelectionRangeProvider(nullExtensionDescription, defaultSelector, <vscode.SelectionRangeProvider>{
|
||||
provideSelectionRanges(_doc, positions) {
|
||||
const [first, second] = positions;
|
||||
return [
|
||||
new types.SelectionRange(new types.Range(first.line, first.character, first.line, first.character)),
|
||||
new types.SelectionRange(new types.Range(second.line, second.character, second.line, second.character)),
|
||||
];
|
||||
}
|
||||
}));
|
||||
|
||||
await rpcProtocol.sync();
|
||||
let value = await commands.executeCommand<vscode.SelectionRange[]>(
|
||||
'vscode.executeSelectionRangeProvider',
|
||||
model.uri,
|
||||
[new types.Position(0, 0), new types.Position(0, 10)]
|
||||
);
|
||||
assert.equal(value.length, 2);
|
||||
assert.equal(value[0].range.start.line, 0);
|
||||
assert.equal(value[0].range.start.character, 0);
|
||||
assert.equal(value[0].range.end.line, 0);
|
||||
assert.equal(value[0].range.end.character, 0);
|
||||
assert.equal(value[1].range.start.line, 0);
|
||||
assert.equal(value[1].range.start.character, 10);
|
||||
assert.equal(value[1].range.end.line, 0);
|
||||
assert.equal(value[1].range.end.character, 10);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -13,7 +13,7 @@ import { ITextFileService } from 'vs/workbench/services/textfile/common/textfile
|
||||
import { ExtHostDocumentsAndEditorsShape, IDocumentsAndEditorsDelta } from 'vs/workbench/api/common/extHost.protocol';
|
||||
import { createTestCodeEditor, TestCodeEditor } from 'vs/editor/test/browser/testCodeEditor';
|
||||
import { mock } from 'vs/workbench/test/browser/api/mock';
|
||||
import { TestEditorService, TestEditorGroupsService, TestTextResourcePropertiesService, TestEnvironmentService } from 'vs/workbench/test/browser/workbenchTestServices';
|
||||
import { TestEditorService, TestEditorGroupsService, TestEnvironmentService } from 'vs/workbench/test/browser/workbenchTestServices';
|
||||
import { Event } from 'vs/base/common/event';
|
||||
import { ITextModel } from 'vs/editor/common/model';
|
||||
import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection';
|
||||
@@ -25,6 +25,7 @@ import { NullLogService } from 'vs/platform/log/common/log';
|
||||
import { UndoRedoService } from 'vs/platform/undoRedo/common/undoRedoService';
|
||||
import { TestDialogService } from 'vs/platform/dialogs/test/common/testDialogService';
|
||||
import { TestNotificationService } from 'vs/platform/notification/test/common/testNotificationService';
|
||||
import { TestTextResourcePropertiesService } from 'vs/workbench/test/common/workbenchTestServices';
|
||||
|
||||
suite('MainThreadDocumentsAndEditors', () => {
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ import { Range } from 'vs/editor/common/core/range';
|
||||
import { Position } from 'vs/editor/common/core/position';
|
||||
import { IModelService } from 'vs/editor/common/services/modelService';
|
||||
import { EditOperation } from 'vs/editor/common/core/editOperation';
|
||||
import { TestFileService, TestEditorService, TestEditorGroupsService, TestEnvironmentService, TestContextService, TestTextResourcePropertiesService } from 'vs/workbench/test/browser/workbenchTestServices';
|
||||
import { TestFileService, TestEditorService, TestEditorGroupsService, TestEnvironmentService } from 'vs/workbench/test/browser/workbenchTestServices';
|
||||
import { BulkEditService } from 'vs/workbench/services/bulkEdit/browser/bulkEditService';
|
||||
import { NullLogService, ILogService } from 'vs/platform/log/common/log';
|
||||
import { ITextModelService, IResolvedTextEditorModel } from 'vs/editor/common/services/resolverService';
|
||||
@@ -47,6 +47,7 @@ import { IDialogService } from 'vs/platform/dialogs/common/dialogs';
|
||||
import { IUndoRedoService } from 'vs/platform/undoRedo/common/undoRedo';
|
||||
import { TestNotificationService } from 'vs/platform/notification/test/common/testNotificationService';
|
||||
import { INotificationService } from 'vs/platform/notification/common/notification';
|
||||
import { TestTextResourcePropertiesService, TestContextService } from 'vs/workbench/test/common/workbenchTestServices';
|
||||
|
||||
suite('MainThreadEditors', () => {
|
||||
|
||||
|
||||
@@ -8,8 +8,9 @@ import { Part } from 'vs/workbench/browser/part';
|
||||
import * as Types from 'vs/base/common/types';
|
||||
import { TestThemeService } from 'vs/platform/theme/test/common/testThemeService';
|
||||
import { append, $, hide } from 'vs/base/browser/dom';
|
||||
import { TestStorageService, TestLayoutService } from 'vs/workbench/test/browser/workbenchTestServices';
|
||||
import { TestLayoutService } from 'vs/workbench/test/browser/workbenchTestServices';
|
||||
import { StorageScope } from 'vs/platform/storage/common/storage';
|
||||
import { TestStorageService } from 'vs/workbench/test/common/workbenchTestServices';
|
||||
|
||||
class SimplePart extends Part {
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ import * as Platform from 'vs/platform/registry/common/platform';
|
||||
import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors';
|
||||
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
|
||||
import { NullTelemetryService } from 'vs/platform/telemetry/common/telemetryUtils';
|
||||
import { workbenchInstantiationService, TestEditorGroupView, TestEditorGroupsService, TestStorageService } from 'vs/workbench/test/browser/workbenchTestServices';
|
||||
import { workbenchInstantiationService, TestEditorGroupView, TestEditorGroupsService } from 'vs/workbench/test/browser/workbenchTestServices';
|
||||
import { ResourceEditorInput } from 'vs/workbench/common/editor/resourceEditorInput';
|
||||
import { TestThemeService } from 'vs/platform/theme/test/common/testThemeService';
|
||||
import { URI } from 'vs/base/common/uri';
|
||||
@@ -19,6 +19,7 @@ import { IEditorRegistry, Extensions, EditorDescriptor } from 'vs/workbench/brow
|
||||
import { CancellationToken } from 'vs/base/common/cancellation';
|
||||
import { IEditorModel } from 'vs/platform/editor/common/editor';
|
||||
import { dispose } from 'vs/base/common/lifecycle';
|
||||
import { TestStorageService } from 'vs/workbench/test/common/workbenchTestServices';
|
||||
|
||||
const NullThemeService = new TestThemeService();
|
||||
|
||||
@@ -92,7 +93,7 @@ class MyOtherInput extends EditorInput {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
class MyResourceInput extends ResourceEditorInput { }
|
||||
class MyResourceEditorInput extends ResourceEditorInput { }
|
||||
|
||||
suite('Workbench base editor', () => {
|
||||
|
||||
@@ -103,11 +104,9 @@ suite('Workbench base editor', () => {
|
||||
|
||||
assert(!e.isVisible());
|
||||
assert(!e.input);
|
||||
assert(!e.options);
|
||||
|
||||
await e.setInput(input, options, CancellationToken.None);
|
||||
assert.strictEqual(input, e.input);
|
||||
assert.strictEqual(options, e.options);
|
||||
const group = new TestEditorGroupView(1);
|
||||
e.setVisible(true, group);
|
||||
assert(e.isVisible());
|
||||
@@ -120,7 +119,6 @@ suite('Workbench base editor', () => {
|
||||
e.setVisible(false, group);
|
||||
assert(!e.isVisible());
|
||||
assert(!e.input);
|
||||
assert(!e.options);
|
||||
assert(!e.getControl());
|
||||
});
|
||||
|
||||
@@ -156,11 +154,11 @@ suite('Workbench base editor', () => {
|
||||
test('Editor Lookup favors specific class over superclass (match on specific class)', function () {
|
||||
let d1 = EditorDescriptor.create(MyEditor, 'id1', 'name');
|
||||
|
||||
const disposable = EditorRegistry.registerEditor(d1, [new SyncDescriptor(MyResourceInput)]);
|
||||
const disposable = EditorRegistry.registerEditor(d1, [new SyncDescriptor(MyResourceEditorInput)]);
|
||||
|
||||
let inst = workbenchInstantiationService();
|
||||
|
||||
const editor = EditorRegistry.getEditor(inst.createInstance(MyResourceInput, 'fake', '', URI.file('/fake'), undefined))!.instantiate(inst);
|
||||
const editor = EditorRegistry.getEditor(inst.createInstance(MyResourceEditorInput, 'fake', '', URI.file('/fake'), undefined))!.instantiate(inst);
|
||||
assert.strictEqual(editor.getId(), 'myEditor');
|
||||
|
||||
const otherEditor = EditorRegistry.getEditor(inst.createInstance(ResourceEditorInput, 'fake', '', URI.file('/fake'), undefined))!.instantiate(inst);
|
||||
@@ -172,7 +170,7 @@ suite('Workbench base editor', () => {
|
||||
test('Editor Lookup favors specific class over superclass (match on super class)', function () {
|
||||
let inst = workbenchInstantiationService();
|
||||
|
||||
const editor = EditorRegistry.getEditor(inst.createInstance(MyResourceInput, 'fake', '', URI.file('/fake'), undefined))!.instantiate(inst);
|
||||
const editor = EditorRegistry.getEditor(inst.createInstance(MyResourceEditorInput, 'fake', '', URI.file('/fake'), undefined))!.instantiate(inst);
|
||||
assert.strictEqual('workbench.editors.textResourceEditor', editor.getId());
|
||||
});
|
||||
|
||||
|
||||
@@ -7,9 +7,9 @@ import * as assert from 'assert';
|
||||
import { URI } from 'vs/base/common/uri';
|
||||
import { Workspace, WorkspaceFolder } from 'vs/platform/workspace/common/workspace';
|
||||
import { EditorBreadcrumbsModel, FileElement } from 'vs/workbench/browser/parts/editor/breadcrumbsModel';
|
||||
import { TestContextService } from 'vs/workbench/test/browser/workbenchTestServices';
|
||||
import { TestConfigurationService } from 'vs/platform/configuration/test/common/testConfigurationService';
|
||||
import { FileKind } from 'vs/platform/files/common/files';
|
||||
import { TestContextService } from 'vs/workbench/test/common/workbenchTestServices';
|
||||
|
||||
|
||||
suite('Breadcrumb Model', function () {
|
||||
|
||||
@@ -7,7 +7,7 @@ import * as assert from 'assert';
|
||||
import { EditorGroup, ISerializedEditorGroup, EditorCloseEvent } from 'vs/workbench/common/editor/editorGroup';
|
||||
import { Extensions as EditorExtensions, IEditorInputFactoryRegistry, EditorInput, IFileEditorInput, IEditorInputFactory, CloseDirection, EditorsOrder } from 'vs/workbench/common/editor';
|
||||
import { URI } from 'vs/base/common/uri';
|
||||
import { TestLifecycleService, TestContextService, TestStorageService } from 'vs/workbench/test/browser/workbenchTestServices';
|
||||
import { TestLifecycleService } from 'vs/workbench/test/browser/workbenchTestServices';
|
||||
import { TestConfigurationService } from 'vs/platform/configuration/test/common/testConfigurationService';
|
||||
import { TestInstantiationService } from 'vs/platform/instantiation/test/common/instantiationServiceMock';
|
||||
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
|
||||
@@ -21,6 +21,7 @@ import { NullTelemetryService } from 'vs/platform/telemetry/common/telemetryUtil
|
||||
import { DiffEditorInput } from 'vs/workbench/common/editor/diffEditorInput';
|
||||
import { IStorageService } from 'vs/platform/storage/common/storage';
|
||||
import { IDisposable, dispose } from 'vs/base/common/lifecycle';
|
||||
import { TestContextService, TestStorageService } from 'vs/workbench/test/common/workbenchTestServices';
|
||||
|
||||
function inst(): IInstantiationService {
|
||||
let inst = new TestInstantiationService();
|
||||
|
||||
@@ -17,13 +17,13 @@ import { ITextBufferFactory } from 'vs/editor/common/model';
|
||||
import { URI } from 'vs/base/common/uri';
|
||||
import { createTextBufferFactory } from 'vs/editor/common/model/textModel';
|
||||
import { ITextResourcePropertiesService } from 'vs/editor/common/services/textResourceConfigurationService';
|
||||
import { TestTextResourcePropertiesService } from 'vs/workbench/test/browser/workbenchTestServices';
|
||||
import { IUndoRedoService } from 'vs/platform/undoRedo/common/undoRedo';
|
||||
import { UndoRedoService } from 'vs/platform/undoRedo/common/undoRedoService';
|
||||
import { TestDialogService } from 'vs/platform/dialogs/test/common/testDialogService';
|
||||
import { IDialogService } from 'vs/platform/dialogs/common/dialogs';
|
||||
import { TestNotificationService } from 'vs/platform/notification/test/common/testNotificationService';
|
||||
import { INotificationService } from 'vs/platform/notification/common/notification';
|
||||
import { TestTextResourcePropertiesService } from 'vs/workbench/test/common/workbenchTestServices';
|
||||
|
||||
class MyEditorModel extends EditorModel { }
|
||||
class MyTextEditorModel extends BaseTextEditorModel {
|
||||
|
||||
@@ -42,7 +42,7 @@ suite('Editor - Range decorations', () => {
|
||||
codeEditor = createTestCodeEditor({ model: model });
|
||||
|
||||
instantiationService.stub(IEditorService, 'activeEditor', { get resource() { return codeEditor.getModel()!.uri; } });
|
||||
instantiationService.stub(IEditorService, 'activeTextEditorWidget', codeEditor);
|
||||
instantiationService.stub(IEditorService, 'activeTextEditorControl', codeEditor);
|
||||
|
||||
testObject = instantiationService.createInstance(RangeHighlightDecorations);
|
||||
});
|
||||
|
||||
186
src/vs/workbench/test/browser/quickAccess.test.ts
Normal file
186
src/vs/workbench/test/browser/quickAccess.test.ts
Normal file
@@ -0,0 +1,186 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import * as assert from 'assert';
|
||||
import { Registry } from 'vs/platform/registry/common/platform';
|
||||
import { IQuickAccessRegistry, Extensions, IQuickAccessProvider } from 'vs/platform/quickinput/common/quickAccess';
|
||||
import { IQuickPick, IQuickPickItem, IQuickInputService } from 'vs/platform/quickinput/common/quickInput';
|
||||
import { CancellationToken } from 'vs/base/common/cancellation';
|
||||
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
|
||||
import { TestServiceAccessor, workbenchInstantiationService } from 'vs/workbench/test/browser/workbenchTestServices';
|
||||
import { DisposableStore, toDisposable, IDisposable } from 'vs/base/common/lifecycle';
|
||||
import { timeout } from 'vs/base/common/async';
|
||||
|
||||
suite('QuickAccess', () => {
|
||||
|
||||
let instantiationService: IInstantiationService;
|
||||
let accessor: TestServiceAccessor;
|
||||
|
||||
let provider1Called = false;
|
||||
let provider1Canceled = false;
|
||||
let provider1Disposed = false;
|
||||
|
||||
let provider2Called = false;
|
||||
let provider2Canceled = false;
|
||||
let provider2Disposed = false;
|
||||
|
||||
let provider3Called = false;
|
||||
let provider3Canceled = false;
|
||||
let provider3Disposed = false;
|
||||
|
||||
let provider4Called = false;
|
||||
let provider4Canceled = false;
|
||||
let provider4Disposed = false;
|
||||
|
||||
class TestProvider1 implements IQuickAccessProvider {
|
||||
provide(picker: IQuickPick<IQuickPickItem>, token: CancellationToken): IDisposable {
|
||||
assert.ok(picker);
|
||||
provider1Called = true;
|
||||
token.onCancellationRequested(() => provider1Canceled = true);
|
||||
|
||||
return toDisposable(() => provider1Disposed = true);
|
||||
}
|
||||
}
|
||||
|
||||
class TestProvider2 implements IQuickAccessProvider {
|
||||
provide(picker: IQuickPick<IQuickPickItem>, token: CancellationToken): IDisposable {
|
||||
assert.ok(picker);
|
||||
provider2Called = true;
|
||||
token.onCancellationRequested(() => provider2Canceled = true);
|
||||
|
||||
return toDisposable(() => provider2Disposed = true);
|
||||
}
|
||||
}
|
||||
|
||||
class TestProvider3 implements IQuickAccessProvider {
|
||||
|
||||
constructor(@IQuickInputService private readonly quickInputService: IQuickInputService, disposables: DisposableStore) { }
|
||||
|
||||
provide(picker: IQuickPick<IQuickPickItem>, token: CancellationToken): IDisposable {
|
||||
assert.ok(picker);
|
||||
provider3Called = true;
|
||||
token.onCancellationRequested(() => provider3Canceled = true);
|
||||
|
||||
// bring up provider #4
|
||||
setTimeout(() => this.quickInputService.quickAccess.show(providerDescriptor4.prefix));
|
||||
|
||||
return toDisposable(() => provider3Disposed = true);
|
||||
}
|
||||
}
|
||||
|
||||
class TestProvider4 implements IQuickAccessProvider {
|
||||
provide(picker: IQuickPick<IQuickPickItem>, token: CancellationToken): IDisposable {
|
||||
assert.ok(picker);
|
||||
provider4Called = true;
|
||||
token.onCancellationRequested(() => provider4Canceled = true);
|
||||
|
||||
// hide without picking
|
||||
setTimeout(() => picker.hide());
|
||||
|
||||
return toDisposable(() => provider4Disposed = true);
|
||||
}
|
||||
}
|
||||
|
||||
const defaultProviderDescriptor = { ctor: TestProvider1, prefix: '', helpEntries: [] };
|
||||
const providerDescriptor1 = { ctor: TestProvider1, prefix: 'test', helpEntries: [] };
|
||||
const providerDescriptor2 = { ctor: TestProvider2, prefix: 'test something', helpEntries: [] };
|
||||
const providerDescriptor3 = { ctor: TestProvider3, prefix: 'default', helpEntries: [] };
|
||||
const providerDescriptor4 = { ctor: TestProvider4, prefix: 'changed', helpEntries: [] };
|
||||
|
||||
setup(() => {
|
||||
instantiationService = workbenchInstantiationService();
|
||||
accessor = instantiationService.createInstance(TestServiceAccessor);
|
||||
});
|
||||
|
||||
test('registry', () => {
|
||||
const registry = (Registry.as<IQuickAccessRegistry>(Extensions.Quickaccess));
|
||||
registry.defaultProvider = defaultProviderDescriptor;
|
||||
|
||||
const initialSize = registry.getQuickAccessProviders().length;
|
||||
|
||||
const disposable = registry.registerQuickAccessProvider(providerDescriptor1);
|
||||
|
||||
assert(registry.getQuickAccessProvider('test') === providerDescriptor1);
|
||||
|
||||
const providers = registry.getQuickAccessProviders();
|
||||
assert(providers.some(provider => provider.prefix === 'test'));
|
||||
|
||||
disposable.dispose();
|
||||
assert.ok(!registry.getQuickAccessProvider('test'));
|
||||
assert.equal(registry.getQuickAccessProviders().length - initialSize, 0);
|
||||
});
|
||||
|
||||
test('provider', async () => {
|
||||
const registry = (Registry.as<IQuickAccessRegistry>(Extensions.Quickaccess));
|
||||
const defaultProvider = registry.defaultProvider;
|
||||
|
||||
const disposables = new DisposableStore();
|
||||
|
||||
disposables.add(registry.registerQuickAccessProvider(providerDescriptor1));
|
||||
disposables.add(registry.registerQuickAccessProvider(providerDescriptor2));
|
||||
disposables.add(registry.registerQuickAccessProvider(providerDescriptor4));
|
||||
registry.defaultProvider = providerDescriptor3;
|
||||
|
||||
accessor.quickInputService.quickAccess.show('test');
|
||||
assert.equal(provider1Called, true);
|
||||
assert.equal(provider2Called, false);
|
||||
assert.equal(provider3Called, false);
|
||||
assert.equal(provider4Called, false);
|
||||
assert.equal(provider1Canceled, false);
|
||||
assert.equal(provider2Canceled, false);
|
||||
assert.equal(provider3Canceled, false);
|
||||
assert.equal(provider4Canceled, false);
|
||||
assert.equal(provider1Disposed, false);
|
||||
assert.equal(provider2Disposed, false);
|
||||
assert.equal(provider3Disposed, false);
|
||||
assert.equal(provider4Disposed, false);
|
||||
provider1Called = false;
|
||||
|
||||
accessor.quickInputService.quickAccess.show('test something');
|
||||
assert.equal(provider1Called, false);
|
||||
assert.equal(provider2Called, true);
|
||||
assert.equal(provider3Called, false);
|
||||
assert.equal(provider4Called, false);
|
||||
assert.equal(provider1Canceled, true);
|
||||
assert.equal(provider2Canceled, false);
|
||||
assert.equal(provider3Canceled, false);
|
||||
assert.equal(provider4Canceled, false);
|
||||
assert.equal(provider1Disposed, true);
|
||||
assert.equal(provider2Disposed, false);
|
||||
assert.equal(provider3Disposed, false);
|
||||
assert.equal(provider4Disposed, false);
|
||||
provider2Called = false;
|
||||
provider1Canceled = false;
|
||||
provider1Disposed = false;
|
||||
|
||||
accessor.quickInputService.quickAccess.show('usedefault');
|
||||
assert.equal(provider1Called, false);
|
||||
assert.equal(provider2Called, false);
|
||||
assert.equal(provider3Called, true);
|
||||
assert.equal(provider4Called, false);
|
||||
assert.equal(provider1Canceled, false);
|
||||
assert.equal(provider2Canceled, true);
|
||||
assert.equal(provider3Canceled, false);
|
||||
assert.equal(provider4Canceled, false);
|
||||
assert.equal(provider1Disposed, false);
|
||||
assert.equal(provider2Disposed, true);
|
||||
assert.equal(provider3Disposed, false);
|
||||
assert.equal(provider4Disposed, false);
|
||||
|
||||
await timeout(1);
|
||||
|
||||
assert.equal(provider3Canceled, true);
|
||||
assert.equal(provider3Disposed, true);
|
||||
assert.equal(provider4Called, true);
|
||||
|
||||
await timeout(1);
|
||||
|
||||
assert.equal(provider4Canceled, true);
|
||||
assert.equal(provider4Disposed, true);
|
||||
|
||||
disposables.dispose();
|
||||
registry.defaultProvider = defaultProvider;
|
||||
});
|
||||
});
|
||||
@@ -10,7 +10,7 @@ import * as resources from 'vs/base/common/resources';
|
||||
import { URI } from 'vs/base/common/uri';
|
||||
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
|
||||
import { NullTelemetryService } from 'vs/platform/telemetry/common/telemetryUtils';
|
||||
import { IEditorInputWithOptions, CloseDirection, IEditorIdentifier, IUntitledTextResourceInput, IResourceDiffInput, IResourceSideBySideInput, IEditorInput, IEditor, IEditorCloseEvent, IEditorPartOptions, IRevertOptions, GroupIdentifier, EditorInput, EditorOptions, EditorsOrder, IFileEditorInput, IEditorInputFactoryRegistry, IEditorInputFactory, Extensions as EditorExtensions, ISaveOptions, IMoveResult } from 'vs/workbench/common/editor';
|
||||
import { IEditorInputWithOptions, CloseDirection, IEditorIdentifier, IUntitledTextResourceEditorInput, IResourceDiffEditorInput, IEditorInput, IEditorPane, IEditorCloseEvent, IEditorPartOptions, IRevertOptions, GroupIdentifier, EditorInput, EditorOptions, EditorsOrder, IFileEditorInput, IEditorInputFactoryRegistry, IEditorInputFactory, Extensions as EditorExtensions, ISaveOptions, IMoveResult, ITextEditorPane, ITextDiffEditorPane, IVisibleEditorPane } from 'vs/workbench/common/editor';
|
||||
import { IEditorOpeningEvent, EditorServiceImpl, IEditorGroupView, IEditorGroupsAccessor } from 'vs/workbench/browser/parts/editor/editor';
|
||||
import { Event, Emitter } from 'vs/base/common/event';
|
||||
import { IBackupFileService, IResolvedBackup } from 'vs/workbench/services/backup/common/backup';
|
||||
@@ -18,7 +18,7 @@ import { IConfigurationService, ConfigurationTarget } from 'vs/platform/configur
|
||||
import { IWorkbenchLayoutService, Parts, Position as PartPosition } from 'vs/workbench/services/layout/browser/layoutService';
|
||||
import { TextModelResolverService } from 'vs/workbench/services/textmodelResolver/common/textModelResolverService';
|
||||
import { ITextModelService } from 'vs/editor/common/services/resolverService';
|
||||
import { IEditorOptions, IResourceInput, IEditorModel } from 'vs/platform/editor/common/editor';
|
||||
import { IEditorOptions, IResourceEditorInput, IEditorModel, ITextEditorOptions } from 'vs/platform/editor/common/editor';
|
||||
import { IUntitledTextEditorService, UntitledTextEditorService } from 'vs/workbench/services/untitled/common/untitledTextEditorService';
|
||||
import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace';
|
||||
import { ILifecycleService, BeforeShutdownEvent, ShutdownReason, StartupKind, LifecyclePhase, WillShutdownEvent } from 'vs/platform/lifecycle/common/lifecycle';
|
||||
@@ -42,7 +42,7 @@ import { IPosition, Position as EditorPosition } from 'vs/editor/common/core/pos
|
||||
import { IMenuService, MenuId, IMenu } from 'vs/platform/actions/common/actions';
|
||||
import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
|
||||
import { MockContextKeyService, MockKeybindingService } from 'vs/platform/keybinding/test/common/mockKeybindingService';
|
||||
import { ITextBufferFactory, DefaultEndOfLine, EndOfLinePreference, IModelDecorationOptions, ITextModel, ITextSnapshot } from 'vs/editor/common/model';
|
||||
import { ITextBufferFactory, DefaultEndOfLine, EndOfLinePreference, ITextSnapshot } from 'vs/editor/common/model';
|
||||
import { Range } from 'vs/editor/common/core/range';
|
||||
import { IDialogService, IPickAndOpenOptions, ISaveDialogOptions, IOpenDialogOptions, IFileDialogService, ConfirmResult } from 'vs/platform/dialogs/common/dialogs';
|
||||
import { INotificationService } from 'vs/platform/notification/common/notification';
|
||||
@@ -51,24 +51,21 @@ import { IExtensionService, NullExtensionService } from 'vs/workbench/services/e
|
||||
import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding';
|
||||
import { IDecorationsService, IResourceDecorationChangeEvent, IDecoration, IDecorationData, IDecorationsProvider } from 'vs/workbench/services/decorations/browser/decorations';
|
||||
import { IDisposable, toDisposable, Disposable, DisposableStore } from 'vs/base/common/lifecycle';
|
||||
import { IEditorGroupsService, IEditorGroup, GroupsOrder, GroupsArrangement, GroupDirection, IAddGroupOptions, IMergeGroupOptions, IMoveEditorOptions, ICopyEditorOptions, IEditorReplacement, IGroupChangeEvent, IFindGroupScope, EditorGroupLayout, ICloseEditorOptions } from 'vs/workbench/services/editor/common/editorGroupsService';
|
||||
import { IEditorService, IOpenEditorOverrideHandler, IVisibleEditor, ISaveEditorsOptions, IRevertAllEditorsOptions, IResourceEditor } from 'vs/workbench/services/editor/common/editorService';
|
||||
import { IEditorGroupsService, IEditorGroup, GroupsOrder, GroupsArrangement, GroupDirection, IAddGroupOptions, IMergeGroupOptions, IMoveEditorOptions, ICopyEditorOptions, IEditorReplacement, IGroupChangeEvent, IFindGroupScope, EditorGroupLayout, ICloseEditorOptions, GroupOrientation } from 'vs/workbench/services/editor/common/editorGroupsService';
|
||||
import { IEditorService, IOpenEditorOverrideHandler, ISaveEditorsOptions, IRevertAllEditorsOptions, IResourceEditorInputType, SIDE_GROUP_TYPE, ACTIVE_GROUP_TYPE } from 'vs/workbench/services/editor/common/editorService';
|
||||
import { ICodeEditorService } from 'vs/editor/browser/services/codeEditorService';
|
||||
import { ICodeEditor, IDiffEditor } from 'vs/editor/browser/editorBrowser';
|
||||
import { IEditorRegistry, EditorDescriptor, Extensions } from 'vs/workbench/browser/editor';
|
||||
import { IDecorationRenderOptions } from 'vs/editor/common/editorCommon';
|
||||
import { EditorGroup } from 'vs/workbench/common/editor/editorGroup';
|
||||
import { Dimension } from 'vs/base/browser/dom';
|
||||
import { Dimension, IDimension } from 'vs/base/browser/dom';
|
||||
import { ILogService, NullLogService } from 'vs/platform/log/common/log';
|
||||
import { ILabelService } from 'vs/platform/label/common/label';
|
||||
import { timeout } from 'vs/base/common/async';
|
||||
import { IViewletService } from 'vs/workbench/services/viewlet/browser/viewlet';
|
||||
import { ViewletDescriptor, Viewlet } from 'vs/workbench/browser/viewlet';
|
||||
import { IViewlet } from 'vs/workbench/common/viewlet';
|
||||
import { IStorageService } from 'vs/platform/storage/common/storage';
|
||||
import { isLinux } from 'vs/base/common/platform';
|
||||
import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage';
|
||||
import { isLinux, isWindows } from 'vs/base/common/platform';
|
||||
import { LabelService } from 'vs/workbench/services/label/common/labelService';
|
||||
import { IDimension } from 'vs/platform/layout/browser/layoutService';
|
||||
import { Part } from 'vs/workbench/browser/part';
|
||||
import { IPanelService } from 'vs/workbench/services/panel/common/panelService';
|
||||
import { IPanel } from 'vs/workbench/common/panel';
|
||||
@@ -84,7 +81,6 @@ import { IFilesConfigurationService, FilesConfigurationService } from 'vs/workbe
|
||||
import { IAccessibilityService, AccessibilitySupport } from 'vs/platform/accessibility/common/accessibility';
|
||||
import { BrowserWorkbenchEnvironmentService } from 'vs/workbench/services/environment/browser/environmentService';
|
||||
import { BrowserTextFileService } from 'vs/workbench/services/textfile/browser/browserTextFileService';
|
||||
import * as CommonWorkbenchTestServices from 'vs/workbench/test/common/workbenchTestServices';
|
||||
import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService';
|
||||
import { createTextBufferFactoryFromStream } from 'vs/editor/common/model/textModel';
|
||||
import { IRemotePathService } from 'vs/workbench/services/path/common/remotePathService';
|
||||
@@ -99,13 +95,18 @@ import { BaseEditor } from 'vs/workbench/browser/parts/editor/baseEditor';
|
||||
import { CancellationToken } from 'vs/base/common/cancellation';
|
||||
import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors';
|
||||
import { TestDialogService } from 'vs/platform/dialogs/test/common/testDialogService';
|
||||
import { CodeEditorService } from 'vs/workbench/services/editor/browser/codeEditorService';
|
||||
import { EditorPart } from 'vs/workbench/browser/parts/editor/editorPart';
|
||||
import { ICodeEditor } from 'vs/editor/browser/editorBrowser';
|
||||
import { IDiffEditor } from 'vs/editor/common/editorCommon';
|
||||
import { IQuickInputService } from 'vs/platform/quickinput/common/quickInput';
|
||||
import { QuickInputService } from 'vs/workbench/services/quickinput/browser/quickInputService';
|
||||
import { IListService } from 'vs/platform/list/browser/listService';
|
||||
import { win32, posix } from 'vs/base/common/path';
|
||||
import { TestWorkingCopyService, TestContextService, TestStorageService, TestTextResourcePropertiesService } from 'vs/workbench/test/common/workbenchTestServices';
|
||||
import { IViewsService, IView } from 'vs/workbench/common/views';
|
||||
|
||||
export import TestTextResourcePropertiesService = CommonWorkbenchTestServices.TestTextResourcePropertiesService;
|
||||
export import TestContextService = CommonWorkbenchTestServices.TestContextService;
|
||||
export import TestStorageService = CommonWorkbenchTestServices.TestStorageService;
|
||||
export import TestWorkingCopyService = CommonWorkbenchTestServices.TestWorkingCopyService;
|
||||
|
||||
export function createFileInput(instantiationService: IInstantiationService, resource: URI): FileEditorInput {
|
||||
export function createFileEditorInput(instantiationService: IInstantiationService, resource: URI): FileEditorInput {
|
||||
return instantiationService.createInstance(FileEditorInput, resource, undefined, undefined);
|
||||
}
|
||||
|
||||
@@ -129,9 +130,12 @@ export function workbenchInstantiationService(overrides?: { textFileService?: (i
|
||||
instantiationService.stub(ITextResourceConfigurationService, new TestTextResourceConfigurationService(configService));
|
||||
instantiationService.stub(IUntitledTextEditorService, instantiationService.createInstance(UntitledTextEditorService));
|
||||
instantiationService.stub(IStorageService, new TestStorageService());
|
||||
instantiationService.stub(IWorkbenchLayoutService, new TestLayoutService());
|
||||
instantiationService.stub(IRemotePathService, new TestRemotePathService(TestEnvironmentService));
|
||||
const layoutService = new TestLayoutService();
|
||||
instantiationService.stub(IWorkbenchLayoutService, layoutService);
|
||||
instantiationService.stub(IDialogService, new TestDialogService());
|
||||
instantiationService.stub(IAccessibilityService, new TestAccessibilityService());
|
||||
const accessibilityService = new TestAccessibilityService();
|
||||
instantiationService.stub(IAccessibilityService, accessibilityService);
|
||||
instantiationService.stub(IFileDialogService, new TestFileDialogService());
|
||||
instantiationService.stub(IModeService, instantiationService.createInstance(ModeServiceImpl));
|
||||
instantiationService.stub(IHistoryService, new TestHistoryService());
|
||||
@@ -144,22 +148,26 @@ export function workbenchInstantiationService(overrides?: { textFileService?: (i
|
||||
instantiationService.stub(INotificationService, new TestNotificationService());
|
||||
instantiationService.stub(IUntitledTextEditorService, instantiationService.createInstance(UntitledTextEditorService));
|
||||
instantiationService.stub(IMenuService, new TestMenuService());
|
||||
instantiationService.stub(IKeybindingService, new MockKeybindingService());
|
||||
const keybindingService = new MockKeybindingService();
|
||||
instantiationService.stub(IKeybindingService, keybindingService);
|
||||
instantiationService.stub(IDecorationsService, new TestDecorationsService());
|
||||
instantiationService.stub(IExtensionService, new TestExtensionService());
|
||||
instantiationService.stub(IWorkingCopyFileService, instantiationService.createInstance(WorkingCopyFileService));
|
||||
instantiationService.stub(ITextFileService, overrides?.textFileService ? overrides.textFileService(instantiationService) : <ITextFileService>instantiationService.createInstance(TestTextFileService));
|
||||
instantiationService.stub(IHostService, <IHostService>instantiationService.createInstance(TestHostService));
|
||||
instantiationService.stub(ITextModelService, <ITextModelService>instantiationService.createInstance(TextModelResolverService));
|
||||
instantiationService.stub(IThemeService, new TestThemeService());
|
||||
const themeService = new TestThemeService();
|
||||
instantiationService.stub(IThemeService, themeService);
|
||||
instantiationService.stub(ILogService, new NullLogService());
|
||||
const editorGroupService = new TestEditorGroupsService([new TestEditorGroupView(0)]);
|
||||
instantiationService.stub(IEditorGroupsService, editorGroupService);
|
||||
instantiationService.stub(ILabelService, <ILabelService>instantiationService.createInstance(LabelService));
|
||||
const editorService = new TestEditorService(editorGroupService);
|
||||
instantiationService.stub(IEditorService, editorService);
|
||||
instantiationService.stub(ICodeEditorService, new TestCodeEditorService());
|
||||
instantiationService.stub(ICodeEditorService, new CodeEditorService(editorService, themeService));
|
||||
instantiationService.stub(IViewletService, new TestViewletService());
|
||||
instantiationService.stub(IListService, new TestListService());
|
||||
instantiationService.stub(IQuickInputService, new QuickInputService(TestEnvironmentService, configService, instantiationService, keybindingService, contextKeyService, themeService, accessibilityService, layoutService));
|
||||
|
||||
return instantiationService;
|
||||
}
|
||||
@@ -181,7 +189,9 @@ export class TestServiceAccessor {
|
||||
@ITextModelService public textModelResolverService: ITextModelService,
|
||||
@IUntitledTextEditorService public untitledTextEditorService: UntitledTextEditorService,
|
||||
@IConfigurationService public testConfigurationService: TestConfigurationService,
|
||||
@IBackupFileService public backupFileService: TestBackupFileService
|
||||
@IBackupFileService public backupFileService: TestBackupFileService,
|
||||
@IHostService public hostService: TestHostService,
|
||||
@IQuickInputService public quickInputService: IQuickInputService
|
||||
) { }
|
||||
}
|
||||
|
||||
@@ -311,10 +321,10 @@ export class TestHistoryService implements IHistoryService {
|
||||
forward(): void { }
|
||||
back(): void { }
|
||||
last(): void { }
|
||||
remove(_input: IEditorInput | IResourceInput): void { }
|
||||
remove(_input: IEditorInput | IResourceEditorInput): void { }
|
||||
clear(): void { }
|
||||
clearRecentlyOpened(): void { }
|
||||
getHistory(): ReadonlyArray<IEditorInput | IResourceInput> { return []; }
|
||||
getHistory(): ReadonlyArray<IEditorInput | IResourceEditorInput> { return []; }
|
||||
openNextRecentlyUsedEditor(group?: GroupIdentifier): void { }
|
||||
openPreviouslyUsedEditor(group?: GroupIdentifier): void { }
|
||||
getLastActiveWorkspaceRoot(_schemeFilter: string): URI | undefined { return this.root; }
|
||||
@@ -376,7 +386,6 @@ export class TestLayoutService implements IWorkbenchLayoutService {
|
||||
getDimension(_part: Parts): Dimension { return new Dimension(0, 0); }
|
||||
getContainer(_part: Parts): HTMLElement { return null!; }
|
||||
isTitleBarHidden(): boolean { return false; }
|
||||
getTitleBarOffset(): number { return 0; }
|
||||
isStatusBarHidden(): boolean { return false; }
|
||||
isActivityBarHidden(): boolean { return false; }
|
||||
setActivityBarHidden(_hidden: boolean): void { }
|
||||
@@ -395,7 +404,6 @@ export class TestLayoutService implements IWorkbenchLayoutService {
|
||||
removeClass(_clazz: string): void { }
|
||||
getMaximumEditorDimensions(): Dimension { throw new Error('not implemented'); }
|
||||
getWorkbenchContainer(): HTMLElement { throw new Error('not implemented'); }
|
||||
getWorkbenchElement(): HTMLElement { throw new Error('not implemented'); }
|
||||
toggleZenMode(): void { }
|
||||
isEditorLayoutCentered(): boolean { return false; }
|
||||
centerEditorLayout(_active: boolean): void { }
|
||||
@@ -404,6 +412,7 @@ export class TestLayoutService implements IWorkbenchLayoutService {
|
||||
isWindowMaximized() { return false; }
|
||||
updateWindowMaximizedState(maximized: boolean): void { }
|
||||
getVisibleNeighborPart(part: Parts, direction: Direction): Parts | undefined { return undefined; }
|
||||
focus() { }
|
||||
}
|
||||
|
||||
let activeViewlet: Viewlet = {} as any;
|
||||
@@ -443,7 +452,7 @@ export class TestPanelService implements IPanelService {
|
||||
getPanel(id: string): any { return activeViewlet; }
|
||||
getPanels() { return []; }
|
||||
getPinnedPanels() { return []; }
|
||||
getActivePanel(): IViewlet { return activeViewlet; }
|
||||
getActivePanel(): IPanel { return activeViewlet; }
|
||||
setPanelEnablement(id: string, enabled: boolean): void { }
|
||||
dispose() { }
|
||||
showActivity(panelId: string, badge: IBadge, clazz?: string): IDisposable { throw new Error('Method not implemented.'); }
|
||||
@@ -452,6 +461,19 @@ export class TestPanelService implements IPanelService {
|
||||
getLastActivePanelId(): string { return undefined!; }
|
||||
}
|
||||
|
||||
export class TestViewsService implements IViewsService {
|
||||
_serviceBrand: undefined;
|
||||
|
||||
onDidChangeViewVisibilityEmitter = new Emitter<{ id: string; visible: boolean; }>();
|
||||
|
||||
onDidChangeViewVisibility = this.onDidChangeViewVisibilityEmitter.event;
|
||||
isViewVisible(id: string): boolean { return true; }
|
||||
getActiveViewWithId<T extends IView>(id: string): T | null { return null; }
|
||||
openView<T extends IView>(id: string, focus?: boolean | undefined): Promise<T | null> { return Promise.resolve(null); }
|
||||
closeView(id: string): void { }
|
||||
getProgressIndicator(id: string) { return null!; }
|
||||
}
|
||||
|
||||
export class TestEditorGroupsService implements IEditorGroupsService {
|
||||
|
||||
_serviceBrand: undefined;
|
||||
@@ -467,7 +489,7 @@ export class TestEditorGroupsService implements IEditorGroupsService {
|
||||
onDidLayout: Event<IDimension> = Event.None;
|
||||
onDidEditorPartOptionsChange = Event.None;
|
||||
|
||||
orientation: any;
|
||||
orientation = GroupOrientation.HORIZONTAL;
|
||||
whenRestored: Promise<void> = Promise.resolve(undefined);
|
||||
willRestoreEditors = false;
|
||||
|
||||
@@ -486,7 +508,7 @@ export class TestEditorGroupsService implements IEditorGroupsService {
|
||||
setSize(_group: number | IEditorGroup, _size: { width: number, height: number }): void { }
|
||||
arrangeGroups(_arrangement: GroupsArrangement): void { }
|
||||
applyLayout(_layout: EditorGroupLayout): void { }
|
||||
setGroupOrientation(_orientation: any): void { }
|
||||
setGroupOrientation(_orientation: GroupOrientation): void { }
|
||||
addGroup(_location: number | IEditorGroup, _direction: GroupDirection, _options?: IAddGroupOptions): IEditorGroup { throw new Error('not implemented'); }
|
||||
removeGroup(_group: number | IEditorGroup): void { }
|
||||
moveGroup(_group: number | IEditorGroup, _location: number | IEditorGroup, _direction: GroupDirection): IEditorGroup { throw new Error('not implemented'); }
|
||||
@@ -504,7 +526,7 @@ export class TestEditorGroupView implements IEditorGroupView {
|
||||
constructor(public id: number) { }
|
||||
|
||||
get group(): EditorGroup { throw new Error('not implemented'); }
|
||||
activeControl!: IVisibleEditor;
|
||||
activeEditorPane!: IVisibleEditorPane;
|
||||
activeEditor!: IEditorInput;
|
||||
previewEditor!: IEditorInput;
|
||||
count!: number;
|
||||
@@ -535,9 +557,9 @@ export class TestEditorGroupView implements IEditorGroupView {
|
||||
getEditors(_order?: EditorsOrder): ReadonlyArray<IEditorInput> { return []; }
|
||||
getEditorByIndex(_index: number): IEditorInput { throw new Error('not implemented'); }
|
||||
getIndexOfEditor(_editor: IEditorInput): number { return -1; }
|
||||
openEditor(_editor: IEditorInput, _options?: IEditorOptions): Promise<IEditor> { throw new Error('not implemented'); }
|
||||
openEditors(_editors: IEditorInputWithOptions[]): Promise<IEditor> { throw new Error('not implemented'); }
|
||||
isOpened(_editor: IEditorInput | IResourceInput): boolean { return false; }
|
||||
openEditor(_editor: IEditorInput, _options?: IEditorOptions): Promise<IEditorPane> { throw new Error('not implemented'); }
|
||||
openEditors(_editors: IEditorInputWithOptions[]): Promise<IEditorPane> { throw new Error('not implemented'); }
|
||||
isOpened(_editor: IEditorInput | IResourceEditorInput): boolean { return false; }
|
||||
isPinned(_editor: IEditorInput): boolean { return false; }
|
||||
isActive(_editor: IEditorInput): boolean { return false; }
|
||||
moveEditor(_editor: IEditorInput, _target: IEditorGroup, _options?: IMoveEditorOptions): void { }
|
||||
@@ -589,14 +611,14 @@ export class TestEditorService implements EditorServiceImpl {
|
||||
onDidOpenEditorFail: Event<IEditorIdentifier> = Event.None;
|
||||
onDidMostRecentlyActiveEditorsChange: Event<void> = Event.None;
|
||||
|
||||
activeControl!: IVisibleEditor;
|
||||
activeTextEditorWidget: any;
|
||||
activeTextEditorMode: any;
|
||||
activeEditor!: IEditorInput;
|
||||
activeEditorPane: IVisibleEditorPane | undefined;
|
||||
activeTextEditorControl: ICodeEditor | IDiffEditor | undefined;
|
||||
activeTextEditorMode: string | undefined;
|
||||
activeEditor: IEditorInput | undefined;
|
||||
editors: ReadonlyArray<IEditorInput> = [];
|
||||
mostRecentlyActiveEditors: ReadonlyArray<IEditorIdentifier> = [];
|
||||
visibleControls: ReadonlyArray<IVisibleEditor> = [];
|
||||
visibleTextEditorWidgets = [];
|
||||
visibleEditorPanes: ReadonlyArray<IVisibleEditorPane> = [];
|
||||
visibleTextEditorControls = [];
|
||||
visibleEditors: ReadonlyArray<IEditorInput> = [];
|
||||
count = this.editors.length;
|
||||
|
||||
@@ -604,24 +626,28 @@ export class TestEditorService implements EditorServiceImpl {
|
||||
|
||||
getEditors() { return []; }
|
||||
overrideOpenEditor(_handler: IOpenEditorOverrideHandler): IDisposable { return toDisposable(() => undefined); }
|
||||
openEditor(_editor: any, _options?: any, _group?: any): Promise<any> { throw new Error('not implemented'); }
|
||||
doResolveEditorOpenRequest(editor: IEditorInput | IResourceEditor): [IEditorGroup, EditorInput, EditorOptions | undefined] | undefined {
|
||||
openEditor(editor: IEditorInput, options?: IEditorOptions | ITextEditorOptions, group?: IEditorGroup | GroupIdentifier | SIDE_GROUP_TYPE | ACTIVE_GROUP_TYPE): Promise<IEditorPane | undefined>;
|
||||
openEditor(editor: IResourceEditorInput | IUntitledTextResourceEditorInput, group?: IEditorGroup | GroupIdentifier | SIDE_GROUP_TYPE | ACTIVE_GROUP_TYPE): Promise<ITextEditorPane | undefined>;
|
||||
openEditor(editor: IResourceDiffEditorInput, group?: IEditorGroup | GroupIdentifier | SIDE_GROUP_TYPE | ACTIVE_GROUP_TYPE): Promise<ITextDiffEditorPane | undefined>;
|
||||
async openEditor(editor: IEditorInput | IResourceEditorInputType, optionsOrGroup?: IEditorOptions | ITextEditorOptions | IEditorGroup | GroupIdentifier | SIDE_GROUP_TYPE | ACTIVE_GROUP_TYPE, group?: IEditorGroup | GroupIdentifier | SIDE_GROUP_TYPE | ACTIVE_GROUP_TYPE): Promise<IEditorPane | undefined> {
|
||||
throw new Error('not implemented');
|
||||
}
|
||||
doResolveEditorOpenRequest(editor: IEditorInput | IResourceEditorInputType): [IEditorGroup, EditorInput, EditorOptions | undefined] | undefined {
|
||||
if (!this.editorGroupService) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
return [this.editorGroupService.activeGroup, editor as EditorInput, undefined];
|
||||
}
|
||||
openEditors(_editors: any, _group?: any): Promise<IEditor[]> { throw new Error('not implemented'); }
|
||||
isOpen(_editor: IEditorInput | IResourceInput | IUntitledTextResourceInput): boolean { return false; }
|
||||
getOpened(_editor: IEditorInput | IResourceInput | IUntitledTextResourceInput): IEditorInput { throw new Error('not implemented'); }
|
||||
openEditors(_editors: any, _group?: any): Promise<IEditorPane[]> { throw new Error('not implemented'); }
|
||||
isOpen(_editor: IEditorInput | IResourceEditorInput): boolean { return false; }
|
||||
replaceEditors(_editors: any, _group: any) { return Promise.resolve(undefined); }
|
||||
invokeWithinEditorContext<T>(fn: (accessor: ServicesAccessor) => T): T { throw new Error('not implemented'); }
|
||||
createInput(_input: IResourceInput | IUntitledTextResourceInput | IResourceDiffInput | IResourceSideBySideInput): EditorInput { throw new Error('not implemented'); }
|
||||
createEditorInput(_input: IResourceEditorInput | IUntitledTextResourceEditorInput | IResourceDiffEditorInput): EditorInput { throw new Error('not implemented'); }
|
||||
save(editors: IEditorIdentifier[], options?: ISaveEditorsOptions): Promise<boolean> { throw new Error('Method not implemented.'); }
|
||||
saveAll(options?: ISaveEditorsOptions): Promise<boolean> { throw new Error('Method not implemented.'); }
|
||||
revert(editors: IEditorIdentifier[], options?: IRevertOptions): Promise<boolean> { throw new Error('Method not implemented.'); }
|
||||
revertAll(options?: IRevertAllEditorsOptions): Promise<boolean> { throw new Error('Method not implemented.'); }
|
||||
revert(editors: IEditorIdentifier[], options?: IRevertOptions): Promise<void> { throw new Error('Method not implemented.'); }
|
||||
revertAll(options?: IRevertAllEditorsOptions): Promise<void> { throw new Error('Method not implemented.'); }
|
||||
}
|
||||
|
||||
export class TestFileService implements IFileService {
|
||||
@@ -791,32 +817,6 @@ export class TestBackupFileService implements IBackupFileService {
|
||||
}
|
||||
}
|
||||
|
||||
export class TestCodeEditorService implements ICodeEditorService {
|
||||
_serviceBrand: undefined;
|
||||
|
||||
onCodeEditorAdd: Event<ICodeEditor> = Event.None;
|
||||
onCodeEditorRemove: Event<ICodeEditor> = Event.None;
|
||||
onDiffEditorAdd: Event<IDiffEditor> = Event.None;
|
||||
onDiffEditorRemove: Event<IDiffEditor> = Event.None;
|
||||
onDidChangeTransientModelProperty: Event<ITextModel> = Event.None;
|
||||
|
||||
addCodeEditor(_editor: ICodeEditor): void { }
|
||||
removeCodeEditor(_editor: ICodeEditor): void { }
|
||||
listCodeEditors(): ICodeEditor[] { return []; }
|
||||
addDiffEditor(_editor: IDiffEditor): void { }
|
||||
removeDiffEditor(_editor: IDiffEditor): void { }
|
||||
listDiffEditors(): IDiffEditor[] { return []; }
|
||||
getFocusedCodeEditor(): ICodeEditor | null { return null; }
|
||||
registerDecorationType(_key: string, _options: IDecorationRenderOptions, _parentTypeKey?: string): void { }
|
||||
removeDecorationType(_key: string): void { }
|
||||
resolveDecorationOptions(_typeKey: string, _writable: boolean): IModelDecorationOptions { return Object.create(null); }
|
||||
setTransientModelProperty(_model: ITextModel, _key: string, _value: any): void { }
|
||||
getTransientModelProperty(_model: ITextModel, _key: string) { }
|
||||
getTransientModelProperties(_model: ITextModel) { return undefined; }
|
||||
getActiveCodeEditor(): ICodeEditor | null { return null; }
|
||||
openCodeEditor(_input: IResourceInput, _source: ICodeEditor, _sideBySide?: boolean): Promise<ICodeEditor | null> { return Promise.resolve(null); }
|
||||
}
|
||||
|
||||
export class TestLifecycleService implements ILifecycleService {
|
||||
|
||||
_serviceBrand: undefined;
|
||||
@@ -906,9 +906,17 @@ export class TestHostService implements IHostService {
|
||||
|
||||
_serviceBrand: undefined;
|
||||
|
||||
readonly hasFocus: boolean = true;
|
||||
async hadLastFocus(): Promise<boolean> { return true; }
|
||||
readonly onDidChangeFocus: Event<boolean> = Event.None;
|
||||
private _hasFocus = true;
|
||||
get hasFocus() { return this._hasFocus; }
|
||||
async hadLastFocus(): Promise<boolean> { return this._hasFocus; }
|
||||
|
||||
private _onDidChangeFocus = new Emitter<boolean>();
|
||||
readonly onDidChangeFocus = this._onDidChangeFocus.event;
|
||||
|
||||
setFocus(focus: boolean) {
|
||||
this._hasFocus = focus;
|
||||
this._onDidChangeFocus.fire(this._hasFocus);
|
||||
}
|
||||
|
||||
async restart(): Promise<void> { }
|
||||
async reload(): Promise<void> { }
|
||||
@@ -962,7 +970,7 @@ export function registerTestEditor(id: string, inputs: SyncDescriptor<EditorInpu
|
||||
|
||||
getId(): string { return id; }
|
||||
layout(): void { }
|
||||
createEditor(): any { }
|
||||
createEditor(): void { }
|
||||
}
|
||||
|
||||
const disposables = new DisposableStore();
|
||||
@@ -1038,11 +1046,10 @@ export class TestFileEditorInput extends EditorInput implements IFileEditorInput
|
||||
this.gotSavedAs = true;
|
||||
return this;
|
||||
}
|
||||
async revert(group: GroupIdentifier, options?: IRevertOptions): Promise<boolean> {
|
||||
async revert(group: GroupIdentifier, options?: IRevertOptions): Promise<void> {
|
||||
this.gotReverted = true;
|
||||
this.gotSaved = false;
|
||||
this.gotSavedAs = false;
|
||||
return true;
|
||||
}
|
||||
setDirty(): void { this.dirty = true; }
|
||||
isDirty(): boolean {
|
||||
@@ -1059,3 +1066,47 @@ export class TestFileEditorInput extends EditorInput implements IFileEditorInput
|
||||
movedEditor: IMoveResult | undefined = undefined;
|
||||
move(): IMoveResult | undefined { return this.movedEditor; }
|
||||
}
|
||||
|
||||
export class TestEditorPart extends EditorPart {
|
||||
|
||||
saveState(): void {
|
||||
return super.saveState();
|
||||
}
|
||||
|
||||
clearState(): void {
|
||||
const workspaceMemento = this.getMemento(StorageScope.WORKSPACE);
|
||||
for (const key of Object.keys(workspaceMemento)) {
|
||||
delete workspaceMemento[key];
|
||||
}
|
||||
|
||||
const globalMemento = this.getMemento(StorageScope.GLOBAL);
|
||||
for (const key of Object.keys(globalMemento)) {
|
||||
delete globalMemento[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export class TestListService implements IListService {
|
||||
_serviceBrand: undefined;
|
||||
|
||||
lastFocusedList: any | undefined = undefined;
|
||||
|
||||
register(): IDisposable {
|
||||
return Disposable.None;
|
||||
}
|
||||
}
|
||||
|
||||
export class TestRemotePathService implements IRemotePathService {
|
||||
|
||||
_serviceBrand: undefined;
|
||||
|
||||
constructor(@IWorkbenchEnvironmentService private readonly environmentService: IEnvironmentService) { }
|
||||
|
||||
get path() { return Promise.resolve(isWindows ? win32 : posix); }
|
||||
|
||||
get userHome() { return Promise.resolve(URI.file(this.environmentService.userHome)); }
|
||||
|
||||
async fileURI(path: string): Promise<URI> {
|
||||
return URI.file(path);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ suite('Memento', () => {
|
||||
let myMemento = new Memento('memento.test', storage);
|
||||
|
||||
// Global
|
||||
let memento: any = myMemento.getMemento(StorageScope.GLOBAL);
|
||||
let memento = myMemento.getMemento(StorageScope.GLOBAL);
|
||||
memento.foo = [1, 2, 3];
|
||||
let globalMemento = myMemento.getMemento(StorageScope.GLOBAL);
|
||||
assert.deepEqual(globalMemento, memento);
|
||||
@@ -76,7 +76,7 @@ suite('Memento', () => {
|
||||
let myMemento = new Memento('memento.test', storage);
|
||||
|
||||
// Global
|
||||
let memento: any = myMemento.getMemento(context!);
|
||||
let memento = myMemento.getMemento(context!);
|
||||
memento.foo = [1, 2, 3];
|
||||
|
||||
// Workspace
|
||||
@@ -141,7 +141,7 @@ suite('Memento', () => {
|
||||
let myMemento2 = new Memento('memento.test', storage);
|
||||
|
||||
// Global
|
||||
let memento: any = myMemento.getMemento(context!);
|
||||
let memento = myMemento.getMemento(context!);
|
||||
memento.foo = [1, 2, 3];
|
||||
|
||||
memento = myMemento2.getMemento(context!);
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import * as assert from 'assert';
|
||||
import { NotificationsModel, NotificationViewItem, INotificationChangeEvent, NotificationChangeType, NotificationViewItemLabelKind, IStatusMessageChangeEvent, StatusMessageChangeType } from 'vs/workbench/common/notifications';
|
||||
import { NotificationsModel, NotificationViewItem, INotificationChangeEvent, NotificationChangeType, NotificationViewItemContentChangeKind, IStatusMessageChangeEvent, StatusMessageChangeType } from 'vs/workbench/common/notifications';
|
||||
import { Action } from 'vs/base/common/actions';
|
||||
import { INotification, Severity, NotificationsFilter } from 'vs/platform/notification/common/notification';
|
||||
import { createErrorWithActions } from 'vs/base/common/errorsWithActions';
|
||||
@@ -58,8 +58,8 @@ suite('Notifications', () => {
|
||||
assert.equal(called, 2);
|
||||
|
||||
called = 0;
|
||||
item1.onDidChangeLabel(e => {
|
||||
if (e.kind === NotificationViewItemLabelKind.PROGRESS) {
|
||||
item1.onDidChangeContent(e => {
|
||||
if (e.kind === NotificationViewItemContentChangeKind.PROGRESS) {
|
||||
called++;
|
||||
}
|
||||
});
|
||||
@@ -70,8 +70,8 @@ suite('Notifications', () => {
|
||||
assert.equal(called, 2);
|
||||
|
||||
called = 0;
|
||||
item1.onDidChangeLabel(e => {
|
||||
if (e.kind === NotificationViewItemLabelKind.MESSAGE) {
|
||||
item1.onDidChangeContent(e => {
|
||||
if (e.kind === NotificationViewItemContentChangeKind.MESSAGE) {
|
||||
called++;
|
||||
}
|
||||
});
|
||||
@@ -79,8 +79,8 @@ suite('Notifications', () => {
|
||||
item1.updateMessage('message update');
|
||||
|
||||
called = 0;
|
||||
item1.onDidChangeLabel(e => {
|
||||
if (e.kind === NotificationViewItemLabelKind.SEVERITY) {
|
||||
item1.onDidChangeContent(e => {
|
||||
if (e.kind === NotificationViewItemContentChangeKind.SEVERITY) {
|
||||
called++;
|
||||
}
|
||||
});
|
||||
@@ -88,8 +88,8 @@ suite('Notifications', () => {
|
||||
item1.updateSeverity(Severity.Error);
|
||||
|
||||
called = 0;
|
||||
item1.onDidChangeLabel(e => {
|
||||
if (e.kind === NotificationViewItemLabelKind.ACTIONS) {
|
||||
item1.onDidChangeContent(e => {
|
||||
if (e.kind === NotificationViewItemContentChangeKind.ACTIONS) {
|
||||
called++;
|
||||
}
|
||||
});
|
||||
@@ -159,6 +159,22 @@ suite('Notifications', () => {
|
||||
assert.equal(lastNotificationEvent.index, 0);
|
||||
assert.equal(lastNotificationEvent.kind, NotificationChangeType.ADD);
|
||||
|
||||
item1Handle.updateMessage('Error Message');
|
||||
assert.equal(lastNotificationEvent.kind, NotificationChangeType.CHANGE);
|
||||
assert.equal(lastNotificationEvent.detail, NotificationViewItemContentChangeKind.MESSAGE);
|
||||
|
||||
item1Handle.updateSeverity(Severity.Error);
|
||||
assert.equal(lastNotificationEvent.kind, NotificationChangeType.CHANGE);
|
||||
assert.equal(lastNotificationEvent.detail, NotificationViewItemContentChangeKind.SEVERITY);
|
||||
|
||||
item1Handle.updateActions({ primary: [], secondary: [] });
|
||||
assert.equal(lastNotificationEvent.kind, NotificationChangeType.CHANGE);
|
||||
assert.equal(lastNotificationEvent.detail, NotificationViewItemContentChangeKind.ACTIONS);
|
||||
|
||||
item1Handle.progress.infinite();
|
||||
assert.equal(lastNotificationEvent.kind, NotificationChangeType.CHANGE);
|
||||
assert.equal(lastNotificationEvent.detail, NotificationViewItemContentChangeKind.PROGRESS);
|
||||
|
||||
let item2Handle = model.addNotification(item2);
|
||||
assert.equal(lastNotificationEvent.item.severity, item2.severity);
|
||||
assert.equal(lastNotificationEvent.item.message.linkedText.toString(), item2.message);
|
||||
@@ -204,7 +220,7 @@ suite('Notifications', () => {
|
||||
assert.equal(lastNotificationEvent.item.severity, item3.severity);
|
||||
assert.equal(lastNotificationEvent.item.message.linkedText.toString(), item3.message);
|
||||
assert.equal(lastNotificationEvent.index, 0);
|
||||
assert.equal(lastNotificationEvent.kind, NotificationChangeType.CHANGE);
|
||||
assert.equal(lastNotificationEvent.kind, NotificationChangeType.EXPAND_COLLAPSE);
|
||||
|
||||
const disposable = model.showStatusMessage('Hello World');
|
||||
assert.equal(model.statusMessage!.message, 'Hello World');
|
||||
|
||||
@@ -35,16 +35,22 @@ export class TestTextResourcePropertiesService implements ITextResourcePropertie
|
||||
}
|
||||
|
||||
export class TestContextService implements IWorkspaceContextService {
|
||||
|
||||
_serviceBrand: undefined;
|
||||
|
||||
private workspace: Workspace;
|
||||
private options: any;
|
||||
private options: object;
|
||||
|
||||
private readonly _onDidChangeWorkspaceName: Emitter<void>;
|
||||
private readonly _onDidChangeWorkspaceFolders: Emitter<IWorkspaceFoldersChangeEvent>;
|
||||
private readonly _onDidChangeWorkbenchState: Emitter<WorkbenchState>;
|
||||
get onDidChangeWorkspaceName(): Event<void> { return this._onDidChangeWorkspaceName.event; }
|
||||
|
||||
constructor(workspace: any = TestWorkspace, options: any = null) {
|
||||
private readonly _onDidChangeWorkspaceFolders: Emitter<IWorkspaceFoldersChangeEvent>;
|
||||
get onDidChangeWorkspaceFolders(): Event<IWorkspaceFoldersChangeEvent> { return this._onDidChangeWorkspaceFolders.event; }
|
||||
|
||||
private readonly _onDidChangeWorkbenchState: Emitter<WorkbenchState>;
|
||||
get onDidChangeWorkbenchState(): Event<WorkbenchState> { return this._onDidChangeWorkbenchState.event; }
|
||||
|
||||
constructor(workspace = TestWorkspace, options = null) {
|
||||
this.workspace = workspace;
|
||||
this.options = options || Object.create(null);
|
||||
this._onDidChangeWorkspaceName = new Emitter<void>();
|
||||
@@ -52,18 +58,6 @@ export class TestContextService implements IWorkspaceContextService {
|
||||
this._onDidChangeWorkbenchState = new Emitter<WorkbenchState>();
|
||||
}
|
||||
|
||||
get onDidChangeWorkspaceName(): Event<void> {
|
||||
return this._onDidChangeWorkspaceName.event;
|
||||
}
|
||||
|
||||
get onDidChangeWorkspaceFolders(): Event<IWorkspaceFoldersChangeEvent> {
|
||||
return this._onDidChangeWorkspaceFolders.event;
|
||||
}
|
||||
|
||||
get onDidChangeWorkbenchState(): Event<WorkbenchState> {
|
||||
return this._onDidChangeWorkbenchState.event;
|
||||
}
|
||||
|
||||
getFolders(): IWorkspaceFolder[] {
|
||||
return this.workspace ? this.workspace.folders : [];
|
||||
}
|
||||
@@ -100,9 +94,7 @@ export class TestContextService implements IWorkspaceContextService {
|
||||
return this.options;
|
||||
}
|
||||
|
||||
updateOptions() {
|
||||
|
||||
}
|
||||
updateOptions() { }
|
||||
|
||||
isInsideWorkspace(resource: URI): boolean {
|
||||
if (resource && this.workspace) {
|
||||
|
||||
@@ -28,7 +28,7 @@ import { IEditorService } from 'vs/workbench/services/editor/common/editorServic
|
||||
import { IEditorGroupsService } from 'vs/workbench/services/editor/common/editorGroupsService';
|
||||
import { LocalSearchService } from 'vs/workbench/services/search/node/searchService';
|
||||
import { IUntitledTextEditorService, UntitledTextEditorService } from 'vs/workbench/services/untitled/common/untitledTextEditorService';
|
||||
import { TestContextService, TestEditorGroupsService, TestEditorService, TestTextResourcePropertiesService } from 'vs/workbench/test/browser/workbenchTestServices';
|
||||
import { TestEditorGroupsService, TestEditorService } from 'vs/workbench/test/browser/workbenchTestServices';
|
||||
import { TestEnvironmentService } from 'vs/workbench/test/electron-browser/workbenchTestServices';
|
||||
import { ClassifiedEvent, StrictPropertyCheck, GDPRClassification } from 'vs/platform/telemetry/common/gdprTypings';
|
||||
import { TestThemeService } from 'vs/platform/theme/test/common/testThemeService';
|
||||
@@ -39,6 +39,7 @@ import { IDialogService } from 'vs/platform/dialogs/common/dialogs';
|
||||
import { IUndoRedoService } from 'vs/platform/undoRedo/common/undoRedo';
|
||||
import { TestNotificationService } from 'vs/platform/notification/test/common/testNotificationService';
|
||||
import { INotificationService } from 'vs/platform/notification/common/notification';
|
||||
import { TestContextService, TestTextResourcePropertiesService } from 'vs/workbench/test/common/workbenchTestServices';
|
||||
|
||||
namespace Timer {
|
||||
export interface ITimerEvent {
|
||||
|
||||
@@ -17,7 +17,7 @@ import * as minimist from 'vscode-minimist';
|
||||
import * as path from 'vs/base/common/path';
|
||||
import { LocalSearchService } from 'vs/workbench/services/search/node/searchService';
|
||||
import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection';
|
||||
import { TestContextService, TestEditorService, TestEditorGroupsService, TestTextResourcePropertiesService } from 'vs/workbench/test/browser/workbenchTestServices';
|
||||
import { TestEditorService, TestEditorGroupsService } from 'vs/workbench/test/browser/workbenchTestServices';
|
||||
import { TestEnvironmentService } from 'vs/workbench/test/electron-browser/workbenchTestServices';
|
||||
import { IEnvironmentService } from 'vs/platform/environment/common/environment';
|
||||
import { URI } from 'vs/base/common/uri';
|
||||
@@ -42,6 +42,7 @@ import { IDialogService } from 'vs/platform/dialogs/common/dialogs';
|
||||
import { IUndoRedoService } from 'vs/platform/undoRedo/common/undoRedo';
|
||||
import { TestNotificationService } from 'vs/platform/notification/test/common/testNotificationService';
|
||||
import { INotificationService } from 'vs/platform/notification/common/notification';
|
||||
import { TestTextResourcePropertiesService, TestContextService } from 'vs/workbench/test/common/workbenchTestServices';
|
||||
|
||||
// declare var __dirname: string;
|
||||
|
||||
|
||||
@@ -3,10 +3,10 @@
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { workbenchInstantiationService as browserWorkbenchInstantiationService, ITestInstantiationService, TestLifecycleService, TestFilesConfigurationService, TestContextService, TestFileService, TestFileDialogService } from 'vs/workbench/test/browser/workbenchTestServices';
|
||||
import { workbenchInstantiationService as browserWorkbenchInstantiationService, ITestInstantiationService, TestLifecycleService, TestFilesConfigurationService, TestFileService, TestFileDialogService } from 'vs/workbench/test/browser/workbenchTestServices';
|
||||
import { Event } from 'vs/base/common/event';
|
||||
import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService';
|
||||
import { NativeWorkbenchEnvironmentService } from 'vs/workbench/services/environment/electron-browser/environmentService';
|
||||
import { NativeWorkbenchEnvironmentService, INativeWorkbenchEnvironmentService } from 'vs/workbench/services/environment/electron-browser/environmentService';
|
||||
import { NativeTextFileService, EncodingOracle, IEncodingOverride } from 'vs/workbench/services/textfile/electron-browser/nativeTextFileService';
|
||||
import { IElectronService } from 'vs/platform/electron/node/electron';
|
||||
import { INativeOpenDialogOptions } from 'vs/platform/dialogs/node/dialogs';
|
||||
@@ -25,7 +25,7 @@ import { ICodeEditorService } from 'vs/editor/browser/services/codeEditorService
|
||||
import { URI } from 'vs/base/common/uri';
|
||||
import { IReadTextFileOptions, ITextFileStreamContent, ITextFileService } from 'vs/workbench/services/textfile/common/textfiles';
|
||||
import { createTextBufferFactoryFromStream } from 'vs/editor/common/model/textModel';
|
||||
import { IOpenedWindow, IOpenEmptyWindowOptions, IWindowOpenable, IOpenWindowOptions, IWindowConfiguration } from 'vs/platform/windows/common/windows';
|
||||
import { IOpenedWindow, IOpenEmptyWindowOptions, IWindowOpenable, IOpenWindowOptions } from 'vs/platform/windows/common/windows';
|
||||
import { parseArgs, OPTIONS } from 'vs/platform/environment/node/argv';
|
||||
import { LogLevel } from 'vs/platform/log/common/log';
|
||||
import { IRemotePathService } from 'vs/workbench/services/path/common/remotePathService';
|
||||
@@ -37,12 +37,16 @@ import { IBackupFileService } from 'vs/workbench/services/backup/common/backup';
|
||||
import { NodeTestBackupFileService } from 'vs/workbench/services/backup/test/electron-browser/backupFileService.test';
|
||||
import { IWorkingCopyService } from 'vs/workbench/services/workingCopy/common/workingCopyService';
|
||||
import { IEditorService } from 'vs/workbench/services/editor/common/editorService';
|
||||
import { INativeWindowConfiguration } from 'vs/platform/windows/node/window';
|
||||
import { TestContextService } from 'vs/workbench/test/common/workbenchTestServices';
|
||||
|
||||
export const TestWindowConfiguration: IWindowConfiguration = {
|
||||
export const TestWindowConfiguration: INativeWindowConfiguration = {
|
||||
windowId: 0,
|
||||
machineId: 'testMachineId',
|
||||
sessionId: 'testSessionId',
|
||||
logLevel: LogLevel.Error,
|
||||
mainPid: 0,
|
||||
partsSplashPath: '',
|
||||
appRoot: '',
|
||||
userEnv: {},
|
||||
execPath: process.execPath,
|
||||
@@ -50,7 +54,7 @@ export const TestWindowConfiguration: IWindowConfiguration = {
|
||||
...parseArgs(process.argv, OPTIONS)
|
||||
};
|
||||
|
||||
export const TestEnvironmentService = new NativeWorkbenchEnvironmentService(TestWindowConfiguration, process.execPath, 0);
|
||||
export const TestEnvironmentService = new NativeWorkbenchEnvironmentService(TestWindowConfiguration, process.execPath);
|
||||
|
||||
export class TestTextFileService extends NativeTextFileService {
|
||||
private resolveTextContentError!: FileOperationError | null;
|
||||
@@ -61,7 +65,7 @@ export class TestTextFileService extends NativeTextFileService {
|
||||
@ILifecycleService lifecycleService: ILifecycleService,
|
||||
@IInstantiationService instantiationService: IInstantiationService,
|
||||
@IModelService modelService: IModelService,
|
||||
@IWorkbenchEnvironmentService environmentService: IWorkbenchEnvironmentService,
|
||||
@IWorkbenchEnvironmentService environmentService: INativeWorkbenchEnvironmentService,
|
||||
@IDialogService dialogService: IDialogService,
|
||||
@IFileDialogService fileDialogService: IFileDialogService,
|
||||
@ITextResourceConfigurationService textResourceConfigurationService: ITextResourceConfigurationService,
|
||||
|
||||
Reference in New Issue
Block a user