Skip to content

Commit

Permalink
Rebase against the upstream df9171e
Browse files Browse the repository at this point in the history
vscode-upstream-sha1: df9171e
  • Loading branch information
Eclipse Che Sync committed Sep 7, 2023
2 parents 2ff451e + df9171e commit fc445db
Show file tree
Hide file tree
Showing 7 changed files with 44 additions and 26 deletions.
2 changes: 1 addition & 1 deletion code/.vscode/notebooks/api.github-issues
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
{
"kind": 2,
"language": "github-issues",
"value": "$repo=repo:microsoft/vscode\n$milestone=milestone:\"August 2023\""
"value": "$repo=repo:microsoft/vscode\n$milestone=milestone:\"September 2023\""
},
{
"kind": 1,
Expand Down
2 changes: 1 addition & 1 deletion code/.vscode/notebooks/my-work.github-issues
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
{
"kind": 2,
"language": "github-issues",
"value": "// list of repos we work in\n$repos=repo:microsoft/vscode repo:microsoft/vscode-remote-release repo:microsoft/vscode-js-debug repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-github-issue-notebooks repo:microsoft/vscode-internalbacklog repo:microsoft/vscode-dev repo:microsoft/vscode-unpkg repo:microsoft/vscode-references-view repo:microsoft/vscode-anycode repo:microsoft/vscode-hexeditor repo:microsoft/vscode-extension-telemetry repo:microsoft/vscode-livepreview repo:microsoft/vscode-remotehub repo:microsoft/vscode-settings-sync-server repo:microsoft/vscode-remote-repositories-github repo:microsoft/monaco-editor repo:microsoft/vscode-vsce repo:microsoft/vscode-dev-chrome-launcher repo:microsoft/vscode-emmet-helper repo:microsoft/vscode-python repo:microsoft/vscode-jupyter repo:microsoft/vscode-jupyter-internal repo:microsoft/vscode-github-issue-notebooks repo:microsoft/vscode-l10n repo:microsoft/vscode-remote-tunnels repo:microsoft/vscode-markdown-tm-grammar repo:microsoft/vscode-markdown-languageservice repo:microsoft/vscode-copilot repo:microsoft/vscode-copilot-release\n\n// current milestone name\n$milestone=milestone:\"August 2023\""
"value": "// list of repos we work in\n$repos=repo:microsoft/vscode repo:microsoft/vscode-remote-release repo:microsoft/vscode-js-debug repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-github-issue-notebooks repo:microsoft/vscode-internalbacklog repo:microsoft/vscode-dev repo:microsoft/vscode-unpkg repo:microsoft/vscode-references-view repo:microsoft/vscode-anycode repo:microsoft/vscode-hexeditor repo:microsoft/vscode-extension-telemetry repo:microsoft/vscode-livepreview repo:microsoft/vscode-remotehub repo:microsoft/vscode-settings-sync-server repo:microsoft/vscode-remote-repositories-github repo:microsoft/monaco-editor repo:microsoft/vscode-vsce repo:microsoft/vscode-dev-chrome-launcher repo:microsoft/vscode-emmet-helper repo:microsoft/vscode-python repo:microsoft/vscode-jupyter repo:microsoft/vscode-jupyter-internal repo:microsoft/vscode-github-issue-notebooks repo:microsoft/vscode-l10n repo:microsoft/vscode-remote-tunnels repo:microsoft/vscode-markdown-tm-grammar repo:microsoft/vscode-markdown-languageservice repo:microsoft/vscode-copilot repo:microsoft/vscode-copilot-release\n\n// current milestone name\n$milestone=milestone:\"September 2023\""
},
{
"kind": 1,
Expand Down
21 changes: 12 additions & 9 deletions code/src/vs/editor/test/browser/services/openerService.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import * as assert from 'assert';
import { Disposable } from 'vs/base/common/lifecycle';
import { URI } from 'vs/base/common/uri';
import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils';
import { OpenerService } from 'vs/editor/browser/services/openerService';
import { TestCodeEditorService } from 'vs/editor/test/browser/editorTestServices';
import { CommandsRegistry, ICommandService } from 'vs/platform/commands/common/commands';
Expand Down Expand Up @@ -33,6 +34,8 @@ suite('OpenerService', function () {
lastCommand = undefined;
});

const store = ensureNoDisposablesAreLeakedInTestSuite();

test('delegate to editorService, scheme:///fff', async function () {
const openerService = new OpenerService(editorService, NullCommandService);
await openerService.open(URI.parse('another:///somepath'));
Expand Down Expand Up @@ -83,19 +86,19 @@ suite('OpenerService', function () {
const openerService = new OpenerService(editorService, commandService);

const id = `aCommand${Math.random()}`;
CommandsRegistry.registerCommand(id, function () { });
store.add(CommandsRegistry.registerCommand(id, function () { }));

assert.strictEqual(lastCommand, undefined);
await openerService.open(URI.parse('command:' + id));
assert.strictEqual(lastCommand, undefined);
});


test('delegate to commandsService, command:someid', async function () {
test('delegate to commandsService, command:someid, 2', async function () {
const openerService = new OpenerService(editorService, commandService);

const id = `aCommand${Math.random()}`;
CommandsRegistry.registerCommand(id, function () { });
store.add(CommandsRegistry.registerCommand(id, function () { }));

await openerService.open(URI.parse('command:' + id).with({ query: '\"123\"' }), { allowCommands: true });
assert.strictEqual(lastCommand!.id, id);
Expand All @@ -121,7 +124,7 @@ suite('OpenerService', function () {
test('links are protected by validators', async function () {
const openerService = new OpenerService(editorService, commandService);

openerService.registerValidator({ shouldOpen: () => Promise.resolve(false) });
store.add(openerService.registerValidator({ shouldOpen: () => Promise.resolve(false) }));

const httpResult = await openerService.open(URI.parse('https://www.microsoft.com'));
const httpsResult = await openerService.open(URI.parse('https://www.microsoft.com'));
Expand All @@ -132,15 +135,15 @@ suite('OpenerService', function () {
test('links validated by validators go to openers', async function () {
const openerService = new OpenerService(editorService, commandService);

openerService.registerValidator({ shouldOpen: () => Promise.resolve(true) });
store.add(openerService.registerValidator({ shouldOpen: () => Promise.resolve(true) }));

let openCount = 0;
openerService.registerOpener({
store.add(openerService.registerOpener({
open: (resource: URI) => {
openCount++;
return Promise.resolve(true);
}
});
}));

await openerService.open(URI.parse('http://microsoft.com'));
assert.strictEqual(openCount, 1);
Expand All @@ -151,13 +154,13 @@ suite('OpenerService', function () {
test('links aren\'t manipulated before being passed to validator: PR #118226', async function () {
const openerService = new OpenerService(editorService, commandService);

openerService.registerValidator({
store.add(openerService.registerValidator({
shouldOpen: (resource) => {
// We don't want it to convert strings into URIs
assert.strictEqual(resource instanceof URI, false);
return Promise.resolve(false);
}
});
}));
await openerService.open('https://wwww.microsoft.com');
await openerService.open('https://www.microsoft.com??params=CountryCode%3DUSA%26Name%3Dvscode"');
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import { mock } from 'vs/base/test/common/mock';
import { IFileService, FileSystemProviderCapabilities } from 'vs/platform/files/common/files';
import { URI } from 'vs/base/common/uri';
import { Event } from 'vs/base/common/event';
import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils';

suite('URI Identity', function () {

Expand Down Expand Up @@ -38,6 +39,12 @@ suite('URI Identity', function () {
])));
});

teardown(function () {
_service.dispose();
});

ensureNoDisposablesAreLeakedInTestSuite();

function assertCanonical(input: URI, expected: URI, service: UriIdentityService = _service) {
const actual = service.asCanonicalUri(input);
assert.strictEqual(actual.toString(), expected.toString());
Expand Down
31 changes: 19 additions & 12 deletions code/src/vs/workbench/api/browser/mainThreadTreeViews.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/

import { Disposable } from 'vs/base/common/lifecycle';
import { Disposable, DisposableStore } from 'vs/base/common/lifecycle';
import { ExtHostContext, MainThreadTreeViewsShape, ExtHostTreeViewsShape, MainContext, CheckboxUpdate } from 'vs/workbench/api/common/extHost.protocol';
import { ITreeViewDataProvider, ITreeItem, IViewsService, ITreeView, IViewsRegistry, ITreeViewDescriptor, IRevealOptions, Extensions, ResolvableTreeItem, ITreeViewDragAndDropController, IViewBadge, NoTreeViewError } from 'vs/workbench/common/views';
import { extHostNamedCustomer, IExtHostContext } from 'vs/workbench/services/extensions/common/extHostCustomers';
Expand All @@ -24,7 +24,7 @@ import { IMarkdownString } from 'vs/base/common/htmlContent';
export class MainThreadTreeViews extends Disposable implements MainThreadTreeViewsShape {

private readonly _proxy: ExtHostTreeViewsShape;
private readonly _dataProviders: Map<string, TreeViewDataProvider> = new Map<string, TreeViewDataProvider>();
private readonly _dataProviders: Map<string, { dataProvider: TreeViewDataProvider; disposables: DisposableStore }> = new Map<string, { dataProvider: TreeViewDataProvider; disposables: DisposableStore }>();
private readonly _dndControllers = new Map<string, TreeViewDragAndDropController>();

constructor(
Expand All @@ -43,7 +43,9 @@ export class MainThreadTreeViews extends Disposable implements MainThreadTreeVie

this.extensionService.whenInstalledExtensionsRegistered().then(() => {
const dataProvider = new TreeViewDataProvider(treeViewId, this._proxy, this.notificationService);
this._dataProviders.set(treeViewId, dataProvider);
const disposables = new DisposableStore();
this._register(disposables);
this._dataProviders.set(treeViewId, { dataProvider, disposables });
const dndController = (options.hasHandleDrag || options.hasHandleDrop)
? new TreeViewDragAndDropController(treeViewId, options.dropMimeTypes, options.dragMimeTypes, options.hasHandleDrag, this._proxy) : undefined;
const viewer = this.getTreeView(treeViewId);
Expand All @@ -58,7 +60,7 @@ export class MainThreadTreeViews extends Disposable implements MainThreadTreeVie
this._dndControllers.set(treeViewId, dndController);
}
viewer.dataProvider = dataProvider;
this.registerListeners(treeViewId, viewer);
this.registerListeners(treeViewId, viewer, disposables);
this._proxy.$setVisible(treeViewId, viewer.visible);
} else {
this.notificationService.error('No view is registered with id: ' + treeViewId);
Expand All @@ -73,7 +75,7 @@ export class MainThreadTreeViews extends Disposable implements MainThreadTreeVie
.then(() => {
const viewer = this.getTreeView(treeViewId);
if (viewer && itemInfo) {
return this.reveal(viewer, this._dataProviders.get(treeViewId)!, itemInfo.item, itemInfo.parentChain, options);
return this.reveal(viewer, this._dataProviders.get(treeViewId)!.dataProvider, itemInfo.item, itemInfo.parentChain, options);
}
return undefined;
});
Expand All @@ -85,7 +87,7 @@ export class MainThreadTreeViews extends Disposable implements MainThreadTreeVie
const viewer = this.getTreeView(treeViewId);
const dataProvider = this._dataProviders.get(treeViewId);
if (viewer && dataProvider) {
const itemsToRefresh = dataProvider.getItemsToRefresh(itemsToRefreshByHandle);
const itemsToRefresh = dataProvider.dataProvider.getItemsToRefresh(itemsToRefreshByHandle);
return viewer.refresh(itemsToRefresh.length ? itemsToRefresh : undefined);
}
return Promise.resolve();
Expand Down Expand Up @@ -132,6 +134,11 @@ export class MainThreadTreeViews extends Disposable implements MainThreadTreeVie
if (viewer) {
viewer.dataProvider = undefined;
}
const dataProvider = this._dataProviders.get(treeViewId);
if (dataProvider) {
dataProvider.disposables.dispose();
this._dataProviders.delete(treeViewId);
}
}

private async reveal(treeView: ITreeView, dataProvider: TreeViewDataProvider, itemIn: ITreeItem, parentChain: ITreeItem[], options: IRevealOptions): Promise<void> {
Expand Down Expand Up @@ -175,12 +182,12 @@ export class MainThreadTreeViews extends Disposable implements MainThreadTreeVie
}
}

private registerListeners(treeViewId: string, treeView: ITreeView): void {
this._register(treeView.onDidExpandItem(item => this._proxy.$setExpanded(treeViewId, item.handle, true)));
this._register(treeView.onDidCollapseItem(item => this._proxy.$setExpanded(treeViewId, item.handle, false)));
this._register(treeView.onDidChangeSelectionAndFocus(items => this._proxy.$setSelectionAndFocus(treeViewId, items.selection.map(({ handle }) => handle), items.focus.handle)));
this._register(treeView.onDidChangeVisibility(isVisible => this._proxy.$setVisible(treeViewId, isVisible)));
this._register(treeView.onDidChangeCheckboxState(items => {
private registerListeners(treeViewId: string, treeView: ITreeView, disposables: DisposableStore): void {
disposables.add(treeView.onDidExpandItem(item => this._proxy.$setExpanded(treeViewId, item.handle, true)));
disposables.add(treeView.onDidCollapseItem(item => this._proxy.$setExpanded(treeViewId, item.handle, false)));
disposables.add(treeView.onDidChangeSelectionAndFocus(items => this._proxy.$setSelectionAndFocus(treeViewId, items.selection.map(({ handle }) => handle), items.focus.handle)));
disposables.add(treeView.onDidChangeVisibility(isVisible => this._proxy.$setVisible(treeViewId, isVisible)));
disposables.add(treeView.onDidChangeCheckboxState(items => {
this._proxy.$changeCheckboxState(treeViewId, <CheckboxUpdate[]>items.map(item => {
return { treeItemHandle: item.handle, newState: item.checkbox?.isChecked ?? false };
}));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,6 @@ interface IRenderedEditorLabel {

export class NoTabsTitleControl extends TitleControl {

private static readonly HEIGHT = 35;

private titleContainer: HTMLElement | undefined;
private editorLabel: IResourceLabel | undefined;
private activeLabel: IRenderedEditorLabel = Object.create(null);
Expand Down Expand Up @@ -352,7 +350,7 @@ export class NoTabsTitleControl extends TitleControl {

getHeight(): IEditorGroupTitleHeight {
return {
total: NoTabsTitleControl.HEIGHT,
total: this.titleHeight,
offset: 0
};
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import { release, hostname } from 'os';
import { resolveWorkbenchCommonProperties } from 'vs/workbench/services/telemetry/common/workbenchCommonProperties';
import { IStorageService, StorageScope, InMemoryStorageService, StorageTarget } from 'vs/platform/storage/common/storage';
import { timeout } from 'vs/base/common/async';
import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils';

suite('Telemetry - common properties', function () {
const commit: string = (undefined)!;
Expand All @@ -18,6 +19,8 @@ suite('Telemetry - common properties', function () {
testStorageService = new InMemoryStorageService();
});

ensureNoDisposablesAreLeakedInTestSuite();

test('default', function () {
const props = resolveWorkbenchCommonProperties(testStorageService, release(), hostname(), commit, version, 'someMachineId', false, process);
assert.ok('commitHash' in props);
Expand Down

0 comments on commit fc445db

Please sign in to comment.