未验证 提交 ccf1c4b5 编写于 作者: S Sandeep Somavarapu 提交者: GitHub

Merge branch 'master' into sandy081/web-playground/login

{
"name": "code-oss-dev",
"version": "1.50.0",
"distro": "fd69c0b76c1d86e5ea0c8651f87571091fab2c22",
"distro": "74839100ca6a8d7b83f72f92b9de6937e7959849",
"author": {
"name": "Microsoft Corporation"
},
......@@ -71,10 +71,10 @@
"vscode-ripgrep": "^1.9.0",
"vscode-sqlite3": "4.0.10",
"vscode-textmate": "5.2.0",
"xterm": "4.9.0-beta.32",
"xterm-addon-search": "0.7.0",
"xterm-addon-unicode11": "0.2.0",
"xterm-addon-webgl": "0.9.0-beta.4",
"xterm": "4.10.0-beta.4",
"xterm-addon-search": "0.8.0-beta.3",
"xterm-addon-unicode11": "0.3.0-beta.3",
"xterm-addon-webgl": "0.10.0-beta.1",
"yauzl": "^2.9.2",
"yazl": "^2.4.3"
},
......@@ -193,4 +193,4 @@
"windows-mutex": "0.3.0",
"windows-process-tree": "0.2.4"
}
}
\ No newline at end of file
}
......@@ -91,7 +91,7 @@
},
{
"name": "ms-vscode.js-debug",
"version": "1.49.7",
"version": "1.49.8",
"repo": "https://github.com/Microsoft/vscode-js-debug",
"metadata": {
"id": "25629058-ddac-4e17-abba-74678e126c5d",
......
......@@ -20,10 +20,10 @@
"vscode-proxy-agent": "^0.5.2",
"vscode-ripgrep": "^1.9.0",
"vscode-textmate": "5.2.0",
"xterm": "4.9.0-beta.32",
"xterm-addon-search": "0.7.0",
"xterm-addon-unicode11": "0.2.0",
"xterm-addon-webgl": "0.9.0-beta.4",
"xterm": "4.10.0-beta.4",
"xterm-addon-search": "0.8.0-beta.3",
"xterm-addon-unicode11": "0.3.0-beta.3",
"xterm-addon-webgl": "0.10.0-beta.1",
"yauzl": "^2.9.2",
"yazl": "^2.4.3"
},
......
......@@ -7,9 +7,9 @@
"semver-umd": "^5.5.7",
"vscode-oniguruma": "1.3.1",
"vscode-textmate": "5.2.0",
"xterm": "4.9.0-beta.32",
"xterm-addon-search": "0.7.0",
"xterm-addon-unicode11": "0.2.0",
"xterm-addon-webgl": "0.9.0-beta.4"
"xterm": "4.10.0-beta.4",
"xterm-addon-search": "0.8.0-beta.3",
"xterm-addon-unicode11": "0.3.0-beta.3",
"xterm-addon-webgl": "0.10.0-beta.1"
}
}
......@@ -27,22 +27,22 @@ vscode-textmate@5.2.0:
resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-5.2.0.tgz#01f01760a391e8222fe4f33fbccbd1ad71aed74e"
integrity sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==
xterm-addon-search@0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/xterm-addon-search/-/xterm-addon-search-0.7.0.tgz#c929d3e5cbb335e82bff72f158ea82936d9cd4ef"
integrity sha512-6060evmJJ+tZcjnx33FXaeEHLpuXEa7l9UzUsYfMlCKbu88AbE+5LJocTKCHYd71cwCwb9pjmv/G1o9Rf9Zbcg==
xterm-addon-unicode11@0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/xterm-addon-unicode11/-/xterm-addon-unicode11-0.2.0.tgz#9ed0c482b353908bba27778893ca80823382737c"
integrity sha512-rjFDItPc/IDoSiEnoDFwKroNwLD/7t9vYKENjrcKVZg5tgJuuUj8D4rZtP6iVCjSB1LTLYmUs4L/EmCqIyLR/Q==
xterm-addon-webgl@0.9.0-beta.4:
version "0.9.0-beta.4"
resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.9.0-beta.4.tgz#5f5fde50db5c06b116471bcf56ad9930884b36fa"
integrity sha512-GuCvF7Eg1nKLX6zUbJLkt5cqeeccUjf/G6fugCfrkR0EWWC6Ik5mEsEOs5UWm9vvY2kX9t16BdCrgqp8KJegEg==
xterm@4.9.0-beta.32:
version "4.9.0-beta.32"
resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.9.0-beta.32.tgz#d1243d3be211cc06aad3418e696e4eced995c20c"
integrity sha512-jloHNBnj6XRJt+oPkapvrXJZVsYq6se/PEgzErl0iZn9qzSB3jmWE4byumoEjXJR6EgU5ZOmNljeeEDA9jO/jA==
xterm-addon-search@0.8.0-beta.3:
version "0.8.0-beta.3"
resolved "https://registry.yarnpkg.com/xterm-addon-search/-/xterm-addon-search-0.8.0-beta.3.tgz#c6c7e36a03706bd43d8bba383511acf9e435aed0"
integrity sha512-EZP97KJIJ4KGQaOPYiiOaRRJst6LOgeEFoQL46WcBl5EWH9pH8qfrv0BHAJ8+6nBV2B9u5M6rzxO1GvLLec19w==
xterm-addon-unicode11@0.3.0-beta.3:
version "0.3.0-beta.3"
resolved "https://registry.yarnpkg.com/xterm-addon-unicode11/-/xterm-addon-unicode11-0.3.0-beta.3.tgz#70af2dfb67809258edb62c19e2861f7ce5ccf5cd"
integrity sha512-vaYopnOjn19wCLDCyIWPWLwKR7CvLPxB5YZ3CAxt9qL05o3symxIJJJC0DuCa4GaGKVjNc7EmjRCs5bsJ2O1tw==
xterm-addon-webgl@0.10.0-beta.1:
version "0.10.0-beta.1"
resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.10.0-beta.1.tgz#e0bf964945a9aa8fc18318ddbd32e56ec99c219e"
integrity sha512-XNZMrmiyFaz3XiPq+LqF0qn2QHpUEwuk+cG53JwpJHnWo3dd2jxoIgHFQUcrnvHIVPZMbTKySIwLCCC9uQVl7Q==
xterm@4.10.0-beta.4:
version "4.10.0-beta.4"
resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.10.0-beta.4.tgz#95efce7a40ec582101ec9777f4ccc6e68e95185e"
integrity sha512-q/yRy2nn4mp1jWZe218TJwlKjXCIr6h28Kw0JMB+lcTeU+MebZ3TrHqlrNVnB+UJfFDOpkw0qfKYfRoV8G/hXA==
......@@ -435,25 +435,25 @@ vscode-windows-registry@1.0.2:
resolved "https://registry.yarnpkg.com/vscode-windows-registry/-/vscode-windows-registry-1.0.2.tgz#b863e704a6a69c50b3098a55fbddbe595b0c124a"
integrity sha512-/CLLvuOSM2Vme2z6aNyB+4Omd7hDxpf4Thrt8ImxnXeQtxzel2bClJpFQvQqK/s4oaXlkBKS7LqVLeZM+uSVIA==
xterm-addon-search@0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/xterm-addon-search/-/xterm-addon-search-0.7.0.tgz#c929d3e5cbb335e82bff72f158ea82936d9cd4ef"
integrity sha512-6060evmJJ+tZcjnx33FXaeEHLpuXEa7l9UzUsYfMlCKbu88AbE+5LJocTKCHYd71cwCwb9pjmv/G1o9Rf9Zbcg==
xterm-addon-unicode11@0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/xterm-addon-unicode11/-/xterm-addon-unicode11-0.2.0.tgz#9ed0c482b353908bba27778893ca80823382737c"
integrity sha512-rjFDItPc/IDoSiEnoDFwKroNwLD/7t9vYKENjrcKVZg5tgJuuUj8D4rZtP6iVCjSB1LTLYmUs4L/EmCqIyLR/Q==
xterm-addon-webgl@0.9.0-beta.4:
version "0.9.0-beta.4"
resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.9.0-beta.4.tgz#5f5fde50db5c06b116471bcf56ad9930884b36fa"
integrity sha512-GuCvF7Eg1nKLX6zUbJLkt5cqeeccUjf/G6fugCfrkR0EWWC6Ik5mEsEOs5UWm9vvY2kX9t16BdCrgqp8KJegEg==
xterm@4.9.0-beta.32:
version "4.9.0-beta.32"
resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.9.0-beta.32.tgz#d1243d3be211cc06aad3418e696e4eced995c20c"
integrity sha512-jloHNBnj6XRJt+oPkapvrXJZVsYq6se/PEgzErl0iZn9qzSB3jmWE4byumoEjXJR6EgU5ZOmNljeeEDA9jO/jA==
xterm-addon-search@0.8.0-beta.3:
version "0.8.0-beta.3"
resolved "https://registry.yarnpkg.com/xterm-addon-search/-/xterm-addon-search-0.8.0-beta.3.tgz#c6c7e36a03706bd43d8bba383511acf9e435aed0"
integrity sha512-EZP97KJIJ4KGQaOPYiiOaRRJst6LOgeEFoQL46WcBl5EWH9pH8qfrv0BHAJ8+6nBV2B9u5M6rzxO1GvLLec19w==
xterm-addon-unicode11@0.3.0-beta.3:
version "0.3.0-beta.3"
resolved "https://registry.yarnpkg.com/xterm-addon-unicode11/-/xterm-addon-unicode11-0.3.0-beta.3.tgz#70af2dfb67809258edb62c19e2861f7ce5ccf5cd"
integrity sha512-vaYopnOjn19wCLDCyIWPWLwKR7CvLPxB5YZ3CAxt9qL05o3symxIJJJC0DuCa4GaGKVjNc7EmjRCs5bsJ2O1tw==
xterm-addon-webgl@0.10.0-beta.1:
version "0.10.0-beta.1"
resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.10.0-beta.1.tgz#e0bf964945a9aa8fc18318ddbd32e56ec99c219e"
integrity sha512-XNZMrmiyFaz3XiPq+LqF0qn2QHpUEwuk+cG53JwpJHnWo3dd2jxoIgHFQUcrnvHIVPZMbTKySIwLCCC9uQVl7Q==
xterm@4.10.0-beta.4:
version "4.10.0-beta.4"
resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.10.0-beta.4.tgz#95efce7a40ec582101ec9777f4ccc6e68e95185e"
integrity sha512-q/yRy2nn4mp1jWZe218TJwlKjXCIr6h28Kw0JMB+lcTeU+MebZ3TrHqlrNVnB+UJfFDOpkw0qfKYfRoV8G/hXA==
yauzl@^2.9.2:
version "2.10.0"
......
......@@ -113,18 +113,6 @@ export function mixin(destination: any, source: any, overwrite: boolean = true):
return destination;
}
/**
* @deprecated ES6
*/
export function assign<T>(destination: T): T;
export function assign<T, U>(destination: T, u: U): T & U;
export function assign<T, U, V>(destination: T, u: U, v: V): T & U & V;
export function assign<T, U, V, W>(destination: T, u: U, v: V, w: W): T & U & V & W;
export function assign(destination: any, ...sources: any[]): any {
sources.forEach(source => Object.keys(source).forEach(key => destination[key] = source[key]));
return destination;
}
export function equals(one: any, other: any): boolean {
if (one === other) {
return true;
......
......@@ -12,7 +12,6 @@ import { IMatch } from 'vs/base/common/filters';
import { matchesFuzzyCodiconAware, parseCodicons } from 'vs/base/common/codicon';
import { compareAnything } from 'vs/base/common/comparers';
import { Emitter, Event } from 'vs/base/common/event';
import { assign } from 'vs/base/common/objects';
import { KeyCode } from 'vs/base/common/keyCodes';
import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
import { IconLabel, IIconLabelValueOptions } from 'vs/base/browser/ui/iconLabel/iconLabel';
......@@ -73,7 +72,7 @@ class ListElement implements IListElement, IDisposable {
fireButtonTriggered!: (event: IQuickPickItemButtonEvent<IQuickPickItem>) => void;
constructor(init: IListElement) {
assign(this, init);
Object.assign(this, init);
}
dispose() {
......
......@@ -6,7 +6,6 @@
import { localize } from 'vs/nls';
import * as os from 'os';
import product from 'vs/platform/product/common/product';
import * as objects from 'vs/base/common/objects';
import { parseArgs, OPTIONS } from 'vs/platform/environment/node/argv';
import { ICommonIssueService, IssueReporterData, IssueReporterFeatures, ProcessExplorerData } from 'vs/platform/issue/common/issue';
import { BrowserWindow, ipcMain, screen, IpcMainEvent, Display, shell } from 'electron';
......@@ -442,7 +441,7 @@ export class IssueMainService implements ICommonIssueService {
function toLauchUrl<T>(pathToHtml: string, windowConfiguration: T): string {
const environment = parseArgs(process.argv, OPTIONS);
const config = objects.assign(environment, windowConfiguration);
const config = Object.assign(environment, windowConfiguration);
for (const keyValue of Object.keys(config)) {
const key = keyValue as keyof typeof config;
if (config[key] === undefined || config[key] === null || config[key] === '') {
......
......@@ -2255,5 +2255,17 @@ declare module 'vscode' {
}
//#endregion
//#region https://github.com/microsoft/vscode/issues/105667
export interface TreeView<T> {
/**
* An optional human-readable description that will be rendered in the title of the view.
* Setting the title description to null, undefined, or empty string will remove the title description from the view.
*/
description?: string | undefined;
}
//#endregion
}
......@@ -86,12 +86,13 @@ export class MainThreadTreeViews extends Disposable implements MainThreadTreeVie
}
}
$setTitle(treeViewId: string, title: string): void {
this.logService.trace('MainThreadTreeViews#$setTitle', treeViewId, title);
$setTitle(treeViewId: string, title: string, description: string | undefined): void {
this.logService.trace('MainThreadTreeViews#$setTitle', treeViewId, title, description);
const viewer = this.getTreeView(treeViewId);
if (viewer) {
viewer.title = title;
viewer.description = description;
}
}
......
......@@ -288,7 +288,7 @@ export interface MainThreadTreeViewsShape extends IDisposable {
$refresh(treeViewId: string, itemsToRefresh?: { [treeItemHandle: string]: ITreeItem; }): Promise<void>;
$reveal(treeViewId: string, treeItem: ITreeItem, parentChain: ITreeItem[], options: IRevealOptions): Promise<void>;
$setMessage(treeViewId: string, message: string): void;
$setTitle(treeViewId: string, title: string): void;
$setTitle(treeViewId: string, title: string, description: string | undefined): void;
}
export interface MainThreadDownloadServiceShape extends IDisposable {
......
......@@ -101,6 +101,14 @@ export class ExtHostTreeViews implements ExtHostTreeViewsShape {
set title(title: string) {
treeView.title = title;
},
get description() {
checkProposedApiEnabled(extension);
return treeView.description;
},
set description(description: string | undefined) {
checkProposedApiEnabled(extension);
treeView.description = description;
},
reveal: (element: T, options?: IRevealOptions): Promise<void> => {
return treeView.reveal(element, options);
},
......@@ -318,7 +326,17 @@ class ExtHostTreeView<T> extends Disposable {
set title(title: string) {
this._title = title;
this.proxy.$setTitle(this.viewId, title);
this.proxy.$setTitle(this.viewId, title, this._description);
}
private _description: string | undefined;
get description(): string | undefined {
return this._description;
}
set description(description: string | undefined) {
this._description = description;
this.proxy.$setTitle(this.viewId, this._title, description);
}
setExpanded(treeItemHandle: TreeItemHandle, expanded: boolean): void {
......
......@@ -93,7 +93,7 @@ class ExtHostWebviewView extends Disposable implements vscode.WebviewView {
public get viewType(): string { return this.#viewType; }
/* internal */ _setVisible(visible: boolean) {
if (visible === this.#isVisible) {
if (visible === this.#isVisible || this.#isDisposed) {
return;
}
......
......@@ -39,6 +39,7 @@ export class TreeViewPane extends ViewPane {
this.treeView = treeView;
this._register(this.treeView.onDidChangeActions(() => this.updateActions(), this));
this._register(this.treeView.onDidChangeTitle((newTitle) => this.updateTitle(newTitle)));
this._register(this.treeView.onDidChangeDescription((newDescription) => this.updateTitleDescription(newDescription)));
this._register(toDisposable(() => this.treeView.setVisibility(false)));
this._register(this.onDidChangeBodyVisibility(() => this.updateTreeVisibility()));
this._register(this.treeView.onDidChangeWelcomeState(() => this._onDidChangeViewWelcomeState.fire()));
......
......@@ -554,6 +554,8 @@ export interface ITreeView extends IDisposable {
title: string;
description: string | undefined;
readonly visible: boolean;
readonly onDidExpandItem: Event<ITreeItem>;
......@@ -568,6 +570,8 @@ export interface ITreeView extends IDisposable {
readonly onDidChangeTitle: Event<string>;
readonly onDidChangeDescription: Event<string | undefined>;
readonly onDidChangeWelcomeState: Event<void>;
refresh(treeItems?: ITreeItem[]): Promise<void>;
......
......@@ -10,7 +10,6 @@ import { Disposable } from 'vs/base/common/lifecycle';
import { URI } from 'vs/base/common/uri';
import { Range, IRange } from 'vs/editor/common/core/range';
import { CancellationToken } from 'vs/base/common/cancellation';
import { assign } from 'vs/base/common/objects';
import { ICommentThreadChangedEvent } from 'vs/workbench/contrib/comments/common/commentModel';
import { MainThreadCommentController } from 'vs/workbench/api/browser/mainThreadComments';
import { CommentMenus } from 'vs/workbench/contrib/comments/browser/commentMenus';
......@@ -166,7 +165,7 @@ export class CommentService extends Disposable implements ICommentService {
}
updateComments(ownerId: string, event: CommentThreadChangedEvent): void {
const evt: ICommentThreadChangedEvent = assign({}, event, { owner: ownerId });
const evt: ICommentThreadChangedEvent = Object.assign({}, event, { owner: ownerId });
this._onDidUpdateCommentThreads.fire(evt);
}
......
......@@ -22,7 +22,6 @@ import { NullTelemetryService } from 'vs/platform/telemetry/common/telemetryUtil
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
import { TestConfigurationService } from 'vs/platform/configuration/test/common/testConfigurationService';
import { ILifecycleService } from 'vs/platform/lifecycle/common/lifecycle';
import { assign } from 'vs/base/common/objects';
import { URI } from 'vs/base/common/uri';
import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage';
import { getGalleryExtensionId } from 'vs/platform/extensionManagement/common/extensionManagementUtil';
......@@ -46,8 +45,8 @@ let experimentData: { [i: string]: any; } = {
const local = aLocalExtension('installedExtension1', { version: '1.0.0' });
function aLocalExtension(name: string = 'someext', manifest: any = {}, properties: any = {}): ILocalExtension {
manifest = assign({ name, publisher: 'pub', version: '1.0.0' }, manifest);
properties = assign({
manifest = Object.assign({ name, publisher: 'pub', version: '1.0.0' }, manifest);
properties = Object.assign({
type: ExtensionType.User,
location: URI.file(`pub.${name}`),
identifier: { id: getGalleryExtensionId(manifest.publisher, manifest.name), uuid: undefined },
......
......@@ -9,7 +9,6 @@ import * as processes from 'vs/base/node/processes';
import * as nls from 'vs/nls';
import * as pfs from 'vs/base/node/pfs';
import * as env from 'vs/base/common/platform';
import { assign } from 'vs/base/common/objects';
import { IExternalTerminalService, IExternalTerminalConfiguration, IExternalTerminalSettings } from 'vs/workbench/contrib/externalTerminal/common/externalTerminal';
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
import { getPathFromAmdModule } from 'vs/base/common/amd';
......@@ -49,7 +48,7 @@ export class WindowsExternalTerminalService implements IExternalTerminalService
];
// merge environment variables into a copy of the process.env
const env = assign({}, process.env, envVars);
const env = Object.assign({}, process.env, envVars);
// delete environment variables that have a null value
Object.keys(env).filter(v => env[v] === null).forEach(key => delete env[key]);
......@@ -251,7 +250,7 @@ export class LinuxExternalTerminalService implements IExternalTerminalService {
termArgs.push(`''${bashCommand}''`); // wrapping argument in two sets of ' because node is so "friendly" that it removes one set...
// merge environment variables into a copy of the process.env
const env = assign({}, process.env, envVars);
const env = Object.assign({}, process.env, envVars);
// delete environment variables that have a null value
Object.keys(env).filter(v => env[v] === null).forEach(key => delete env[key]);
......
......@@ -446,12 +446,20 @@ class CellContentProvider implements ITextModelContentProvider {
if (!data) {
return null;
}
const info = getFirstNotebookInfo(this._notebookService, data.notebook);
if (!info) {
const documentAlreadyOpened = this._notebookService.listNotebookDocuments().find(document => document.uri.toString() === data.notebook.toString());
let viewType = documentAlreadyOpened?.viewType;
if (!viewType) {
const info = getFirstNotebookInfo(this._notebookService, data.notebook);
viewType = info?.id;
}
if (!viewType) {
return null;
}
const ref = await this._notebookModelResolverService.resolve(data.notebook, info.id);
const ref = await this._notebookModelResolverService.resolve(data.notebook, viewType);
let result: ITextModel | null = null;
for (const cell of ref.object.notebook.cells) {
......
......@@ -7,7 +7,6 @@ import { Action } from 'vs/base/common/actions';
import { distinct } from 'vs/base/common/arrays';
import { onUnexpectedError } from 'vs/base/common/errors';
import { KeyCode, KeyMod } from 'vs/base/common/keyCodes';
import * as objects from 'vs/base/common/objects';
import * as platform from 'vs/base/common/platform';
import { dirname } from 'vs/base/common/resources';
import { URI } from 'vs/base/common/uri';
......@@ -614,14 +613,14 @@ MenuRegistry.appendMenuItem(MenuId.MenubarEditMenu, {
if (platform.isMacintosh) {
// Register this with a more restrictive `when` on mac to avoid conflict with "copy path"
KeybindingsRegistry.registerCommandAndKeybindingRule(objects.assign({
KeybindingsRegistry.registerCommandAndKeybindingRule(Object.assign({
id: Constants.ToggleCaseSensitiveCommandId,
weight: KeybindingWeight.WorkbenchContrib,
when: ContextKeyExpr.and(Constants.SearchViewFocusedKey, Constants.FileMatchOrFolderMatchFocusKey.toNegated()),
handler: toggleCaseSensitiveCommand
}, ToggleCaseSensitiveKeybinding));
} else {
KeybindingsRegistry.registerCommandAndKeybindingRule(objects.assign({
KeybindingsRegistry.registerCommandAndKeybindingRule(Object.assign({
id: Constants.ToggleCaseSensitiveCommandId,
weight: KeybindingWeight.WorkbenchContrib,
when: Constants.SearchViewFocusedKey,
......@@ -629,14 +628,14 @@ if (platform.isMacintosh) {
}, ToggleCaseSensitiveKeybinding));
}
KeybindingsRegistry.registerCommandAndKeybindingRule(objects.assign({
KeybindingsRegistry.registerCommandAndKeybindingRule(Object.assign({
id: Constants.ToggleWholeWordCommandId,
weight: KeybindingWeight.WorkbenchContrib,
when: Constants.SearchViewFocusedKey,
handler: toggleWholeWordCommand
}, ToggleWholeWordKeybinding));
KeybindingsRegistry.registerCommandAndKeybindingRule(objects.assign({
KeybindingsRegistry.registerCommandAndKeybindingRule(Object.assign({
id: Constants.ToggleRegexCommandId,
weight: KeybindingWeight.WorkbenchContrib,
when: Constants.SearchViewFocusedKey,
......
......@@ -5,7 +5,7 @@
import { defaultGenerator } from 'vs/base/common/idGenerator';
import { IFileQuery } from 'vs/workbench/services/search/common/search';
import { assign, equals } from 'vs/base/common/objects';
import { equals } from 'vs/base/common/objects';
enum LoadingPhase {
Created = 1,
......@@ -50,8 +50,8 @@ export class FileQueryCacheState {
private previousCacheState: FileQueryCacheState | undefined
) {
if (this.previousCacheState) {
const current = assign({}, this.query, { cacheKey: null });
const previous = assign({}, this.previousCacheState.query, { cacheKey: null });
const current = Object.assign({}, this.query, { cacheKey: null });
const previous = Object.assign({}, this.previousCacheState.query, { cacheKey: null });
if (!equals(current, previous)) {
this.previousCacheState.dispose();
this.previousCacheState = undefined;
......
......@@ -10,7 +10,6 @@ import { Emitter, Event } from 'vs/base/common/event';
import { getBaseLabel } from 'vs/base/common/labels';
import { Disposable, IDisposable, DisposableStore } from 'vs/base/common/lifecycle';
import { ResourceMap, TernarySearchTree } from 'vs/base/common/map';
import * as objects from 'vs/base/common/objects';
import { lcut } from 'vs/base/common/strings';
import { URI } from 'vs/base/common/uri';
import { Range } from 'vs/editor/common/core/range';
......@@ -1102,7 +1101,7 @@ export class SearchModel extends Disposable {
this._searchResult.add(this._resultQueue);
this._resultQueue = [];
const options: IPatternInfo = objects.assign({}, this._searchQuery.contentPattern);
const options: IPatternInfo = Object.assign({}, this._searchQuery.contentPattern);
delete (options as any).pattern;
const stats = completed && completed.stats as ITextSearchStats;
......
......@@ -5,7 +5,6 @@
import * as assert from 'assert';
import * as errors from 'vs/base/common/errors';
import * as objects from 'vs/base/common/objects';
import { DeferredPromise } from 'vs/base/test/common/utils';
import { QueryType, IFileQuery } from 'vs/workbench/services/search/common/search';
import { FileQueryCacheState } from 'vs/workbench/contrib/search/common/cacheState';
......@@ -186,7 +185,7 @@ suite('FileQueryCacheState', () => {
public query(cacheKey: string): IFileQuery {
this.cacheKeys.push(cacheKey);
return objects.assign({ cacheKey: cacheKey }, this.baseQuery);
return Object.assign({ cacheKey: cacheKey }, this.baseQuery);
}
public load(query: IFileQuery): Promise<any> {
......
......@@ -4,7 +4,6 @@
*--------------------------------------------------------------------------------------------*/
import { KeyCode, KeyMod } from 'vs/base/common/keyCodes';
import * as objects from 'vs/base/common/objects';
import { extname } from 'vs/base/common/resources';
import { URI } from 'vs/base/common/uri';
import { ServicesAccessor } from 'vs/editor/browser/editorExtensions';
......@@ -146,21 +145,21 @@ Registry.as<IEditorInputFactoryRegistry>(EditorInputExtensions.EditorInputFactor
//#endregion
//#region Commands
KeybindingsRegistry.registerCommandAndKeybindingRule(objects.assign({
KeybindingsRegistry.registerCommandAndKeybindingRule(Object.assign({
id: ToggleSearchEditorCaseSensitiveCommandId,
weight: KeybindingWeight.WorkbenchContrib,
when: ContextKeyExpr.and(SearchEditorConstants.InSearchEditor, SearchConstants.SearchInputBoxFocusedKey),
handler: toggleSearchEditorCaseSensitiveCommand
}, ToggleCaseSensitiveKeybinding));
KeybindingsRegistry.registerCommandAndKeybindingRule(objects.assign({
KeybindingsRegistry.registerCommandAndKeybindingRule(Object.assign({
id: ToggleSearchEditorWholeWordCommandId,
weight: KeybindingWeight.WorkbenchContrib,
when: ContextKeyExpr.and(SearchEditorConstants.InSearchEditor, SearchConstants.SearchInputBoxFocusedKey),
handler: toggleSearchEditorWholeWordCommand
}, ToggleWholeWordKeybinding));
KeybindingsRegistry.registerCommandAndKeybindingRule(objects.assign({
KeybindingsRegistry.registerCommandAndKeybindingRule(Object.assign({
id: ToggleSearchEditorRegexCommandId,
weight: KeybindingWeight.WorkbenchContrib,
when: ContextKeyExpr.and(SearchEditorConstants.InSearchEditor, SearchConstants.SearchInputBoxFocusedKey),
......
......@@ -100,6 +100,9 @@ export class TreeView extends Disposable implements ITreeView {
private readonly _onDidChangeTitle: Emitter<string> = this._register(new Emitter<string>());
readonly onDidChangeTitle: Event<string> = this._onDidChangeTitle.event;
private readonly _onDidChangeDescription: Emitter<string | undefined> = this._register(new Emitter<string | undefined>());
readonly onDidChangeDescription: Event<string | undefined> = this._onDidChangeDescription.event;
private readonly _onDidCompleteRefresh: Emitter<void> = this._register(new Emitter<void>());
constructor(
......@@ -220,6 +223,16 @@ export class TreeView extends Disposable implements ITreeView {
this._onDidChangeTitle.fire(this._title);
}
private _description: string | undefined;
get description(): string | undefined {
return this._description;
}
set description(description: string | undefined) {
this._description = description;
this._onDidChangeDescription.fire(this._description);
}
get canSelectMany(): boolean {
return this._canSelectMany;
}
......
......@@ -5,7 +5,6 @@
import 'vs/css!./watermark';
import { Disposable, DisposableStore } from 'vs/base/common/lifecycle';
import { assign } from 'vs/base/common/objects';
import { isMacintosh, OS } from 'vs/base/common/platform';
import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding';
import * as nls from 'vs/nls';
......@@ -44,7 +43,7 @@ const openFolderNonMacOnly: WatermarkEntry = { text: nls.localize('watermark.ope
const openFileOrFolderMacOnly: WatermarkEntry = { text: nls.localize('watermark.openFileFolder', "Open File or Folder"), id: OpenFileFolderAction.ID, mac: true };
const openRecent: WatermarkEntry = { text: nls.localize('watermark.openRecent', "Open Recent"), id: 'workbench.action.openRecent' };
const newUntitledFile: WatermarkEntry = { text: nls.localize('watermark.newUntitledFile', "New Untitled File"), id: NEW_UNTITLED_FILE_COMMAND_ID };
const newUntitledFileMacOnly: WatermarkEntry = assign({ mac: true }, newUntitledFile);
const newUntitledFileMacOnly: WatermarkEntry = Object.assign({ mac: true }, newUntitledFile);
const toggleTerminal: WatermarkEntry = { text: nls.localize({ key: 'watermark.toggleTerminal', comment: ['toggle is a verb here'] }, "Toggle Terminal"), id: TERMINAL_COMMAND_ID.TOGGLE };
const findInFiles: WatermarkEntry = { text: nls.localize('watermark.findInFiles', "Find in Files"), id: FindInFilesActionId };
const startDebugging: WatermarkEntry = { text: nls.localize('watermark.startDebugging', "Start Debugging"), id: StartAction.ID };
......
......@@ -106,6 +106,7 @@ export class DynamicWebviewEditorOverlay extends Disposable implements WebviewOv
const frameRect = element.getBoundingClientRect();
const containerRect = this.container.parentElement.getBoundingClientRect();
this.container.style.position = 'absolute';
this.container.style.overflow = 'hidden';
this.container.style.top = `${frameRect.top - containerRect.top}px`;
this.container.style.left = `${frameRect.left - containerRect.left}px`;
this.container.style.width = `${dimension ? dimension.width : frameRect.width}px`;
......
......@@ -11,7 +11,6 @@ import * as os from 'os';
import * as fs from 'fs';
import * as cp from 'child_process';
import { assign } from 'vs/base/common/objects';
import { endsWith } from 'vs/base/common/strings';
import { IExtHostWorkspaceProvider } from 'vs/workbench/api/common/extHostWorkspace';
import { ExtHostConfigProvider } from 'vs/workbench/api/common/extHostConfiguration';
......@@ -314,20 +313,20 @@ function createPatchedModules(configProvider: ExtHostConfigProvider, resolveProx
return {
http: {
off: assign({}, http, patches(http, resolveProxy, { config: 'off' }, certSetting, true)),
on: assign({}, http, patches(http, resolveProxy, { config: 'on' }, certSetting, true)),
override: assign({}, http, patches(http, resolveProxy, { config: 'override' }, certSetting, true)),
onRequest: assign({}, http, patches(http, resolveProxy, proxySetting, certSetting, true)),
default: assign(http, patches(http, resolveProxy, proxySetting, certSetting, false)) // run last
off: Object.assign({}, http, patches(http, resolveProxy, { config: 'off' }, certSetting, true)),
on: Object.assign({}, http, patches(http, resolveProxy, { config: 'on' }, certSetting, true)),
override: Object.assign({}, http, patches(http, resolveProxy, { config: 'override' }, certSetting, true)),
onRequest: Object.assign({}, http, patches(http, resolveProxy, proxySetting, certSetting, true)),
default: Object.assign(http, patches(http, resolveProxy, proxySetting, certSetting, false)) // run last
} as Record<string, typeof http>,
https: {
off: assign({}, https, patches(https, resolveProxy, { config: 'off' }, certSetting, true)),
on: assign({}, https, patches(https, resolveProxy, { config: 'on' }, certSetting, true)),
override: assign({}, https, patches(https, resolveProxy, { config: 'override' }, certSetting, true)),
onRequest: assign({}, https, patches(https, resolveProxy, proxySetting, certSetting, true)),
default: assign(https, patches(https, resolveProxy, proxySetting, certSetting, false)) // run last
off: Object.assign({}, https, patches(https, resolveProxy, { config: 'off' }, certSetting, true)),
on: Object.assign({}, https, patches(https, resolveProxy, { config: 'on' }, certSetting, true)),
override: Object.assign({}, https, patches(https, resolveProxy, { config: 'override' }, certSetting, true)),
onRequest: Object.assign({}, https, patches(https, resolveProxy, proxySetting, certSetting, true)),
default: Object.assign(https, patches(https, resolveProxy, proxySetting, certSetting, false)) // run last
} as Record<string, typeof https>,
tls: assign(tls, tlsPatches(tls))
tls: Object.assign(tls, tlsPatches(tls))
};
}
......
......@@ -12,7 +12,6 @@ import * as arrays from 'vs/base/common/arrays';
import { toErrorMessage } from 'vs/base/common/errorMessage';
import * as glob from 'vs/base/common/glob';
import * as normalization from 'vs/base/common/normalization';
import * as objects from 'vs/base/common/objects';
import { isEqualOrParent } from 'vs/base/common/extpath';
import * as platform from 'vs/base/common/platform';
import { StopWatch } from 'vs/base/common/stopwatch';
......@@ -83,7 +82,7 @@ export class FileWalker {
this.folderExcludePatterns = new Map<string, AbsoluteAndRelativeParsedExpression>();
config.folderQueries.forEach(folderQuery => {
const folderExcludeExpression: glob.IExpression = objects.assign({}, folderQuery.excludePattern || {}, this.config.excludePattern || {});
const folderExcludeExpression: glob.IExpression = Object.assign({}, folderQuery.excludePattern || {}, this.config.excludePattern || {});
// Add excludes for other root folders
const fqPath = folderQuery.folder.fsPath;
......
......@@ -11,7 +11,6 @@ import { CancellationToken } from 'vs/base/common/cancellation';
import { canceled } from 'vs/base/common/errors';
import { Emitter, Event } from 'vs/base/common/event';
import { compareItemsByFuzzyScore, FuzzyScorerCache, IItemAccessor, prepareQuery } from 'vs/base/common/fuzzyScorer';
import * as objects from 'vs/base/common/objects';
import { basename, dirname, join, sep } from 'vs/base/common/path';
import { StopWatch } from 'vs/base/common/stopwatch';
import { URI, UriComponents } from 'vs/base/common/uri';
......@@ -103,7 +102,7 @@ export class SearchService implements IRawSearchService {
if (config.sortByScore) {
let sortedSearch = this.trySortedSearchFromCache(config, fileProgressCallback, token);
if (!sortedSearch) {
const walkerConfig = config.maxResults ? objects.assign({}, config, { maxResults: null }) : config;
const walkerConfig = config.maxResults ? Object.assign({}, config, { maxResults: null }) : config;
const engine = new EngineClass(walkerConfig);
sortedSearch = this.doSortedSearch(engine, config, progressCallback, fileProgressCallback, token);
}
......
......@@ -7,7 +7,6 @@ import * as cp from 'child_process';
import * as path from 'vs/base/common/path';
import * as glob from 'vs/base/common/glob';
import { normalizeNFD } from 'vs/base/common/normalization';
import * as objects from 'vs/base/common/objects';
import * as extpath from 'vs/base/common/extpath';
import { isMacintosh as isMac } from 'vs/base/common/platform';
import * as strings from 'vs/base/common/strings';
......@@ -92,11 +91,11 @@ export function foldersToRgExcludeGlobs(folderQueries: IFolderQuery[], globalExc
const globArgs: string[] = [];
let siblingClauses: glob.IExpression = {};
folderQueries.forEach(folderQuery => {
const totalExcludePattern = objects.assign({}, folderQuery.excludePattern || {}, globalExclude || {});
const totalExcludePattern = Object.assign({}, folderQuery.excludePattern || {}, globalExclude || {});
const result = globExprsToRgGlobs(totalExcludePattern, absoluteGlobs ? folderQuery.folder.fsPath : undefined, excludesToSkip);
globArgs.push(...result.globArgs);
if (result.siblingClauses) {
siblingClauses = objects.assign(siblingClauses, result.siblingClauses);
siblingClauses = Object.assign(siblingClauses, result.siblingClauses);
}
});
......@@ -106,7 +105,7 @@ export function foldersToRgExcludeGlobs(folderQueries: IFolderQuery[], globalExc
export function foldersToIncludeGlobs(folderQueries: IFolderQuery[], globalInclude?: glob.IExpression, absoluteGlobs = true): string[] {
const globArgs: string[] = [];
folderQueries.forEach(folderQuery => {
const totalIncludePattern = objects.assign({}, globalInclude || {}, folderQuery.includePattern || {});
const totalIncludePattern = Object.assign({}, globalInclude || {}, folderQuery.includePattern || {});
const result = globExprsToRgGlobs(totalIncludePattern, absoluteGlobs ? folderQuery.folder.fsPath : undefined);
globArgs.push(...result.globArgs);
});
......
......@@ -10050,25 +10050,25 @@ xtend@~2.1.1:
dependencies:
object-keys "~0.4.0"
xterm-addon-search@0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/xterm-addon-search/-/xterm-addon-search-0.7.0.tgz#c929d3e5cbb335e82bff72f158ea82936d9cd4ef"
integrity sha512-6060evmJJ+tZcjnx33FXaeEHLpuXEa7l9UzUsYfMlCKbu88AbE+5LJocTKCHYd71cwCwb9pjmv/G1o9Rf9Zbcg==
xterm-addon-unicode11@0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/xterm-addon-unicode11/-/xterm-addon-unicode11-0.2.0.tgz#9ed0c482b353908bba27778893ca80823382737c"
integrity sha512-rjFDItPc/IDoSiEnoDFwKroNwLD/7t9vYKENjrcKVZg5tgJuuUj8D4rZtP6iVCjSB1LTLYmUs4L/EmCqIyLR/Q==
xterm-addon-webgl@0.9.0-beta.4:
version "0.9.0-beta.4"
resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.9.0-beta.4.tgz#5f5fde50db5c06b116471bcf56ad9930884b36fa"
integrity sha512-GuCvF7Eg1nKLX6zUbJLkt5cqeeccUjf/G6fugCfrkR0EWWC6Ik5mEsEOs5UWm9vvY2kX9t16BdCrgqp8KJegEg==
xterm@4.9.0-beta.32:
version "4.9.0-beta.32"
resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.9.0-beta.32.tgz#d1243d3be211cc06aad3418e696e4eced995c20c"
integrity sha512-jloHNBnj6XRJt+oPkapvrXJZVsYq6se/PEgzErl0iZn9qzSB3jmWE4byumoEjXJR6EgU5ZOmNljeeEDA9jO/jA==
xterm-addon-search@0.8.0-beta.3:
version "0.8.0-beta.3"
resolved "https://registry.yarnpkg.com/xterm-addon-search/-/xterm-addon-search-0.8.0-beta.3.tgz#c6c7e36a03706bd43d8bba383511acf9e435aed0"
integrity sha512-EZP97KJIJ4KGQaOPYiiOaRRJst6LOgeEFoQL46WcBl5EWH9pH8qfrv0BHAJ8+6nBV2B9u5M6rzxO1GvLLec19w==
xterm-addon-unicode11@0.3.0-beta.3:
version "0.3.0-beta.3"
resolved "https://registry.yarnpkg.com/xterm-addon-unicode11/-/xterm-addon-unicode11-0.3.0-beta.3.tgz#70af2dfb67809258edb62c19e2861f7ce5ccf5cd"
integrity sha512-vaYopnOjn19wCLDCyIWPWLwKR7CvLPxB5YZ3CAxt9qL05o3symxIJJJC0DuCa4GaGKVjNc7EmjRCs5bsJ2O1tw==
xterm-addon-webgl@0.10.0-beta.1:
version "0.10.0-beta.1"
resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.10.0-beta.1.tgz#e0bf964945a9aa8fc18318ddbd32e56ec99c219e"
integrity sha512-XNZMrmiyFaz3XiPq+LqF0qn2QHpUEwuk+cG53JwpJHnWo3dd2jxoIgHFQUcrnvHIVPZMbTKySIwLCCC9uQVl7Q==
xterm@4.10.0-beta.4:
version "4.10.0-beta.4"
resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.10.0-beta.4.tgz#95efce7a40ec582101ec9777f4ccc6e68e95185e"
integrity sha512-q/yRy2nn4mp1jWZe218TJwlKjXCIr6h28Kw0JMB+lcTeU+MebZ3TrHqlrNVnB+UJfFDOpkw0qfKYfRoV8G/hXA==
y18n@^3.2.1:
version "3.2.1"
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册