Revert "Have setting the value trigger the filter. Fixes #137279"
This reverts commit c1c103dee7
.
This commit is contained in:
parent
60c59ff641
commit
26fe37ca3d
|
@ -11,7 +11,6 @@ interface QuickPickExpected {
|
||||||
events: string[];
|
events: string[];
|
||||||
activeItems: string[][];
|
activeItems: string[][];
|
||||||
selectionItems: string[][];
|
selectionItems: string[][];
|
||||||
values: string[];
|
|
||||||
acceptedItems: {
|
acceptedItems: {
|
||||||
active: string[][];
|
active: string[][];
|
||||||
selection: string[][];
|
selection: string[][];
|
||||||
|
@ -19,15 +18,6 @@ interface QuickPickExpected {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
interface InputBoxExpected {
|
|
||||||
events: string[];
|
|
||||||
values: string[];
|
|
||||||
accepted: {
|
|
||||||
values: string[];
|
|
||||||
dispose: boolean[];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
suite('vscode API - quick input', function () {
|
suite('vscode API - quick input', function () {
|
||||||
|
|
||||||
teardown(async function () {
|
teardown(async function () {
|
||||||
|
@ -45,7 +35,6 @@ suite('vscode API - quick input', function () {
|
||||||
events: ['active', 'active', 'selection', 'accept', 'hide'],
|
events: ['active', 'active', 'selection', 'accept', 'hide'],
|
||||||
activeItems: [['eins'], ['zwei']],
|
activeItems: [['eins'], ['zwei']],
|
||||||
selectionItems: [['zwei']],
|
selectionItems: [['zwei']],
|
||||||
values: [],
|
|
||||||
acceptedItems: {
|
acceptedItems: {
|
||||||
active: [['zwei']],
|
active: [['zwei']],
|
||||||
selection: [['zwei']],
|
selection: [['zwei']],
|
||||||
|
@ -72,7 +61,6 @@ suite('vscode API - quick input', function () {
|
||||||
events: ['active', 'selection', 'accept', 'hide'],
|
events: ['active', 'selection', 'accept', 'hide'],
|
||||||
activeItems: [['zwei']],
|
activeItems: [['zwei']],
|
||||||
selectionItems: [['zwei']],
|
selectionItems: [['zwei']],
|
||||||
values: [],
|
|
||||||
acceptedItems: {
|
acceptedItems: {
|
||||||
active: [['zwei']],
|
active: [['zwei']],
|
||||||
selection: [['zwei']],
|
selection: [['zwei']],
|
||||||
|
@ -99,7 +87,6 @@ suite('vscode API - quick input', function () {
|
||||||
events: ['active', 'selection', 'active', 'selection', 'accept', 'hide'],
|
events: ['active', 'selection', 'active', 'selection', 'accept', 'hide'],
|
||||||
activeItems: [['eins'], ['zwei']],
|
activeItems: [['eins'], ['zwei']],
|
||||||
selectionItems: [['eins'], ['eins', 'zwei']],
|
selectionItems: [['eins'], ['eins', 'zwei']],
|
||||||
values: [],
|
|
||||||
acceptedItems: {
|
acceptedItems: {
|
||||||
active: [['zwei']],
|
active: [['zwei']],
|
||||||
selection: [['eins', 'zwei']],
|
selection: [['eins', 'zwei']],
|
||||||
|
@ -130,7 +117,6 @@ suite('vscode API - quick input', function () {
|
||||||
events: ['active', 'selection', 'accept', 'selection', 'accept', 'hide'],
|
events: ['active', 'selection', 'accept', 'selection', 'accept', 'hide'],
|
||||||
activeItems: [['eins']],
|
activeItems: [['eins']],
|
||||||
selectionItems: [['zwei'], ['drei']],
|
selectionItems: [['zwei'], ['drei']],
|
||||||
values: [],
|
|
||||||
acceptedItems: {
|
acceptedItems: {
|
||||||
active: [['eins'], ['eins']],
|
active: [['eins'], ['eins']],
|
||||||
selection: [['zwei'], ['drei']],
|
selection: [['zwei'], ['drei']],
|
||||||
|
@ -156,7 +142,6 @@ suite('vscode API - quick input', function () {
|
||||||
events: ['active', 'selection', 'accept', 'active', 'selection', 'active', 'selection', 'accept', 'hide'],
|
events: ['active', 'selection', 'accept', 'active', 'selection', 'active', 'selection', 'accept', 'hide'],
|
||||||
activeItems: [['eins'], [], ['drei']],
|
activeItems: [['eins'], [], ['drei']],
|
||||||
selectionItems: [['eins'], [], ['drei']],
|
selectionItems: [['eins'], [], ['drei']],
|
||||||
values: [],
|
|
||||||
acceptedItems: {
|
acceptedItems: {
|
||||||
active: [['eins'], ['drei']],
|
active: [['eins'], ['drei']],
|
||||||
selection: [['eins'], ['drei']],
|
selection: [['eins'], ['drei']],
|
||||||
|
@ -178,40 +163,6 @@ suite('vscode API - quick input', function () {
|
||||||
.catch(err => done(err));
|
.catch(err => done(err));
|
||||||
});
|
});
|
||||||
|
|
||||||
// NOTE: This test is currently accepting the wrong behavior of #135971
|
|
||||||
// so that we can test the fix for #137279.
|
|
||||||
test('createQuickPick, onDidChangeValue gets triggered', function (_done) {
|
|
||||||
let done = (err?: any) => {
|
|
||||||
done = () => { };
|
|
||||||
_done(err);
|
|
||||||
};
|
|
||||||
|
|
||||||
const quickPick = createQuickPick({
|
|
||||||
events: ['active', 'active', 'active', 'active', 'value', 'active', 'active', 'value', 'hide'],
|
|
||||||
activeItems: [['eins'], ['zwei'], [], ['zwei'], [], ['eins']],
|
|
||||||
selectionItems: [],
|
|
||||||
values: ['zwei', ''],
|
|
||||||
acceptedItems: {
|
|
||||||
active: [],
|
|
||||||
selection: [],
|
|
||||||
dispose: []
|
|
||||||
},
|
|
||||||
}, (err?: any) => done(err));
|
|
||||||
quickPick.items = ['eins', 'zwei'].map(label => ({ label }));
|
|
||||||
quickPick.show();
|
|
||||||
|
|
||||||
(async () => {
|
|
||||||
quickPick.value = 'zwei';
|
|
||||||
await timeout(async () => {
|
|
||||||
quickPick.value = '';
|
|
||||||
await timeout(async () => {
|
|
||||||
quickPick.hide();
|
|
||||||
}, 0);
|
|
||||||
}, 0);
|
|
||||||
})()
|
|
||||||
.catch(err => done(err));
|
|
||||||
});
|
|
||||||
|
|
||||||
test('createQuickPick, dispose in onDidHide', function (_done) {
|
test('createQuickPick, dispose in onDidHide', function (_done) {
|
||||||
let done = (err?: any) => {
|
let done = (err?: any) => {
|
||||||
done = () => { };
|
done = () => { };
|
||||||
|
@ -297,34 +248,6 @@ suite('vscode API - quick input', function () {
|
||||||
quickPick.hide();
|
quickPick.hide();
|
||||||
await waitForHide(quickPick);
|
await waitForHide(quickPick);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('createInputBox, onDidChangeValue gets triggered', function (_done) {
|
|
||||||
let done = (err?: any) => {
|
|
||||||
done = () => { };
|
|
||||||
_done(err);
|
|
||||||
};
|
|
||||||
|
|
||||||
const quickPick = createInputBox({
|
|
||||||
events: ['value', 'accept', 'hide'],
|
|
||||||
values: ['zwei'],
|
|
||||||
accepted: {
|
|
||||||
values: ['zwei'],
|
|
||||||
dispose: [true]
|
|
||||||
},
|
|
||||||
}, (err?: any) => done(err));
|
|
||||||
quickPick.show();
|
|
||||||
|
|
||||||
(async () => {
|
|
||||||
quickPick.value = 'zwei';
|
|
||||||
await timeout(async () => {
|
|
||||||
await commands.executeCommand('workbench.action.acceptSelectedQuickOpenItem');
|
|
||||||
await timeout(async () => {
|
|
||||||
quickPick.hide();
|
|
||||||
}, 0);
|
|
||||||
}, 0);
|
|
||||||
})()
|
|
||||||
.catch(err => done(err));
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
function createQuickPick(expected: QuickPickExpected, done: (err?: any) => void, record = false) {
|
function createQuickPick(expected: QuickPickExpected, done: (err?: any) => void, record = false) {
|
||||||
|
@ -393,78 +316,9 @@ function createQuickPick(expected: QuickPickExpected, done: (err?: any) => void,
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
quickPick.onDidChangeValue(value => {
|
|
||||||
if (record) {
|
|
||||||
console.log('value');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
eventIndex++;
|
|
||||||
assert.strictEqual('value', expected.events.shift(), `onDidChangeValue (event ${eventIndex})`);
|
|
||||||
const expectedValue = expected.values.shift();
|
|
||||||
assert.deepStrictEqual(value, expectedValue, `onDidChangeValue event value (event ${eventIndex})`);
|
|
||||||
} catch (err) {
|
|
||||||
done(err);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
return quickPick;
|
return quickPick;
|
||||||
}
|
}
|
||||||
|
|
||||||
function createInputBox(expected: InputBoxExpected, done: (err?: any) => void, record = false) {
|
|
||||||
const inputBox = window.createInputBox();
|
|
||||||
let eventIndex = -1;
|
|
||||||
inputBox.onDidAccept(() => {
|
|
||||||
if (record) {
|
|
||||||
console.log('accept');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
eventIndex++;
|
|
||||||
assert.strictEqual('accept', expected.events.shift(), `onDidAccept (event ${eventIndex})`);
|
|
||||||
const expectedValue = expected.accepted.values.shift();
|
|
||||||
assert.deepStrictEqual(inputBox.value, expectedValue, `onDidAccept event value (event ${eventIndex})`);
|
|
||||||
if (expected.accepted.dispose.shift()) {
|
|
||||||
inputBox.dispose();
|
|
||||||
}
|
|
||||||
} catch (err) {
|
|
||||||
done(err);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
inputBox.onDidHide(() => {
|
|
||||||
if (record) {
|
|
||||||
console.log('hide');
|
|
||||||
done();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
assert.strictEqual('hide', expected.events.shift());
|
|
||||||
done();
|
|
||||||
} catch (err) {
|
|
||||||
done(err);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
inputBox.onDidChangeValue(value => {
|
|
||||||
if (record) {
|
|
||||||
console.log('value');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
eventIndex++;
|
|
||||||
assert.strictEqual('value', expected.events.shift(), `onDidChangeValue (event ${eventIndex})`);
|
|
||||||
const expectedValue = expected.values.shift();
|
|
||||||
assert.deepStrictEqual(value, expectedValue, `onDidChangeValue event value (event ${eventIndex})`);
|
|
||||||
} catch (err) {
|
|
||||||
done(err);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
return inputBox;
|
|
||||||
}
|
|
||||||
|
|
||||||
async function timeout<T>(run: () => Promise<T> | T, ms: number): Promise<T> {
|
async function timeout<T>(run: () => Promise<T> | T, ms: number): Promise<T> {
|
||||||
return new Promise<T>(resolve => setTimeout(() => resolve(run()), ms));
|
return new Promise<T>(resolve => setTimeout(() => resolve(run()), ms));
|
||||||
}
|
}
|
||||||
|
|
|
@ -490,11 +490,6 @@ class QuickPick<T extends IQuickPickItem> extends QuickInput implements IQuickPi
|
||||||
if (this._value !== value) {
|
if (this._value !== value) {
|
||||||
this._value = value || '';
|
this._value = value || '';
|
||||||
this.update();
|
this.update();
|
||||||
// TODO: Remove this duplicate code and have the updating of the input box handle this.
|
|
||||||
const didFilter = this.ui.list.filter(this.filterValue(this.ui.inputBox.value));
|
|
||||||
if (didFilter) {
|
|
||||||
this.trySelectFirst();
|
|
||||||
}
|
|
||||||
this.onDidChangeValueEmitter.fire(this._value);
|
this.onDidChangeValueEmitter.fire(this._value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,8 +66,7 @@ suite('QuickAccess', () => {
|
||||||
provide(picker: IQuickPick<IQuickPickItem>, token: CancellationToken): IDisposable {
|
provide(picker: IQuickPick<IQuickPickItem>, token: CancellationToken): IDisposable {
|
||||||
assert.ok(picker);
|
assert.ok(picker);
|
||||||
provider2Called = true;
|
provider2Called = true;
|
||||||
token.onCancellationRequested(() =>
|
token.onCancellationRequested(() => provider2Canceled = true);
|
||||||
provider2Canceled = true);
|
|
||||||
|
|
||||||
return toDisposable(() => provider2Disposed = true);
|
return toDisposable(() => provider2Disposed = true);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue