Skip to content

Commit 7871785

Browse files
committed
Merge remote-tracking branch 'origin/main' into tyriar/258480
2 parents 223c2ae + fbefb06 commit 7871785

File tree

32 files changed

+539
-384
lines changed

32 files changed

+539
-384
lines changed

build/filters.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,10 @@ module.exports.all = [
2424
'test/**/*',
2525
'!cli/**/*',
2626
'!out*/**',
27+
'!extensions/**/out*/**',
2728
'!test/**/out/**',
2829
'!**/node_modules/**',
30+
'!**/*.js.map',
2931
];
3032

3133
module.exports.unicodeFilter = [

package-lock.json

Lines changed: 9 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/vs/base/common/async.ts

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -161,32 +161,6 @@ export function raceTimeout<T>(promise: Promise<T>, timeout: number, onTimeout?:
161161
]);
162162
}
163163

164-
export function raceFilter<T>(promises: Promise<T>[], filter: (result: T) => boolean): Promise<T | undefined> {
165-
return new Promise((resolve, reject) => {
166-
if (promises.length === 0) {
167-
resolve(undefined);
168-
return;
169-
}
170-
171-
let resolved = false;
172-
let unresolvedCount = promises.length;
173-
for (const promise of promises) {
174-
promise.then(result => {
175-
unresolvedCount--;
176-
if (!resolved) {
177-
if (filter(result)) {
178-
resolved = true;
179-
resolve(result);
180-
} else if (unresolvedCount === 0) {
181-
// Last one has to resolve the promise
182-
resolve(undefined);
183-
}
184-
}
185-
}).catch(reject);
186-
}
187-
});
188-
}
189-
190164
export function asPromise<T>(callback: () => T | Thenable<T>): Promise<T> {
191165
return new Promise<T>((resolve, reject) => {
192166
const item = callback();

src/vs/base/common/event.ts

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -611,24 +611,6 @@ export namespace Event {
611611
return promise;
612612
}
613613

614-
/**
615-
* Creates an event out of a promise that fires once when the promise is
616-
* resolved with the result of the promise or `undefined`.
617-
*/
618-
export function fromPromise<T>(promise: Promise<T>): Event<T | undefined> {
619-
const result = new Emitter<T | undefined>();
620-
621-
promise.then(res => {
622-
result.fire(res);
623-
}, () => {
624-
result.fire(undefined);
625-
}).finally(() => {
626-
result.dispose();
627-
});
628-
629-
return result.event;
630-
}
631-
632614
/**
633615
* A convenience function for forwarding an event to another emitter which
634616
* improves readability.

src/vs/base/common/lifecycle.ts

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -634,35 +634,6 @@ export class RefCountedDisposable {
634634
}
635635
}
636636

637-
/**
638-
* A safe disposable can be `unset` so that a leaked reference (listener)
639-
* can be cut-off.
640-
*/
641-
export class SafeDisposable implements IDisposable {
642-
643-
dispose: () => void = () => { };
644-
unset: () => void = () => { };
645-
isset: () => boolean = () => false;
646-
647-
constructor() {
648-
trackDisposable(this);
649-
}
650-
651-
set(fn: Function) {
652-
let callback: Function | undefined = fn;
653-
this.unset = () => callback = undefined;
654-
this.isset = () => callback !== undefined;
655-
this.dispose = () => {
656-
if (callback) {
657-
callback();
658-
callback = undefined;
659-
markAsDisposed(this);
660-
}
661-
};
662-
return this;
663-
}
664-
}
665-
666637
export interface IReference<T> extends IDisposable {
667638
readonly object: T;
668639
}

src/vs/base/common/strings.ts

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -782,34 +782,6 @@ export function lcut(text: string, n: number, prefix = ''): string {
782782
return prefix + trimmed.substring(i).trimStart();
783783
}
784784

785-
/**
786-
* Given a string and a max length returns a shorted version. Shorting
787-
* happens at favorable positions - such as whitespace or punctuation characters.
788-
* The return value can be longer than the given value of `n`. Trailing whitespace is always trimmed.
789-
*/
790-
export function rcut(text: string, n: number, suffix = ''): string {
791-
const trimmed = text.trimEnd();
792-
793-
if (trimmed.length < n) {
794-
return trimmed;
795-
}
796-
797-
const parts = text.split(/\b/);
798-
let result = '';
799-
for (const part of parts) {
800-
if (result.length > 0 && result.length + part.length > n) {
801-
break;
802-
}
803-
result += part;
804-
}
805-
806-
if (result === trimmed) {
807-
return result;
808-
}
809-
810-
return result.trim().replace(/b$/, '') + suffix;
811-
}
812-
813785
// Defacto standard: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html
814786
const CSI_SEQUENCE = /(?:\x1b\[|\x9b)[=?>!]?[\d;:]*["$#'* ]?[a-zA-Z@^`{}|~]/;
815787
const OSC_SEQUENCE = /(?:\x1b\]|\x9d).*?(?:\x1b\\|\x07|\x9c)/;

src/vs/base/test/common/event.test.ts

Lines changed: 1 addition & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*--------------------------------------------------------------------------------------------*/
55
import assert from 'assert';
66
import { stub } from 'sinon';
7-
import { DeferredPromise, timeout } from '../../common/async.js';
7+
import { timeout } from '../../common/async.js';
88
import { CancellationToken } from '../../common/cancellation.js';
99
import { errorHandler, setUnexpectedErrorHandler } from '../../common/errors.js';
1010
import { AsyncEmitter, DebounceEmitter, DynamicListEventMultiplexer, Emitter, Event, EventBufferer, EventMultiplexer, IWaitUntil, ListenerLeakError, ListenerRefusalError, MicrotaskEmitter, PauseableEmitter, Relay, createEventDeliveryQueue } from '../../common/event.js';
@@ -1221,48 +1221,6 @@ suite('Event utils', () => {
12211221
listener.dispose(); // should not crash
12221222
});
12231223

1224-
suite('fromPromise', () => {
1225-
1226-
test('not yet resolved', async function () {
1227-
return new Promise(resolve => {
1228-
let promise = new DeferredPromise<number>();
1229-
1230-
ds.add(Event.fromPromise(promise.p)(e => {
1231-
assert.strictEqual(e, 1);
1232-
1233-
promise = new DeferredPromise();
1234-
1235-
ds.add(Event.fromPromise(promise.p)(() => {
1236-
resolve();
1237-
}));
1238-
1239-
promise.error(undefined);
1240-
}));
1241-
1242-
promise.complete(1);
1243-
});
1244-
});
1245-
1246-
test('already resolved', async function () {
1247-
return new Promise(resolve => {
1248-
let promise = new DeferredPromise<number>();
1249-
promise.complete(1);
1250-
1251-
ds.add(Event.fromPromise(promise.p)(e => {
1252-
assert.strictEqual(e, 1);
1253-
1254-
promise = new DeferredPromise();
1255-
promise.error(undefined);
1256-
1257-
ds.add(Event.fromPromise(promise.p)(() => {
1258-
resolve();
1259-
}));
1260-
}));
1261-
1262-
});
1263-
});
1264-
});
1265-
12661224
suite('Relay', () => {
12671225
test('should input work', () => {
12681226
const e1 = ds.add(new Emitter<number>());

src/vs/base/test/common/lifecycle.test.ts

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
import assert from 'assert';
77
import { Emitter } from '../../common/event.js';
8-
import { DisposableStore, dispose, IDisposable, markAsSingleton, ReferenceCollection, SafeDisposable, thenIfNotDisposed, toDisposable } from '../../common/lifecycle.js';
8+
import { DisposableStore, dispose, IDisposable, markAsSingleton, ReferenceCollection, thenIfNotDisposed, toDisposable } from '../../common/lifecycle.js';
99
import { ensureNoDisposablesAreLeakedInTestSuite, throwIfDisposablesAreLeaked } from './utils.js';
1010

1111
class Disposable implements IDisposable {
@@ -108,25 +108,6 @@ suite('Lifecycle', () => {
108108
const setValues2 = dispose(setValues);
109109
assert.ok(setValues === setValues2);
110110
});
111-
112-
test('SafeDisposable, dispose', function () {
113-
let disposed = 0;
114-
const actual = () => disposed += 1;
115-
const d = new SafeDisposable();
116-
d.set(actual);
117-
d.dispose();
118-
assert.strictEqual(disposed, 1);
119-
});
120-
121-
test('SafeDisposable, unset', function () {
122-
let disposed = 0;
123-
const actual = () => disposed += 1;
124-
const d = new SafeDisposable();
125-
d.set(actual);
126-
d.unset();
127-
d.dispose();
128-
assert.strictEqual(disposed, 0);
129-
});
130111
});
131112

132113
suite('DisposableStore', () => {

src/vs/base/test/common/strings.test.ts

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -155,24 +155,6 @@ suite('Strings', () => {
155155
assert.strictEqual(strings.lcut('............a', 10, '…'), '............a');
156156
});
157157

158-
suite('rcut', () => {
159-
test('basic truncation', () => {
160-
assert.strictEqual(strings.rcut('foo bar', 0), 'foo');
161-
assert.strictEqual(strings.rcut('foo bar', 1), 'foo');
162-
assert.strictEqual(strings.rcut('foo bar', 4), 'foo');
163-
assert.strictEqual(strings.rcut('foo bar', 7), 'foo bar');
164-
assert.strictEqual(strings.rcut('test string 0.1.2.3', 3), 'test');
165-
});
166-
167-
test('truncation with suffix', () => {
168-
assert.strictEqual(strings.rcut('foo bar', 0, '…'), 'foo…');
169-
assert.strictEqual(strings.rcut('foo bar', 1, '…'), 'foo…');
170-
assert.strictEqual(strings.rcut('foo bar', 4, '…'), 'foo…');
171-
assert.strictEqual(strings.rcut('foo bar', 7, '…'), 'foo bar');
172-
assert.strictEqual(strings.rcut('test string 0.1.2.3', 3, '…'), 'test…');
173-
});
174-
});
175-
176158
test('escape', () => {
177159
assert.strictEqual(strings.escape(''), '');
178160
assert.strictEqual(strings.escape('foo'), 'foo');

src/vs/editor/common/languages.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -990,6 +990,8 @@ export type LifetimeSummary = {
990990
shownDuration: number;
991991
shownDurationUncollapsed: number;
992992
timeUntilShown: number | undefined;
993+
timeUntilProviderRequest: number;
994+
timeUntilProviderResponse: number;
993995
editorType: string;
994996
viewKind: string | undefined;
995997
error: string | undefined;

0 commit comments

Comments
 (0)