Merge from vscode a5cf1da01d5db3d2557132be8d30f89c38019f6c (#8525)

* Merge from vscode a5cf1da01d5db3d2557132be8d30f89c38019f6c

* remove files we don't want

* fix hygiene

* update distro

* update distro

* fix hygiene

* fix strict nulls

* distro

* distro

* fix tests

* fix tests

* add another edit

* fix viewlet icon

* fix azure dialog

* fix some padding

* fix more padding issues
This commit is contained in:
Anthony Dresser
2019-12-04 19:28:22 -08:00
committed by GitHub
parent a8818ab0df
commit f5ce7fb2a5
1507 changed files with 42813 additions and 27370 deletions

View File

@@ -115,14 +115,14 @@ suite('Workbench base editor', () => {
});
test('EditorDescriptor', () => {
let d = new EditorDescriptor(MyEditor, 'id', 'name');
let d = EditorDescriptor.create(MyEditor, 'id', 'name');
assert.strictEqual(d.getId(), 'id');
assert.strictEqual(d.getName(), 'name');
});
test('Editor Registration', function () {
let d1 = new EditorDescriptor(MyEditor, 'id1', 'name');
let d2 = new EditorDescriptor(MyOtherEditor, 'id2', 'name');
let d1 = EditorDescriptor.create(MyEditor, 'id1', 'name');
let d2 = EditorDescriptor.create(MyOtherEditor, 'id2', 'name');
let oldEditorsCnt = EditorRegistry.getEditors().length;
let oldInputCnt = (<any>EditorRegistry).getEditorInputs().length;
@@ -142,8 +142,8 @@ suite('Workbench base editor', () => {
});
test('Editor Lookup favors specific class over superclass (match on specific class)', function () {
let d1 = new EditorDescriptor(MyEditor, 'id1', 'name');
let d2 = new EditorDescriptor(MyOtherEditor, 'id2', 'name');
let d1 = EditorDescriptor.create(MyEditor, 'id1', 'name');
let d2 = EditorDescriptor.create(MyOtherEditor, 'id2', 'name');
let oldEditors = EditorRegistry.getEditors();
(<any>EditorRegistry).setEditors([]);
@@ -163,7 +163,7 @@ suite('Workbench base editor', () => {
});
test('Editor Lookup favors specific class over superclass (match on super class)', function () {
let d1 = new EditorDescriptor(MyOtherEditor, 'id1', 'name');
let d1 = EditorDescriptor.create(MyOtherEditor, 'id1', 'name');
let oldEditors = EditorRegistry.getEditors();
(<any>EditorRegistry).setEditors([]);

View File

@@ -29,7 +29,7 @@ suite('Breadcrumb Model', function () {
test('only uri, inside workspace', function () {
let model = new EditorBreadcrumbsModel(URI.parse('foo:/bar/baz/ws/some/path/file.ts'), undefined, configService, workspaceService);
let model = new EditorBreadcrumbsModel(URI.parse('foo:/bar/baz/ws/some/path/file.ts'), undefined, configService, configService, workspaceService);
let elements = model.getElements();
assert.equal(elements.length, 3);
@@ -44,7 +44,7 @@ suite('Breadcrumb Model', function () {
test('only uri, outside workspace', function () {
let model = new EditorBreadcrumbsModel(URI.parse('foo:/outside/file.ts'), undefined, configService, workspaceService);
let model = new EditorBreadcrumbsModel(URI.parse('foo:/outside/file.ts'), undefined, configService, configService, workspaceService);
let elements = model.getElements();
assert.equal(elements.length, 2);

View File

@@ -4,7 +4,7 @@
*--------------------------------------------------------------------------------------------*/
import * as assert from 'assert';
import { ContributableViewsModel, ViewsService } from 'vs/workbench/browser/parts/views/views';
import { ContributableViewsModel, ViewsService, IViewState } from 'vs/workbench/browser/parts/views/views';
import { IViewsRegistry, IViewDescriptor, IViewContainersRegistry, Extensions as ViewContainerExtensions, IViewsService } from 'vs/workbench/common/views';
import { IDisposable, dispose } from 'vs/base/common/lifecycle';
import { move } from 'vs/base/common/arrays';
@@ -13,6 +13,7 @@ import { workbenchInstantiationService } from 'vs/workbench/test/workbenchTestSe
import { ContextKeyExpr, IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
import { TestInstantiationService } from 'vs/platform/instantiation/test/common/instantiationServiceMock';
import { ContextKeyService } from 'vs/platform/contextkey/browser/contextKeyService';
import sinon = require('sinon');
const container = Registry.as<IViewContainersRegistry>(ViewContainerExtensions.ViewContainersRegistry).registerViewContainer('test');
const ViewsRegistry = Registry.as<IViewsRegistry>(ViewContainerExtensions.ViewsRegistry);
@@ -244,4 +245,130 @@ suite('ContributableViewsModel', () => {
assert.deepEqual(model.visibleViewDescriptors, [view1, view2, view3], 'view2 should go to the middle');
assert.deepEqual(seq.elements, [view1, view2, view3]);
});
test('view states', async function () {
const viewStates = new Map<string, IViewState>();
viewStates.set('view1', { visibleGlobal: false, collapsed: false, visibleWorkspace: undefined });
const model = new ContributableViewsModel(container, viewsService, viewStates);
const seq = new ViewDescriptorSequence(model);
assert.equal(model.visibleViewDescriptors.length, 0);
assert.equal(seq.elements.length, 0);
const viewDescriptor: IViewDescriptor = {
id: 'view1',
ctorDescriptor: null!,
name: 'Test View 1'
};
ViewsRegistry.registerViews([viewDescriptor], container);
assert.equal(model.visibleViewDescriptors.length, 0, 'view should not appear since it was set not visible in view state');
assert.equal(seq.elements.length, 0);
});
test('view states and when contexts', async function () {
const viewStates = new Map<string, IViewState>();
viewStates.set('view1', { visibleGlobal: false, collapsed: false, visibleWorkspace: undefined });
const model = new ContributableViewsModel(container, viewsService, viewStates);
const seq = new ViewDescriptorSequence(model);
assert.equal(model.visibleViewDescriptors.length, 0);
assert.equal(seq.elements.length, 0);
const viewDescriptor: IViewDescriptor = {
id: 'view1',
ctorDescriptor: null!,
name: 'Test View 1',
when: ContextKeyExpr.equals('showview1', true)
};
ViewsRegistry.registerViews([viewDescriptor], container);
assert.equal(model.visibleViewDescriptors.length, 0, 'view should not appear since context isnt in');
assert.equal(seq.elements.length, 0);
const key = contextKeyService.createKey('showview1', false);
assert.equal(model.visibleViewDescriptors.length, 0, 'view should still not appear since showview1 isnt true');
assert.equal(seq.elements.length, 0);
key.set(true);
await new Promise(c => setTimeout(c, 30));
assert.equal(model.visibleViewDescriptors.length, 0, 'view should still not appear since it was set not visible in view state');
assert.equal(seq.elements.length, 0);
});
test('view states and when contexts multiple views', async function () {
const viewStates = new Map<string, IViewState>();
viewStates.set('view1', { visibleGlobal: false, collapsed: false, visibleWorkspace: undefined });
const model = new ContributableViewsModel(container, viewsService, viewStates);
const seq = new ViewDescriptorSequence(model);
assert.equal(model.visibleViewDescriptors.length, 0);
assert.equal(seq.elements.length, 0);
const view1: IViewDescriptor = {
id: 'view1',
ctorDescriptor: null!,
name: 'Test View 1',
when: ContextKeyExpr.equals('showview', true)
};
const view2: IViewDescriptor = {
id: 'view2',
ctorDescriptor: null!,
name: 'Test View 2',
};
const view3: IViewDescriptor = {
id: 'view3',
ctorDescriptor: null!,
name: 'Test View 3',
when: ContextKeyExpr.equals('showview', true)
};
ViewsRegistry.registerViews([view1, view2, view3], container);
assert.deepEqual(model.visibleViewDescriptors, [view2], 'Only view2 should be visible');
assert.deepEqual(seq.elements, [view2]);
const key = contextKeyService.createKey('showview', false);
assert.deepEqual(model.visibleViewDescriptors, [view2], 'Only view2 should be visible');
assert.deepEqual(seq.elements, [view2]);
key.set(true);
await new Promise(c => setTimeout(c, 30));
assert.deepEqual(model.visibleViewDescriptors, [view2, view3], 'view3 should be visible');
assert.deepEqual(seq.elements, [view2, view3]);
key.set(false);
await new Promise(c => setTimeout(c, 30));
assert.deepEqual(model.visibleViewDescriptors, [view2], 'Only view2 should be visible');
assert.deepEqual(seq.elements, [view2]);
});
test('remove event is not triggered if view was hidden and removed', async function () {
const model = new ContributableViewsModel(container, viewsService);
const seq = new ViewDescriptorSequence(model);
const viewDescriptor: IViewDescriptor = {
id: 'view1',
ctorDescriptor: null!,
name: 'Test View 1',
when: ContextKeyExpr.equals('showview1', true),
canToggleVisibility: true
};
ViewsRegistry.registerViews([viewDescriptor], container);
const key = contextKeyService.createKey('showview1', true);
await new Promise(c => setTimeout(c, 30));
assert.equal(model.visibleViewDescriptors.length, 1, 'view should appear after context is set');
assert.equal(seq.elements.length, 1);
model.setVisible('view1', false);
assert.equal(model.visibleViewDescriptors.length, 0, 'view should disappear after setting visibility to false');
assert.equal(seq.elements.length, 0);
const target = sinon.spy(model.onDidRemove);
key.set(false);
await new Promise(c => setTimeout(c, 30));
assert.ok(!target.called, 'remove event should not be called since it is already hidden');
});
});

View File

@@ -54,7 +54,7 @@ suite('QuickOpen', () => {
test('QuickOpen Handler and Registry', () => {
let registry = (Registry.as<IQuickOpenRegistry>(QuickOpenExtensions.Quickopen));
let handler = new QuickOpenHandlerDescriptor(
let handler = QuickOpenHandlerDescriptor.create(
TestHandler,
'testhandler',
',',
@@ -77,4 +77,4 @@ suite('QuickOpen', () => {
defaultAction.run();
prefixAction.run();
});
});
});

View File

@@ -22,7 +22,7 @@ suite('Viewlets', () => {
}
test('ViewletDescriptor API', function () {
let d = new ViewletDescriptor(TestViewlet, 'id', 'name', 'class', 5);
let d = ViewletDescriptor.create(TestViewlet, 'id', 'name', 'class', 5);
assert.strictEqual(d.id, 'id');
assert.strictEqual(d.name, 'name');
assert.strictEqual(d.cssClass, 'class');
@@ -30,11 +30,11 @@ suite('Viewlets', () => {
});
test('Editor Aware ViewletDescriptor API', function () {
let d = new ViewletDescriptor(TestViewlet, 'id', 'name', 'class', 5);
let d = ViewletDescriptor.create(TestViewlet, 'id', 'name', 'class', 5);
assert.strictEqual(d.id, 'id');
assert.strictEqual(d.name, 'name');
d = new ViewletDescriptor(TestViewlet, 'id', 'name', 'class', 5);
d = ViewletDescriptor.create(TestViewlet, 'id', 'name', 'class', 5);
assert.strictEqual(d.id, 'id');
assert.strictEqual(d.name, 'name');
});
@@ -45,7 +45,7 @@ suite('Viewlets', () => {
assert(Types.isFunction(Platform.Registry.as<ViewletRegistry>(Extensions.Viewlets).getViewlets));
let oldCount = Platform.Registry.as<ViewletRegistry>(Extensions.Viewlets).getViewlets().length;
let d = new ViewletDescriptor(TestViewlet, 'reg-test-id', 'name');
let d = ViewletDescriptor.create(TestViewlet, 'reg-test-id', 'name');
Platform.Registry.as<ViewletRegistry>(Extensions.Viewlets).registerViewlet(d);
assert(d === Platform.Registry.as<ViewletRegistry>(Extensions.Viewlets).getViewlet('reg-test-id'));