diff --git a/tests/cases/fourslash/signatureHelpTaggedTemplates1.ts b/tests/cases/fourslash/signatureHelpTaggedTemplates1.ts index 457551f160a..78b4b586a0c 100644 --- a/tests/cases/fourslash/signatureHelpTaggedTemplates1.ts +++ b/tests/cases/fourslash/signatureHelpTaggedTemplates1.ts @@ -7,7 +7,10 @@ test.markers().forEach(m => { goTo.position(m.position); + verify.signatureHelpCountIs(1); + verify.signatureHelpArgumentCountIs(4); + verify.currentSignatureParamterCountIs(4); verify.currentSignatureHelpIs('f(templateStrings: any, x: any, y: any, z: any): number'); verify.currentParameterHelpArgumentNameIs("templateStrings"); diff --git a/tests/cases/fourslash/signatureHelpTaggedTemplates2.ts b/tests/cases/fourslash/signatureHelpTaggedTemplates2.ts index fa29c21ff21..c4b75657be5 100644 --- a/tests/cases/fourslash/signatureHelpTaggedTemplates2.ts +++ b/tests/cases/fourslash/signatureHelpTaggedTemplates2.ts @@ -7,7 +7,10 @@ test.markers().forEach(m => { goTo.position(m.position); + verify.signatureHelpCountIs(1); + verify.signatureHelpArgumentCountIs(4); + verify.currentSignatureParamterCountIs(4); verify.currentSignatureHelpIs('f(templateStrings: any, x: any, y: any, z: any): number'); verify.currentParameterHelpArgumentNameIs("templateStrings"); diff --git a/tests/cases/fourslash/signatureHelpTaggedTemplates3.ts b/tests/cases/fourslash/signatureHelpTaggedTemplates3.ts index 5670cadfd4e..2616a0797be 100644 --- a/tests/cases/fourslash/signatureHelpTaggedTemplates3.ts +++ b/tests/cases/fourslash/signatureHelpTaggedTemplates3.ts @@ -7,7 +7,10 @@ test.markers().forEach(m => { goTo.position(m.position); + verify.signatureHelpCountIs(1); + verify.signatureHelpArgumentCountIs(4); + verify.currentSignatureParamterCountIs(4); verify.currentSignatureHelpIs('f(templateStrings: any, x: any, y: any, z: any): number'); verify.currentParameterHelpArgumentNameIs("x"); diff --git a/tests/cases/fourslash/signatureHelpTaggedTemplates4.ts b/tests/cases/fourslash/signatureHelpTaggedTemplates4.ts index bbbd869de09..995eddf3f65 100644 --- a/tests/cases/fourslash/signatureHelpTaggedTemplates4.ts +++ b/tests/cases/fourslash/signatureHelpTaggedTemplates4.ts @@ -7,7 +7,10 @@ test.markers().forEach(m => { goTo.position(m.position); + verify.signatureHelpCountIs(1); + verify.signatureHelpArgumentCountIs(4); + verify.currentSignatureParamterCountIs(4); verify.currentSignatureHelpIs('f(templateStrings: any, x: any, y: any, z: any): number'); verify.currentParameterHelpArgumentNameIs("y"); diff --git a/tests/cases/fourslash/signatureHelpTaggedTemplates5.ts b/tests/cases/fourslash/signatureHelpTaggedTemplates5.ts index 68a95121240..01bd606cbf5 100644 --- a/tests/cases/fourslash/signatureHelpTaggedTemplates5.ts +++ b/tests/cases/fourslash/signatureHelpTaggedTemplates5.ts @@ -7,7 +7,10 @@ test.markers().forEach(m => { goTo.position(m.position); + verify.signatureHelpCountIs(1); + verify.signatureHelpArgumentCountIs(4); + verify.currentSignatureParamterCountIs(4); verify.currentSignatureHelpIs('f(templateStrings: any, x: any, y: any, z: any): number'); verify.currentParameterHelpArgumentNameIs("z"); diff --git a/tests/cases/fourslash/signatureHelpTaggedTemplates6.ts b/tests/cases/fourslash/signatureHelpTaggedTemplates6.ts index c1080b3f7e5..96909c8aeac 100644 --- a/tests/cases/fourslash/signatureHelpTaggedTemplates6.ts +++ b/tests/cases/fourslash/signatureHelpTaggedTemplates6.ts @@ -7,8 +7,11 @@ test.markers().forEach(m => { goTo.position(m.position); + verify.signatureHelpCountIs(1); - verify.currentSignatureParamterCountIs(4); + verify.signatureHelpArgumentCountIs(4); + + //verify.currentSignatureParamterCountIs(4); verify.currentSignatureHelpIs('g(templateStrings: any, x: any, y: any, z: any): string'); verify.currentParameterHelpArgumentNameIs("templateStrings"); verify.currentParameterSpanIs("templateStrings: any"); diff --git a/tests/cases/fourslash/signatureHelpTaggedTemplates7.ts b/tests/cases/fourslash/signatureHelpTaggedTemplates7.ts index eb25ac6f647..ddb120b4089 100644 --- a/tests/cases/fourslash/signatureHelpTaggedTemplates7.ts +++ b/tests/cases/fourslash/signatureHelpTaggedTemplates7.ts @@ -7,7 +7,10 @@ test.markers().forEach(m => { goTo.position(m.position); + verify.signatureHelpCountIs(1); + verify.signatureHelpArgumentCountIs(1); + verify.currentSignatureParamterCountIs(4); verify.currentSignatureHelpIs('f(templateStrings: any, x: any, y: any, z: any): number'); verify.currentParameterHelpArgumentNameIs("templateStrings"); diff --git a/tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete1.ts b/tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete1.ts index 65a250fce31..edc6b932e5f 100644 --- a/tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete1.ts +++ b/tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete1.ts @@ -7,7 +7,10 @@ test.markers().forEach(m => { goTo.position(m.position); + verify.signatureHelpCountIs(1); + verify.signatureHelpArgumentCountIs(2); + verify.currentSignatureParamterCountIs(4); verify.currentSignatureHelpIs('f(templateStrings: any, x: any, y: any, z: any): number'); verify.currentParameterHelpArgumentNameIs("templateStrings"); diff --git a/tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete2.ts b/tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete2.ts index c2baa7b187d..51ca619c4be 100644 --- a/tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete2.ts +++ b/tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete2.ts @@ -7,7 +7,10 @@ test.markers().forEach(m => { goTo.position(m.position); + verify.signatureHelpCountIs(1); + verify.signatureHelpArgumentCountIs(2); + verify.currentSignatureParamterCountIs(4); verify.currentSignatureHelpIs('f(templateStrings: any, x: any, y: any, z: any): number'); verify.currentParameterHelpArgumentNameIs("x"); diff --git a/tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete3.ts b/tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete3.ts index ccaebc1f1b6..05aaef5bc50 100644 --- a/tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete3.ts +++ b/tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete3.ts @@ -7,7 +7,10 @@ test.markers().forEach(m => { goTo.position(m.position); + verify.signatureHelpCountIs(1); + verify.signatureHelpArgumentCountIs(2); + verify.currentSignatureParamterCountIs(4); verify.currentSignatureHelpIs('f(templateStrings: any, x: any, y: any, z: any): number'); verify.currentParameterHelpArgumentNameIs("templateStrings"); diff --git a/tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete4.ts b/tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete4.ts index e220ec60679..e615f0156c0 100644 --- a/tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete4.ts +++ b/tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete4.ts @@ -7,7 +7,10 @@ test.markers().forEach(m => { goTo.position(m.position); + verify.signatureHelpCountIs(1); + verify.signatureHelpArgumentCountIs(3); + verify.currentSignatureParamterCountIs(4); verify.currentSignatureHelpIs('f(templateStrings: any, x: any, y: any, z: any): number'); verify.currentParameterHelpArgumentNameIs("y"); diff --git a/tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete5.ts b/tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete5.ts index 1655841575d..531ce46b3c8 100644 --- a/tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete5.ts +++ b/tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete5.ts @@ -7,7 +7,10 @@ test.markers().forEach(m => { goTo.position(m.position); + verify.signatureHelpCountIs(1); + verify.signatureHelpArgumentCountIs(3); + verify.currentSignatureParamterCountIs(4); verify.currentSignatureHelpIs('f(templateStrings: any, x: any, y: any, z: any): number'); verify.currentParameterHelpArgumentNameIs("templateStrings"); diff --git a/tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete6.ts b/tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete6.ts index 67d81d6558e..fcfd569daff 100644 --- a/tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete6.ts +++ b/tests/cases/fourslash/signatureHelpTaggedTemplatesIncomplete6.ts @@ -7,7 +7,10 @@ test.markers().forEach(m => { goTo.position(m.position); + verify.signatureHelpCountIs(1); + verify.signatureHelpArgumentCountIs(3); + verify.currentSignatureParamterCountIs(4); verify.currentSignatureHelpIs('f(templateStrings: any, x: any, y: any, z: any): number'); verify.currentParameterHelpArgumentNameIs("y"); diff --git a/tests/cases/fourslash/signatureHelpTaggedTemplatesNested1.ts b/tests/cases/fourslash/signatureHelpTaggedTemplatesNested1.ts index 934bea21ed5..a20e43b20bc 100644 --- a/tests/cases/fourslash/signatureHelpTaggedTemplatesNested1.ts +++ b/tests/cases/fourslash/signatureHelpTaggedTemplatesNested1.ts @@ -7,7 +7,9 @@ test.markers().forEach(m => { goTo.position(m.position); + verify.signatureHelpCountIs(1); + verify.currentSignatureParamterCountIs(4); verify.currentSignatureHelpIs('g(templateStrings: any, x: any, y: any, z: any): string'); }); \ No newline at end of file diff --git a/tests/cases/fourslash/signatureHelpTaggedTemplatesNested2.ts b/tests/cases/fourslash/signatureHelpTaggedTemplatesNested2.ts index 9ff5103f30a..488209dfac7 100644 --- a/tests/cases/fourslash/signatureHelpTaggedTemplatesNested2.ts +++ b/tests/cases/fourslash/signatureHelpTaggedTemplatesNested2.ts @@ -8,7 +8,9 @@ debugger; test.markers().forEach(m => { goTo.position(m.position); + verify.signatureHelpCountIs(1); + verify.currentSignatureParamterCountIs(4); verify.currentSignatureHelpIs('f(templateStrings: any, x: any, y: any, z: any): number'); }); \ No newline at end of file diff --git a/tests/cases/fourslash/signatureHelpTaggedTemplatesWithOverloadedTags1.ts b/tests/cases/fourslash/signatureHelpTaggedTemplatesWithOverloadedTags1.ts new file mode 100644 index 00000000000..608af7dbb96 --- /dev/null +++ b/tests/cases/fourslash/signatureHelpTaggedTemplatesWithOverloadedTags1.ts @@ -0,0 +1,20 @@ +/// + +//// function f(templateStrings: string[], p1_o1: string): number; +//// function f(templateStrings: string[], p1_o2: number, p2_o2: number, p3_o2: number): string; +//// function f(templateStrings: string[], p1_o3: string, p2_o3: boolean, p3_o3: number): boolean; +//// function f(...foo[]: any) { return ""; } +//// +//// f `/*1*/ /*2*/$/*3*/{ + +test.markers().forEach(m => { + goTo.position(m.position); + + verify.signatureHelpCountIs(3); + verify.signatureHelpArgumentCountIs(2); + + verify.currentSignatureParamterCountIs(2); + verify.currentSignatureHelpIs('f(templateStrings: string[], p1_o1: string): number'); + verify.currentParameterHelpArgumentNameIs("templateStrings"); + verify.currentParameterSpanIs("templateStrings: string[]"); +}); \ No newline at end of file diff --git a/tests/cases/fourslash/signatureHelpTaggedTemplatesWithOverloadedTags2.ts b/tests/cases/fourslash/signatureHelpTaggedTemplatesWithOverloadedTags2.ts new file mode 100644 index 00000000000..c7908bdb52a --- /dev/null +++ b/tests/cases/fourslash/signatureHelpTaggedTemplatesWithOverloadedTags2.ts @@ -0,0 +1,20 @@ +/// + +//// function f(templateStrings: string[], p1_o1: string): number; +//// function f(templateStrings: string[], p1_o2: number, p2_o2: number, p3_o2: number): string; +//// function f(templateStrings: string[], p1_o3: string, p2_o3: boolean, p3_o3: number): boolean; +//// function f(...foo[]: any) { return ""; } +//// +//// f `${/*1*/ /*2*/ /*3*/ + +test.markers().forEach(m => { + goTo.position(m.position); + + verify.signatureHelpCountIs(3); + verify.signatureHelpArgumentCountIs(2); + + verify.currentSignatureParamterCountIs(2); + verify.currentSignatureHelpIs('f(templateStrings: string[], p1_o1: string): number'); + verify.currentParameterHelpArgumentNameIs("p1_o1"); + verify.currentParameterSpanIs("p1_o1: string"); +}); \ No newline at end of file diff --git a/tests/cases/fourslash/signatureHelpTaggedTemplatesWithOverloadedTags3.ts b/tests/cases/fourslash/signatureHelpTaggedTemplatesWithOverloadedTags3.ts new file mode 100644 index 00000000000..22256db1f0e --- /dev/null +++ b/tests/cases/fourslash/signatureHelpTaggedTemplatesWithOverloadedTags3.ts @@ -0,0 +1,20 @@ +/// + +//// function f(templateStrings: string[], p1_o1: string): number; +//// function f(templateStrings: string[], p1_o2: number, p2_o2: number, p3_o2: number): string; +//// function f(templateStrings: string[], p1_o3: string, p2_o3: boolean, p3_o3: number): boolean; +//// function f(...foo[]: any) { return ""; } +//// +//// f `${/*1*/ "s/*2*/tring" /*3*/ } ${ + +test.markers().forEach(m => { + goTo.position(m.position); + + verify.signatureHelpCountIs(3); + verify.signatureHelpArgumentCountIs(3); + + verify.currentSignatureParamterCountIs(4); + verify.currentSignatureHelpIs('f(templateStrings: string[], p1_o3: string, p2_o3: boolean, p3_o3: number): boolean'); + verify.currentParameterHelpArgumentNameIs("p1_o3"); + verify.currentParameterSpanIs("p1_o3: string"); +}); \ No newline at end of file diff --git a/tests/cases/fourslash/signatureHelpTaggedTemplatesWithOverloadedTags4.ts b/tests/cases/fourslash/signatureHelpTaggedTemplatesWithOverloadedTags4.ts new file mode 100644 index 00000000000..700cc2194bf --- /dev/null +++ b/tests/cases/fourslash/signatureHelpTaggedTemplatesWithOverloadedTags4.ts @@ -0,0 +1,20 @@ +/// + +//// function f(templateStrings: string[], p1_o1: string): number; +//// function f(templateStrings: string[], p1_o2: number, p2_o2: number, p3_o2: number): string; +//// function f(templateStrings: string[], p1_o3: string, p2_o3: boolean, p3_o3: number): boolean; +//// function f(...foo[]: any) { return ""; } +//// +//// f `${/*1*/ 123.456/*2*/ /*3*/ } ${ + +test.markers().forEach(m => { + goTo.position(m.position); + + verify.signatureHelpCountIs(3); + verify.signatureHelpArgumentCountIs(3); + + verify.currentSignatureParamterCountIs(4); + verify.currentSignatureHelpIs('f(templateStrings: string[], p1_o2: number, p2_o2: number, p3_o2: number): string'); + verify.currentParameterHelpArgumentNameIs("p1_o2"); + verify.currentParameterSpanIs("p1_o2: number"); +}); \ No newline at end of file diff --git a/tests/cases/fourslash/signatureHelpTaggedTemplatesWithOverloadedTags5.ts b/tests/cases/fourslash/signatureHelpTaggedTemplatesWithOverloadedTags5.ts new file mode 100644 index 00000000000..20701c0e98d --- /dev/null +++ b/tests/cases/fourslash/signatureHelpTaggedTemplatesWithOverloadedTags5.ts @@ -0,0 +1,20 @@ +/// + +//// function f(templateStrings: string[], p1_o1: string): number; +//// function f(templateStrings: string[], p1_o2: number, p2_o2: number, p3_o2: number): string; +//// function f(templateStrings: string[], p1_o3: string, p2_o3: boolean, p3_o3: number): boolean; +//// function f(...foo[]: any) { return ""; } +//// +//// f `${ } ${/*1*/ /*2*/ /*3*/ + +test.markers().forEach(m => { + goTo.position(m.position); + + verify.signatureHelpCountIs(3); + verify.signatureHelpArgumentCountIs(3); + + verify.currentSignatureParamterCountIs(4); + verify.currentSignatureHelpIs('f(templateStrings: string[], p1_o2: number, p2_o2: number, p3_o2: number): string'); + verify.currentParameterHelpArgumentNameIs("p2_o2"); + verify.currentParameterSpanIs("p2_o2: number"); +}); \ No newline at end of file diff --git a/tests/cases/fourslash/signatureHelpTaggedTemplatesWithOverloadedTags6.ts b/tests/cases/fourslash/signatureHelpTaggedTemplatesWithOverloadedTags6.ts new file mode 100644 index 00000000000..7bfd17c254a --- /dev/null +++ b/tests/cases/fourslash/signatureHelpTaggedTemplatesWithOverloadedTags6.ts @@ -0,0 +1,20 @@ +/// + +//// function f(templateStrings: string[], p1_o1: string): number; +//// function f(templateStrings: string[], p1_o2: number, p2_o2: number, p3_o2: number): string; +//// function f(templateStrings: string[], p1_o3: string, p2_o3: boolean, p3_o3: number): boolean; +//// function f(...foo[]: any) { return ""; } +//// +//// f `${ } ${/*1*/ /*2*/ /*3*/} + +test.markers().forEach(m => { + goTo.position(m.position); + + verify.signatureHelpCountIs(3); + verify.signatureHelpArgumentCountIs(3); + + verify.currentSignatureParamterCountIs(4); + verify.currentSignatureHelpIs('f(templateStrings: string[], p1_o2: number, p2_o2: number, p3_o2: number): string'); + verify.currentParameterHelpArgumentNameIs("p2_o2"); + verify.currentParameterSpanIs("p2_o2: number"); +}); \ No newline at end of file diff --git a/tests/cases/fourslash/signatureHelpTaggedTemplatesWithOverloadedTags7.ts b/tests/cases/fourslash/signatureHelpTaggedTemplatesWithOverloadedTags7.ts new file mode 100644 index 00000000000..4f747d3d8eb --- /dev/null +++ b/tests/cases/fourslash/signatureHelpTaggedTemplatesWithOverloadedTags7.ts @@ -0,0 +1,20 @@ +/// + +//// function f(templateStrings: string[], p1_o1: string): number; +//// function f(templateStrings: string[], p1_o2: number, p2_o2: number, p3_o2: number): string; +//// function f(templateStrings: string[], p1_o3: string, p2_o3: boolean, p3_o3: number): boolean; +//// function f(...foo[]: any) { return ""; } +//// +//// f `${ } ${/*1*/ fa/*2*/lse /*3*/} + +test.markers().forEach(m => { + goTo.position(m.position); + + verify.signatureHelpCountIs(3); + verify.signatureHelpArgumentCountIs(3); + + verify.currentSignatureParamterCountIs(4); + verify.currentSignatureHelpIs('f(templateStrings: string[], p1_o3: string, p2_o3: boolean, p3_o3: number): boolean'); + verify.currentParameterHelpArgumentNameIs("p2_o3"); + verify.currentParameterSpanIs("p2_o3: boolean"); +}); \ No newline at end of file diff --git a/tests/cases/fourslash/signatureHelpTaggedTemplatesWithOverloadedTags8.ts b/tests/cases/fourslash/signatureHelpTaggedTemplatesWithOverloadedTags8.ts new file mode 100644 index 00000000000..f97c2569730 --- /dev/null +++ b/tests/cases/fourslash/signatureHelpTaggedTemplatesWithOverloadedTags8.ts @@ -0,0 +1,20 @@ +/// + +//// function f(templateStrings: string[], p1_o1: string): number; +//// function f(templateStrings: string[], p1_o2: number, p2_o2: number, p3_o2: number): string; +//// function f(templateStrings: string[], p1_o3: string, p2_o3: boolean, p3_o3: number): boolean; +//// function f(...foo[]: any) { return ""; } +//// +//// f `${ undefined } ${ undefined } ${/*1*/ 10/*2*/./*3*/01 /*4*/} ` + +test.markers().forEach(m => { + goTo.position(m.position); + + verify.signatureHelpCountIs(3); + verify.signatureHelpArgumentCountIs(4); + + verify.currentSignatureParamterCountIs(4); + verify.currentSignatureHelpIs('f(templateStrings: string[], p1_o2: number, p2_o2: number, p3_o2: number): string'); + verify.currentParameterHelpArgumentNameIs("p3_o2"); + verify.currentParameterSpanIs("p3_o2: number"); +}); \ No newline at end of file