Added tests for syntactic context.

This commit is contained in:
Daniel Rosenwasser 2018-07-03 17:01:19 -07:00
parent 53a0f2374a
commit a3b2237437
4 changed files with 128 additions and 0 deletions

View file

@ -0,0 +1,36 @@
/// <reference path="fourslash.ts" />
////function foo<T>(x: T): T {
//// throw null;
////}
////
////foo(/*1*/"");
////foo(` ${100/*2*/}`);
////foo(/*3*/);
////foo(100 /*4*/)
////foo([/*5*/])
////foo({ hello: "hello"/*6*/})
const charMap = {
1: "(",
2: ",",
3: "(",
4: "<",
5: ",",
6: ",",
}
for (const markerName of Object.keys(charMap)) {
const triggerCharacter = charMap[markerName];
goTo.marker(markerName);
edit.insert(triggerCharacter);
verify.noSignatureHelpForTriggerReason({
kind: "characterTyped",
triggerCharacter,
});
verify.signatureHelpPresentForTriggerReason({
kind: "retrigger",
triggerCharacter,
});
edit.backspace(triggerCharacter.length);
}

View file

@ -0,0 +1,23 @@
/// <reference path="fourslash.ts" />
////declare class ViewJayEss {
//// constructor(obj: object);
////}
////new ViewJayEss({
//// methods: {
//// sayHello/**/
//// }
////});
goTo.marker();
edit.insert("(");
verify.noSignatureHelpForTriggerReason({
kind: "characterTyped",
triggerCharacter: "(",
});
edit.insert(") {},");
verify.noSignatureHelpForTriggerReason({
kind: "characterTyped",
triggerCharacter: ",",
});

View file

@ -0,0 +1,31 @@
/// <reference path="fourslash.ts" />
////declare function foo<T>(x: T, y: T): T;
////
////foo/*1*//*2*/;
////foo(/*3*/100/*4*/);
////foo/*5*//*6*/();
const charMap = {
1: "(",
2: "<",
3: ",",
4: ",",
5: "(",
6: "<",
}
for (const markerName of Object.keys(charMap)) {
const triggerCharacter = charMap[markerName];
goTo.marker(markerName);
edit.insert(triggerCharacter);
verify.signatureHelpPresentForTriggerReason({
kind: "characterTyped",
triggerCharacter,
});
verify.signatureHelpPresentForTriggerReason({
kind: "retrigger",
triggerCharacter,
});
edit.backspace(triggerCharacter.length);
}

View file

@ -0,0 +1,38 @@
/// <reference path="fourslash.ts" />
////declare function foo<T>(x: T, y: T): T;
////declare function bar<U>(x: U, y: U): U;
////
////foo(bar/*1*/)
goTo.marker("1");
edit.insert("(");
verify.signatureHelp({
text: "bar<U>(x: U, y: U): U",
triggerReason: {
kind: "characterTyped",
triggerCharacter: "(",
}
});
edit.backspace();
edit.insert("<");
verify.signatureHelp({
text: "bar<U>(x: U, y: U): U",
triggerReason: {
kind: "characterTyped",
triggerCharacter: "(",
}
});
edit.backspace();
edit.insert(",");
verify.signatureHelp({
text: "foo(x: <U>(x: U, y: U) => U, y: <U>(x: U, y: U) => U): <U>(x: U, y: U) => U",
triggerReason: {
kind: "characterTyped",
triggerCharacter: "(",
}
});
edit.backspace();