diff --git a/tests/cases/fourslash/signatureHelpFilteredTriggers02.ts b/tests/cases/fourslash/signatureHelpFilteredTriggers02.ts new file mode 100644 index 0000000000..e193f919e0 --- /dev/null +++ b/tests/cases/fourslash/signatureHelpFilteredTriggers02.ts @@ -0,0 +1,36 @@ +/// + +////function foo(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); +} diff --git a/tests/cases/fourslash/signatureHelpFilteredTriggers03.ts b/tests/cases/fourslash/signatureHelpFilteredTriggers03.ts new file mode 100644 index 0000000000..7b17082361 --- /dev/null +++ b/tests/cases/fourslash/signatureHelpFilteredTriggers03.ts @@ -0,0 +1,23 @@ +/// + +////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: ",", +}); diff --git a/tests/cases/fourslash/signatureHelpWithTriggers01.ts b/tests/cases/fourslash/signatureHelpWithTriggers01.ts new file mode 100644 index 0000000000..ae73b5fe00 --- /dev/null +++ b/tests/cases/fourslash/signatureHelpWithTriggers01.ts @@ -0,0 +1,31 @@ +/// + +////declare function foo(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); +} diff --git a/tests/cases/fourslash/signatureHelpWithTriggers02.ts b/tests/cases/fourslash/signatureHelpWithTriggers02.ts new file mode 100644 index 0000000000..cb73237f8f --- /dev/null +++ b/tests/cases/fourslash/signatureHelpWithTriggers02.ts @@ -0,0 +1,38 @@ +/// + +////declare function foo(x: T, y: T): T; +////declare function bar(x: U, y: U): U; +//// +////foo(bar/*1*/) + +goTo.marker("1"); + +edit.insert("("); +verify.signatureHelp({ + text: "bar(x: U, y: U): U", + triggerReason: { + kind: "characterTyped", + triggerCharacter: "(", + } +}); +edit.backspace(); + +edit.insert("<"); +verify.signatureHelp({ + text: "bar(x: U, y: U): U", + triggerReason: { + kind: "characterTyped", + triggerCharacter: "(", + } +}); +edit.backspace(); + +edit.insert(","); +verify.signatureHelp({ + text: "foo(x: (x: U, y: U) => U, y: (x: U, y: U) => U): (x: U, y: U) => U", + triggerReason: { + kind: "characterTyped", + triggerCharacter: "(", + } +}); +edit.backspace(); \ No newline at end of file