mirror of
https://github.com/Microsoft/vscode
synced 2024-08-28 05:19:39 +00:00
Add try catch logging to parameter hints in tests
This commit is contained in:
parent
abca16d16a
commit
34e6f94afa
|
@ -96,24 +96,29 @@ suite('ParameterHintsModel', () => {
|
|||
|
||||
provideSignatureHelp(_model: ITextModel, _position: Position, _token: CancellationToken, context: modes.SignatureHelpContext): modes.SignatureHelpResult | Promise<modes.SignatureHelpResult> {
|
||||
++invokeCount;
|
||||
if (invokeCount === 1) {
|
||||
assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter);
|
||||
assert.strictEqual(context.triggerCharacter, triggerChar);
|
||||
assert.strictEqual(context.isRetrigger, false);
|
||||
assert.strictEqual(context.activeSignatureHelp, undefined);
|
||||
try {
|
||||
if (invokeCount === 1) {
|
||||
assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter);
|
||||
assert.strictEqual(context.triggerCharacter, triggerChar);
|
||||
assert.strictEqual(context.isRetrigger, false);
|
||||
assert.strictEqual(context.activeSignatureHelp, undefined);
|
||||
|
||||
// Retrigger
|
||||
setTimeout(() => editor.trigger('keyboard', Handler.Type, { text: triggerChar }), 50);
|
||||
} else {
|
||||
assert.strictEqual(invokeCount, 2);
|
||||
assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter);
|
||||
assert.strictEqual(context.isRetrigger, true);
|
||||
assert.strictEqual(context.triggerCharacter, triggerChar);
|
||||
assert.strictEqual(context.activeSignatureHelp, emptySigHelp);
|
||||
// Retrigger
|
||||
setTimeout(() => editor.trigger('keyboard', Handler.Type, { text: triggerChar }), 50);
|
||||
} else {
|
||||
assert.strictEqual(invokeCount, 2);
|
||||
assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter);
|
||||
assert.strictEqual(context.isRetrigger, true);
|
||||
assert.strictEqual(context.triggerCharacter, triggerChar);
|
||||
assert.strictEqual(context.activeSignatureHelp, emptySigHelp);
|
||||
|
||||
done();
|
||||
done();
|
||||
}
|
||||
return emptySigHelpResult;
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
throw err;
|
||||
}
|
||||
return emptySigHelpResult;
|
||||
}
|
||||
}));
|
||||
|
||||
|
@ -133,25 +138,30 @@ suite('ParameterHintsModel', () => {
|
|||
signatureHelpRetriggerCharacters = [];
|
||||
|
||||
provideSignatureHelp(_model: ITextModel, _position: Position, _token: CancellationToken, context: modes.SignatureHelpContext): modes.SignatureHelpResult | Promise<modes.SignatureHelpResult> {
|
||||
++invokeCount;
|
||||
if (invokeCount === 1) {
|
||||
assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter);
|
||||
assert.strictEqual(context.triggerCharacter, triggerChar);
|
||||
assert.strictEqual(context.isRetrigger, false);
|
||||
assert.strictEqual(context.activeSignatureHelp, undefined);
|
||||
try {
|
||||
++invokeCount;
|
||||
if (invokeCount === 1) {
|
||||
assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter);
|
||||
assert.strictEqual(context.triggerCharacter, triggerChar);
|
||||
assert.strictEqual(context.isRetrigger, false);
|
||||
assert.strictEqual(context.activeSignatureHelp, undefined);
|
||||
|
||||
// Cancel and retrigger
|
||||
hintModel.cancel();
|
||||
editor.trigger('keyboard', Handler.Type, { text: triggerChar });
|
||||
} else {
|
||||
assert.strictEqual(invokeCount, 2);
|
||||
assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter);
|
||||
assert.strictEqual(context.triggerCharacter, triggerChar);
|
||||
assert.strictEqual(context.isRetrigger, true);
|
||||
assert.strictEqual(context.activeSignatureHelp, undefined);
|
||||
done();
|
||||
// Cancel and retrigger
|
||||
hintModel.cancel();
|
||||
editor.trigger('keyboard', Handler.Type, { text: triggerChar });
|
||||
} else {
|
||||
assert.strictEqual(invokeCount, 2);
|
||||
assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter);
|
||||
assert.strictEqual(context.triggerCharacter, triggerChar);
|
||||
assert.strictEqual(context.isRetrigger, true);
|
||||
assert.strictEqual(context.activeSignatureHelp, undefined);
|
||||
done();
|
||||
}
|
||||
return emptySigHelpResult;
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
throw err;
|
||||
}
|
||||
return emptySigHelpResult;
|
||||
}
|
||||
}));
|
||||
|
||||
|
@ -168,19 +178,24 @@ suite('ParameterHintsModel', () => {
|
|||
signatureHelpRetriggerCharacters = [];
|
||||
|
||||
provideSignatureHelp(_model: ITextModel, _position: Position, _token: CancellationToken, context: modes.SignatureHelpContext) {
|
||||
++invokeCount;
|
||||
try {
|
||||
++invokeCount;
|
||||
|
||||
assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter);
|
||||
assert.strictEqual(context.isRetrigger, false);
|
||||
assert.strictEqual(context.triggerCharacter, 'c');
|
||||
assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter);
|
||||
assert.strictEqual(context.isRetrigger, false);
|
||||
assert.strictEqual(context.triggerCharacter, 'c');
|
||||
|
||||
// Give some time to allow for later triggers
|
||||
setTimeout(() => {
|
||||
assert.strictEqual(invokeCount, 1);
|
||||
// Give some time to allow for later triggers
|
||||
setTimeout(() => {
|
||||
assert.strictEqual(invokeCount, 1);
|
||||
|
||||
done();
|
||||
}, 50);
|
||||
return undefined;
|
||||
done();
|
||||
}, 50);
|
||||
return undefined;
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
}));
|
||||
|
||||
|
@ -199,23 +214,28 @@ suite('ParameterHintsModel', () => {
|
|||
signatureHelpRetriggerCharacters = [];
|
||||
|
||||
provideSignatureHelp(_model: ITextModel, _position: Position, _token: CancellationToken, context: modes.SignatureHelpContext): modes.SignatureHelpResult | Promise<modes.SignatureHelpResult> {
|
||||
++invokeCount;
|
||||
if (invokeCount === 1) {
|
||||
assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter);
|
||||
assert.strictEqual(context.triggerCharacter, 'a');
|
||||
try {
|
||||
++invokeCount;
|
||||
if (invokeCount === 1) {
|
||||
assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter);
|
||||
assert.strictEqual(context.triggerCharacter, 'a');
|
||||
|
||||
// retrigger after delay for widget to show up
|
||||
setTimeout(() => editor.trigger('keyboard', Handler.Type, { text: 'b' }), 50);
|
||||
} else if (invokeCount === 2) {
|
||||
assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter);
|
||||
assert.ok(context.isRetrigger);
|
||||
assert.strictEqual(context.triggerCharacter, 'b');
|
||||
done();
|
||||
} else {
|
||||
assert.fail('Unexpected invoke');
|
||||
// retrigger after delay for widget to show up
|
||||
setTimeout(() => editor.trigger('keyboard', Handler.Type, { text: 'b' }), 50);
|
||||
} else if (invokeCount === 2) {
|
||||
assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter);
|
||||
assert.ok(context.isRetrigger);
|
||||
assert.strictEqual(context.triggerCharacter, 'b');
|
||||
done();
|
||||
} else {
|
||||
assert.fail('Unexpected invoke');
|
||||
}
|
||||
|
||||
return emptySigHelpResult;
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
throw err;
|
||||
}
|
||||
|
||||
return emptySigHelpResult;
|
||||
}
|
||||
}));
|
||||
|
||||
|
@ -234,29 +254,34 @@ suite('ParameterHintsModel', () => {
|
|||
|
||||
|
||||
provideSignatureHelp(_model: ITextModel, _position: Position, token: CancellationToken): modes.SignatureHelpResult | Promise<modes.SignatureHelpResult> {
|
||||
const count = invokeCount++;
|
||||
token.onCancellationRequested(() => { didRequestCancellationOf = count; });
|
||||
try {
|
||||
const count = invokeCount++;
|
||||
token.onCancellationRequested(() => { didRequestCancellationOf = count; });
|
||||
|
||||
// retrigger on first request
|
||||
if (count === 0) {
|
||||
hintsModel.trigger({ triggerKind: modes.SignatureHelpTriggerKind.Invoke }, 0);
|
||||
// retrigger on first request
|
||||
if (count === 0) {
|
||||
hintsModel.trigger({ triggerKind: modes.SignatureHelpTriggerKind.Invoke }, 0);
|
||||
}
|
||||
|
||||
return new Promise<modes.SignatureHelpResult>(resolve => {
|
||||
setTimeout(() => {
|
||||
resolve({
|
||||
value: {
|
||||
signatures: [{
|
||||
label: '' + count,
|
||||
parameters: []
|
||||
}],
|
||||
activeParameter: 0,
|
||||
activeSignature: 0
|
||||
},
|
||||
dispose: () => { }
|
||||
});
|
||||
}, 100);
|
||||
});
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
throw err;
|
||||
}
|
||||
|
||||
return new Promise<modes.SignatureHelpResult>(resolve => {
|
||||
setTimeout(() => {
|
||||
resolve({
|
||||
value: {
|
||||
signatures: [{
|
||||
label: '' + count,
|
||||
parameters: []
|
||||
}],
|
||||
activeParameter: 0,
|
||||
activeSignature: 0
|
||||
},
|
||||
dispose: () => { }
|
||||
});
|
||||
}, 100);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -290,23 +315,28 @@ suite('ParameterHintsModel', () => {
|
|||
signatureHelpRetriggerCharacters = [retriggerChar];
|
||||
|
||||
provideSignatureHelp(_model: ITextModel, _position: Position, _token: CancellationToken, context: modes.SignatureHelpContext): modes.SignatureHelpResult | Promise<modes.SignatureHelpResult> {
|
||||
++invokeCount;
|
||||
if (invokeCount === 1) {
|
||||
assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter);
|
||||
assert.strictEqual(context.triggerCharacter, triggerChar);
|
||||
try {
|
||||
++invokeCount;
|
||||
if (invokeCount === 1) {
|
||||
assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter);
|
||||
assert.strictEqual(context.triggerCharacter, triggerChar);
|
||||
|
||||
// retrigger after delay for widget to show up
|
||||
setTimeout(() => editor.trigger('keyboard', Handler.Type, { text: retriggerChar }), 50);
|
||||
} else if (invokeCount === 2) {
|
||||
assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter);
|
||||
assert.ok(context.isRetrigger);
|
||||
assert.strictEqual(context.triggerCharacter, retriggerChar);
|
||||
done();
|
||||
} else {
|
||||
assert.fail('Unexpected invoke');
|
||||
// retrigger after delay for widget to show up
|
||||
setTimeout(() => editor.trigger('keyboard', Handler.Type, { text: retriggerChar }), 50);
|
||||
} else if (invokeCount === 2) {
|
||||
assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter);
|
||||
assert.ok(context.isRetrigger);
|
||||
assert.strictEqual(context.triggerCharacter, retriggerChar);
|
||||
done();
|
||||
} else {
|
||||
assert.fail('Unexpected invoke');
|
||||
}
|
||||
|
||||
return emptySigHelpResult;
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
throw err;
|
||||
}
|
||||
|
||||
return emptySigHelpResult;
|
||||
}
|
||||
}));
|
||||
|
||||
|
@ -332,26 +362,31 @@ suite('ParameterHintsModel', () => {
|
|||
signatureHelpRetriggerCharacters = [];
|
||||
|
||||
async provideSignatureHelp(_model: ITextModel, _position: Position, _token: CancellationToken, context: modes.SignatureHelpContext): Promise<modes.SignatureHelpResult | undefined> {
|
||||
if (!context.isRetrigger) {
|
||||
// retrigger after delay for widget to show up
|
||||
setTimeout(() => editor.trigger('keyboard', Handler.Type, { text: triggerChar }), 50);
|
||||
try {
|
||||
if (!context.isRetrigger) {
|
||||
// retrigger after delay for widget to show up
|
||||
setTimeout(() => editor.trigger('keyboard', Handler.Type, { text: triggerChar }), 50);
|
||||
|
||||
return {
|
||||
value: {
|
||||
activeParameter: 0,
|
||||
activeSignature: 0,
|
||||
signatures: [{
|
||||
label: firstProviderId,
|
||||
parameters: [
|
||||
{ label: paramterLabel }
|
||||
]
|
||||
}]
|
||||
},
|
||||
dispose: () => { }
|
||||
};
|
||||
return {
|
||||
value: {
|
||||
activeParameter: 0,
|
||||
activeSignature: 0,
|
||||
signatures: [{
|
||||
label: firstProviderId,
|
||||
parameters: [
|
||||
{ label: paramterLabel }
|
||||
]
|
||||
}]
|
||||
},
|
||||
dispose: () => { }
|
||||
};
|
||||
}
|
||||
|
||||
return undefined;
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
throw err;
|
||||
}
|
||||
|
||||
return undefined;
|
||||
}
|
||||
}));
|
||||
|
||||
|
|
Loading…
Reference in a new issue