Merge VS Code 1.21 source code (#1067)

* Initial VS Code 1.21 file copy with patches

* A few more merges

* Post npm install

* Fix batch of build breaks

* Fix more build breaks

* Fix more build errors

* Fix more build breaks

* Runtime fixes 1

* Get connection dialog working with some todos

* Fix a few packaging issues

* Copy several node_modules to package build to fix loader issues

* Fix breaks from master

* A few more fixes

* Make tests pass

* First pass of license header updates

* Second pass of license header updates

* Fix restore dialog issues

* Remove add additional themes menu items

* fix select box issues where the list doesn't show up

* formatting

* Fix editor dispose issue

* Copy over node modules to correct location on all platforms
This commit is contained in:
Karl Burtram
2018-04-04 15:27:51 -07:00
committed by GitHub
parent 5fba3e31b4
commit dafb780987
9412 changed files with 141255 additions and 98813 deletions

View File

@@ -6,7 +6,6 @@
'use strict';
import * as errors from 'vs/base/common/errors';
import * as platform from 'vs/base/common/platform';
import { Promise, TPromise, ValueCallback, ErrorCallback, ProgressCallback } from 'vs/base/common/winjs.base';
import { CancellationToken, CancellationTokenSource } from 'vs/base/common/cancellation';
import { Disposable, IDisposable } from 'vs/base/common/lifecycle';
@@ -181,7 +180,7 @@ export class Delayer<T> {
private timeout: number;
private completionPromise: Promise;
private onSuccess: ValueCallback;
private task: ITask<T>;
private task: ITask<T | TPromise<T>>;
constructor(public defaultDelay: number) {
this.timeout = null;
@@ -190,7 +189,7 @@ export class Delayer<T> {
this.task = null;
}
trigger(task: ITask<T>, delay: number = this.defaultDelay): TPromise<T> {
trigger(task: ITask<T | TPromise<T>>, delay: number = this.defaultDelay): TPromise<T> {
this.task = task;
this.cancelTimeout();
@@ -255,7 +254,7 @@ export class ThrottledDelayer<T> extends Delayer<TPromise<T>> {
this.throttler = new Throttler();
}
trigger(promiseFactory: ITask<TPromise<T>>, delay?: number): Promise {
trigger(promiseFactory: ITask<TPromise<T>>, delay?: number): TPromise {
return super.trigger(() => this.throttler.queue(promiseFactory), delay);
}
}
@@ -314,6 +313,13 @@ export class ShallowCancelThenPromise<T> extends TPromise<T> {
}
}
/**
* Replacement for `WinJS.Promise.timeout`.
*/
export function timeout(n: number): Promise<void> {
return new Promise(resolve => setTimeout(resolve, n));
}
/**
* Returns a new promise that joins the provided promise. Upon completion of
* the provided promise the provided function will always be called. This
@@ -349,13 +355,14 @@ export function always<T>(promise: TPromise<T>, f: Function): TPromise<T> {
* Runs the provided list of promise factories in sequential order. The returned
* promise will complete to an array of results from each promise.
*/
export function sequence<T>(promiseFactories: ITask<TPromise<T>>[]): TPromise<T[]> {
export function sequence<T>(promiseFactories: ITask<Thenable<T>>[]): TPromise<T[]> {
const results: T[] = [];
// reverse since we start with last element using pop()
promiseFactories = promiseFactories.reverse();
function next(): Promise {
function next(): Thenable<any> {
if (promiseFactories.length) {
return promiseFactories.pop()();
}
@@ -363,7 +370,7 @@ export function sequence<T>(promiseFactories: ITask<TPromise<T>>[]): TPromise<T[
return null;
}
function thenHandler(result: any): Promise {
function thenHandler(result: any): Thenable<any> {
if (result !== undefined && result !== null) {
results.push(result);
}
@@ -517,7 +524,7 @@ export function setDisposableTimeout(handler: Function, timeout: number, ...args
}
export class TimeoutTimer extends Disposable {
private _token: platform.TimeoutToken;
private _token: number;
constructor() {
super();
@@ -531,14 +538,14 @@ export class TimeoutTimer extends Disposable {
cancel(): void {
if (this._token !== -1) {
platform.clearTimeout(this._token);
clearTimeout(this._token);
this._token = -1;
}
}
cancelAndSet(runner: () => void, timeout: number): void {
this.cancel();
this._token = platform.setTimeout(() => {
this._token = setTimeout(() => {
this._token = -1;
runner();
}, timeout);
@@ -549,7 +556,7 @@ export class TimeoutTimer extends Disposable {
// timer is already set
return;
}
this._token = platform.setTimeout(() => {
this._token = setTimeout(() => {
this._token = -1;
runner();
}, timeout);
@@ -558,7 +565,7 @@ export class TimeoutTimer extends Disposable {
export class IntervalTimer extends Disposable {
private _token: platform.IntervalToken;
private _token: number;
constructor() {
super();
@@ -572,14 +579,14 @@ export class IntervalTimer extends Disposable {
cancel(): void {
if (this._token !== -1) {
platform.clearInterval(this._token);
clearInterval(this._token);
this._token = -1;
}
}
cancelAndSet(runner: () => void, interval: number): void {
this.cancel();
this._token = platform.setInterval(() => {
this._token = setInterval(() => {
runner();
}, interval);
}
@@ -587,7 +594,7 @@ export class IntervalTimer extends Disposable {
export class RunOnceScheduler {
private timeoutToken: platform.TimeoutToken;
private timeoutToken: number;
private runner: () => void;
private timeout: number;
private timeoutHandler: () => void;
@@ -612,7 +619,7 @@ export class RunOnceScheduler {
*/
cancel(): void {
if (this.isScheduled()) {
platform.clearTimeout(this.timeoutToken);
clearTimeout(this.timeoutToken);
this.timeoutToken = -1;
}
}
@@ -622,7 +629,7 @@ export class RunOnceScheduler {
*/
schedule(delay = this.timeout): void {
this.cancel();
this.timeoutToken = platform.setTimeout(this.timeoutHandler, delay);
this.timeoutToken = setTimeout(this.timeoutHandler, delay);
}
/**
@@ -692,4 +699,4 @@ export class ThrottledEmitter<T> extends Emitter<T> {
this.hasLastEvent = false;
this.lastEvent = void 0;
}
}
}