diff --git a/src/harness/fourslash.ts b/src/harness/fourslash.ts index bd35923022087..d5c1e179c67e0 100644 --- a/src/harness/fourslash.ts +++ b/src/harness/fourslash.ts @@ -525,6 +525,67 @@ namespace FourSlash { } } + public verifyGoToDefinitionIs(endMarker: string | string[]) { + this.verifyGoToDefinitionWorker(endMarker instanceof Array ? endMarker : [endMarker]); + } + + public verifyGoToDefinition(arg0: any, endMarkerNames?: string | string[]) { + if (endMarkerNames) { + this.verifyGoToDefinitionPlain(arg0, endMarkerNames); + } + else if (arg0 instanceof Array) { + const pairs: [string | string[], string | string[]][] = arg0; + for (const [start, end] of pairs) { + this.verifyGoToDefinitionPlain(start, end); + } + } + else { + const obj: { [startMarkerName: string]: string | string[] } = arg0; + for (const startMarkerName in obj) { + if (ts.hasProperty(obj, startMarkerName)) { + this.verifyGoToDefinitionPlain(startMarkerName, obj[startMarkerName]); + } + } + } + } + + private verifyGoToDefinitionPlain(startMarkerNames: string | string[], endMarkerNames: string | string[]) { + if (startMarkerNames instanceof Array) { + for (const start of startMarkerNames) { + this.verifyGoToDefinitionSingle(start, endMarkerNames); + } + } + else { + this.verifyGoToDefinitionSingle(startMarkerNames, endMarkerNames); + } + } + + public verifyGoToDefinitionForMarkers(markerNames: string[]) { + for (const markerName of markerNames) { + this.verifyGoToDefinitionSingle(`${markerName}Reference`, `${markerName}Definition`); + } + } + + private verifyGoToDefinitionSingle(startMarkerName: string, endMarkerNames: string | string[]) { + this.goToMarker(startMarkerName); + this.verifyGoToDefinitionWorker(endMarkerNames instanceof Array ? endMarkerNames : [endMarkerNames]); + } + + private verifyGoToDefinitionWorker(endMarkers: string[]) { + const definitions = this.languageService.getDefinitionAtPosition(this.activeFile.fileName, this.currentCaretPosition) || []; + + if (endMarkers.length !== definitions.length) { + this.raiseError(`goToDefinitions failed - expected to find ${endMarkers.length} definitions but got ${definitions.length}`); + } + + for (let i = 0; i < endMarkers.length; i++) { + const marker = this.getMarkerByName(endMarkers[i]), definition = definitions[i]; + if (marker.fileName !== definition.fileName || marker.position !== definition.textSpan.start) { + this.raiseError(`goToDefinition failed for definition ${i}: expected ${marker.fileName} at ${marker.position}, got ${definition.fileName} at ${definition.textSpan.start}`); + } + } + } + public verifyGetEmitOutputForCurrentFile(expected: string): void { const emit = this.languageService.getEmitOutput(this.activeFile.fileName); if (emit.outputFiles.length !== 1) { @@ -1561,21 +1622,6 @@ namespace FourSlash { this.goToPosition(len); } - public goToDefinition(definitionIndex: number) { - const definitions = this.languageService.getDefinitionAtPosition(this.activeFile.fileName, this.currentCaretPosition); - if (!definitions || !definitions.length) { - this.raiseError("goToDefinition failed - expected to find at least one definition location but got 0"); - } - - if (definitionIndex >= definitions.length) { - this.raiseError(`goToDefinition failed - definitionIndex value (${definitionIndex}) exceeds definition list size (${definitions.length})`); - } - - const definition = definitions[definitionIndex]; - this.openFile(definition.fileName); - this.currentCaretPosition = definition.textSpan.start; - } - public goToTypeDefinition(definitionIndex: number) { const definitions = this.languageService.getTypeDefinitionAtPosition(this.activeFile.fileName, this.currentCaretPosition); if (!definitions || !definitions.length) { @@ -1591,28 +1637,6 @@ namespace FourSlash { this.currentCaretPosition = definition.textSpan.start; } - public verifyDefinitionLocationExists(negative: boolean) { - const definitions = this.languageService.getDefinitionAtPosition(this.activeFile.fileName, this.currentCaretPosition); - - const foundDefinitions = definitions && definitions.length; - - if (foundDefinitions && negative) { - this.raiseError(`goToDefinition - expected to 0 definition locations but got ${definitions.length}`); - } - else if (!foundDefinitions && !negative) { - this.raiseError("goToDefinition - expected to find at least one definition location but got 0"); - } - } - - public verifyDefinitionsCount(negative: boolean, expectedCount: number) { - const assertFn = negative ? assert.notEqual : assert.equal; - - const definitions = this.languageService.getDefinitionAtPosition(this.activeFile.fileName, this.currentCaretPosition); - const actualCount = definitions && definitions.length || 0; - - assertFn(actualCount, expectedCount, this.messageAtLastKnownMarker("Definitions Count")); - } - public verifyTypeDefinitionsCount(negative: boolean, expectedCount: number) { const assertFn = negative ? assert.notEqual : assert.equal; @@ -1622,18 +1646,12 @@ namespace FourSlash { assertFn(actualCount, expectedCount, this.messageAtLastKnownMarker("Type definitions Count")); } - public verifyDefinitionsName(negative: boolean, expectedName: string, expectedContainerName: string) { + public verifyGoToDefinitionName(expectedName: string, expectedContainerName: string) { const definitions = this.languageService.getDefinitionAtPosition(this.activeFile.fileName, this.currentCaretPosition); const actualDefinitionName = definitions && definitions.length ? definitions[0].name : ""; const actualDefinitionContainerName = definitions && definitions.length ? definitions[0].containerName : ""; - if (negative) { - assert.notEqual(actualDefinitionName, expectedName, this.messageAtLastKnownMarker("Definition Info Name")); - assert.notEqual(actualDefinitionContainerName, expectedContainerName, this.messageAtLastKnownMarker("Definition Info Container Name")); - } - else { - assert.equal(actualDefinitionName, expectedName, this.messageAtLastKnownMarker("Definition Info Name")); - assert.equal(actualDefinitionContainerName, expectedContainerName, this.messageAtLastKnownMarker("Definition Info Container Name")); - } + assert.equal(actualDefinitionName, expectedName, this.messageAtLastKnownMarker("Definition Info Name")); + assert.equal(actualDefinitionContainerName, expectedContainerName, this.messageAtLastKnownMarker("Definition Info Container Name")); } public getMarkers(): Marker[] { @@ -1641,6 +1659,10 @@ namespace FourSlash { return this.testData.markers.slice(0); } + public getMarkerNames(): string[] { + return Object.keys(this.testData.markerPositions); + } + public getRanges(): Range[] { return this.testData.ranges; } @@ -2742,6 +2764,10 @@ namespace FourSlashInterface { return this.state.getMarkers(); } + public markerNames(): string[] { + return this.state.getMarkerNames(); + } + public marker(name?: string): FourSlash.Marker { return this.state.getMarkerByName(name); } @@ -2777,10 +2803,6 @@ namespace FourSlashInterface { this.state.goToEOF(); } - public definition(definitionIndex = 0) { - this.state.goToDefinition(definitionIndex); - } - public type(definitionIndex = 0) { this.state.goToTypeDefinition(definitionIndex); } @@ -2885,22 +2907,10 @@ namespace FourSlashInterface { this.state.verifyQuickInfoExists(this.negative); } - public definitionCountIs(expectedCount: number) { - this.state.verifyDefinitionsCount(this.negative, expectedCount); - } - public typeDefinitionCountIs(expectedCount: number) { this.state.verifyTypeDefinitionsCount(this.negative, expectedCount); } - public definitionLocationExists() { - this.state.verifyDefinitionLocationExists(this.negative); - } - - public verifyDefinitionsName(name: string, containerName: string) { - this.state.verifyDefinitionsName(this.negative, name, containerName); - } - public isValidBraceCompletionAtPosition(openingBrace: string) { this.state.verifyBraceCompletionAtPosition(this.negative, openingBrace); } @@ -2944,6 +2954,25 @@ namespace FourSlashInterface { this.state.verifyCurrentFileContent(text); } + public goToDefinitionIs(endMarkers: string | string[]) { + this.state.verifyGoToDefinitionIs(endMarkers); + } + + public goToDefinition(startMarkerName: string | string[], endMarkerName: string | string[]): void; + public goToDefinition(startsAndEnds: [string | string[], string | string[]][]): void; + public goToDefinition(startsAndEnds: { [startMarkerName: string]: string | string[] }): void; + public goToDefinition(arg0: any, endMarkerName?: string | string[]) { + this.state.verifyGoToDefinition(arg0, endMarkerName); + } + + public goToDefinitionForMarkers(...markerNames: string[]) { + this.state.verifyGoToDefinitionForMarkers(markerNames); + } + + public goToDefinitionName(name: string, containerName: string) { + this.state.verifyGoToDefinitionName(name, containerName); + } + public verifyGetEmitOutputForCurrentFile(expected: string): void { this.state.verifyGetEmitOutputForCurrentFile(expected); } diff --git a/tests/cases/fourslash/ambientShorthandGotoDefinition.ts b/tests/cases/fourslash/ambientShorthandGotoDefinition.ts index 970b87f8ec27a..f7fcbe9f05355 100644 --- a/tests/cases/fourslash/ambientShorthandGotoDefinition.ts +++ b/tests/cases/fourslash/ambientShorthandGotoDefinition.ts @@ -12,28 +12,25 @@ goTo.marker("useFoo"); verify.quickInfoIs("import foo"); -goTo.definition(); -verify.caretAtMarker("importFoo"); -goTo.definition(); -verify.caretAtMarker("module"); +verify.goToDefinition({ + useFoo: "importFoo", + importFoo: "module" +}); goTo.marker("useBar"); verify.quickInfoIs("import bar"); -goTo.definition(); -verify.caretAtMarker("module"); +verify.goToDefinition("useBar", "module"); goTo.marker("useBaz"); verify.quickInfoIs("import baz"); -goTo.definition(); -verify.caretAtMarker("importBaz"); -goTo.marker("idBaz"); -goTo.definition(); -verify.caretAtMarker("module"); +verify.goToDefinition({ + useBaz: "importBaz", + idBaz: "module" +}); goTo.marker("useBang"); verify.quickInfoIs("import bang = require(\"jquery\")"); -goTo.definition(); -verify.caretAtMarker("importBang"); -goTo.marker("idBang"); -goTo.definition(); -verify.caretAtMarker("module"); +verify.goToDefinition({ + useBang: "importBang", + idBang: "module" +}); diff --git a/tests/cases/fourslash/definition.ts b/tests/cases/fourslash/definition.ts index 13abe09437632..705cdd655832b 100644 --- a/tests/cases/fourslash/definition.ts +++ b/tests/cases/fourslash/definition.ts @@ -7,6 +7,4 @@ // @Filename: a.ts //// /*2*/export class Foo {} -goTo.marker('1'); -goTo.definition(); -verify.caretAtMarker('2'); \ No newline at end of file +verify.goToDefinition("1", "2"); diff --git a/tests/cases/fourslash/definitionNameOnEnumMember.ts b/tests/cases/fourslash/definitionNameOnEnumMember.ts index d88e1ef688ef1..b82b0dc0465a7 100644 --- a/tests/cases/fourslash/definitionNameOnEnumMember.ts +++ b/tests/cases/fourslash/definitionNameOnEnumMember.ts @@ -8,4 +8,4 @@ ////var enumMember = e./*1*/thirdMember; goTo.marker("1"); -verify.verifyDefinitionsName("thirdMember", "e"); \ No newline at end of file +verify.goToDefinitionName("thirdMember", "e"); diff --git a/tests/cases/fourslash/fourslash.ts b/tests/cases/fourslash/fourslash.ts index 59037e0de676e..1c400ff5f97e8 100644 --- a/tests/cases/fourslash/fourslash.ts +++ b/tests/cases/fourslash/fourslash.ts @@ -99,6 +99,7 @@ declare namespace FourSlashInterface { } class test_ { markers(): Marker[]; + markerNames(): string[]; marker(name?: string): Marker; ranges(): Range[]; rangesByText(): { [text: string]: Range[] }; @@ -108,7 +109,6 @@ declare namespace FourSlashInterface { marker(name?: string): void; bof(): void; eof(): void; - definition(definitionIndex?: number): void; type(definitionIndex?: number): void; position(position: number, fileIndex?: number): any; position(position: number, fileName?: string): any; @@ -132,10 +132,7 @@ declare namespace FourSlashInterface { errorExistsBeforeMarker(markerName?: string): void; quickInfoIs(expectedText?: string, expectedDocumentation?: string): void; quickInfoExists(): void; - definitionCountIs(expectedCount: number): void; typeDefinitionCountIs(expectedCount: number): void; - definitionLocationExists(): void; - verifyDefinitionsName(name: string, containerName: string): void; isValidBraceCompletionAtPosition(openingBrace?: string): void; } class verify extends verifyNegatable { @@ -152,6 +149,21 @@ declare namespace FourSlashInterface { eval(expr: string, value: any): void; currentLineContentIs(text: string): void; currentFileContentIs(text: string): void; + /** Verifies that goToDefinition at the current position would take you to `endMarker`. */ + goToDefinitionIs(endMarkers: string | string[]): void; + goToDefinitionName(name: string, containerName: string): void; + /** + * `verify.goToDefinition("a", "b");` verifies that go-to-definition at marker "a" takes you to marker "b". + * `verify.goToDefinition(["a", "aa"], "b");` verifies that markers "a" and "aa" have the same definition "b". + * `verify.goToDefinition("a", ["b", "bb"]);` verifies that "a" has multiple definitions available. + */ + goToDefinition(startMarkerNames: string | string[], endMarkerNames: string | string[]): void; + /** Performs `goToDefinition` for each pair. */ + goToDefinition(startsAndEnds: [string | string[], string | string[]][]): void; + /** Performs `goToDefinition` on each key and value. */ + goToDefinition(startsAndEnds: { [startMarkerName: string]: string | string[] }): void; + /** Verifies goToDefinition for each `${markerName}Reference` -> `${markerName}Definition` */ + goToDefinitionForMarkers(...markerNames: string[]): void; verifyGetEmitOutputForCurrentFile(expected: string): void; verifyGetEmitOutputContentsForCurrentFile(expected: ts.OutputFile[]): void; /** diff --git a/tests/cases/fourslash/goToDeclarationDecoratorOverloads.ts b/tests/cases/fourslash/goToDeclarationDecoratorOverloads.ts index ce012d53abaa8..c107f7f6803ab 100644 --- a/tests/cases/fourslash/goToDeclarationDecoratorOverloads.ts +++ b/tests/cases/fourslash/goToDeclarationDecoratorOverloads.ts @@ -13,10 +13,7 @@ //// @/*useDecSymbol*/dec [s]() {} ////} -goTo.marker("useDecString"); -goTo.definition(); -verify.caretAtMarker("defDecString"); - -goTo.marker("useDecSymbol"); -goTo.definition(); -verify.caretAtMarker("defDecSymbol"); +verify.goToDefinition({ + useDecString: "defDecString", + useDecSymbol: "defDecSymbol" +}); diff --git a/tests/cases/fourslash/goToDefinitionAcrossMultipleProjects.ts b/tests/cases/fourslash/goToDefinitionAcrossMultipleProjects.ts index bac47638be6d6..7c0565c626a8f 100644 --- a/tests/cases/fourslash/goToDefinitionAcrossMultipleProjects.ts +++ b/tests/cases/fourslash/goToDefinitionAcrossMultipleProjects.ts @@ -1,17 +1,14 @@ /// //@Filename: a.ts -////var x: number; +////var /*def1*/x: number; //@Filename: b.ts -////var x: number; +////var /*def2*/x: number; //@Filename: c.ts /////// /////// -/////**/x++; +/////*use*/x++; -goTo.file("c.ts"); -goTo.marker(); - -verify.definitionCountIs(2); \ No newline at end of file +verify.goToDefinition("use", ["def1", "def2"]); diff --git a/tests/cases/fourslash/goToDefinitionAlias.ts b/tests/cases/fourslash/goToDefinitionAlias.ts index f8141db44e351..23cf849f1014b 100644 --- a/tests/cases/fourslash/goToDefinitionAlias.ts +++ b/tests/cases/fourslash/goToDefinitionAlias.ts @@ -23,20 +23,7 @@ //// x; ////} - -goTo.marker('alias1Type'); -goTo.definition(); -verify.caretAtMarker('alias1Definition'); - -goTo.marker('alias2Type'); -goTo.definition(); -verify.caretAtMarker('alias2Definition'); - - -goTo.marker('alias1Value'); -goTo.definition(); -verify.caretAtMarker('alias1Definition'); - -goTo.marker('alias2Value'); -goTo.definition(); -verify.caretAtMarker('alias2Definition'); +verify.goToDefinition([ + [["alias1Type", "alias1Value"], "alias1Definition"], + [["alias2Type", "alias2Value"], "alias2Definition"] +]); diff --git a/tests/cases/fourslash/goToDefinitionAmbiants.ts b/tests/cases/fourslash/goToDefinitionAmbiants.ts index d17ed8d43b09e..57885bed4e97d 100644 --- a/tests/cases/fourslash/goToDefinitionAmbiants.ts +++ b/tests/cases/fourslash/goToDefinitionAmbiants.ts @@ -14,16 +14,4 @@ ////ambientClass./*staticMethodReference*/method(); ////ambientClassVariable./*instanceMethodReference*/method(); -var markerList = [ - "ambientVariable", - "ambientFunction", - "constructor", - "staticMethod", - "instanceMethod", -]; - -markerList.forEach((marker) => { - goTo.marker(marker + 'Reference'); - goTo.definition(); - verify.caretAtMarker(marker + 'Definition'); -}); +verify.goToDefinitionForMarkers("ambientVariable", "ambientFunction", "constructor", "staticMethod", "instanceMethod"); diff --git a/tests/cases/fourslash/goToDefinitionApparentTypeProperties.ts b/tests/cases/fourslash/goToDefinitionApparentTypeProperties.ts index 1b1c15a115391..dd0d91810c498 100644 --- a/tests/cases/fourslash/goToDefinitionApparentTypeProperties.ts +++ b/tests/cases/fourslash/goToDefinitionApparentTypeProperties.ts @@ -8,10 +8,4 @@ ////o./*reference1*/myObjectMethod(); ////o["/*reference2*/myObjectMethod"](); -goTo.marker("reference1"); -goTo.definition(); -verify.caretAtMarker("definition"); - -goTo.marker("reference2"); -goTo.definition(); -verify.caretAtMarker("definition"); +verify.goToDefinition(["reference1", "reference2"], "definition"); diff --git a/tests/cases/fourslash/goToDefinitionBuiltInTypes.ts b/tests/cases/fourslash/goToDefinitionBuiltInTypes.ts index 6ce9bf73f5d20..ed7e0e9045c1a 100644 --- a/tests/cases/fourslash/goToDefinitionBuiltInTypes.ts +++ b/tests/cases/fourslash/goToDefinitionBuiltInTypes.ts @@ -5,7 +5,6 @@ ////var b: /*boolean*/boolean; ////var v: /*void*/void; -test.markers().forEach((m, i, a) => { - goTo.position(m.position, m.fileName); - verify.not.definitionLocationExists(); -}); \ No newline at end of file +for (const marker of test.markerNames()) { + verify.goToDefinition(marker, []); +} diff --git a/tests/cases/fourslash/goToDefinitionBuiltInValues.ts b/tests/cases/fourslash/goToDefinitionBuiltInValues.ts index 168bdd5a86ebf..da9bf31f2c27e 100644 --- a/tests/cases/fourslash/goToDefinitionBuiltInValues.ts +++ b/tests/cases/fourslash/goToDefinitionBuiltInValues.ts @@ -6,7 +6,6 @@ ////var t = /*true*/true; ////var f = /*false*/false; -test.markers().forEach((m, i, a) => { - goTo.position(m.position, m.fileName); - verify.not.definitionLocationExists(); -}); \ No newline at end of file +for (const marker of test.markerNames()) { + verify.goToDefinition(marker, []); +} diff --git a/tests/cases/fourslash/goToDefinitionConstructorOfClassExpression01.ts b/tests/cases/fourslash/goToDefinitionConstructorOfClassExpression01.ts index aa96400a39768..4b774b8b0ee2d 100644 --- a/tests/cases/fourslash/goToDefinitionConstructorOfClassExpression01.ts +++ b/tests/cases/fourslash/goToDefinitionConstructorOfClassExpression01.ts @@ -6,6 +6,4 @@ //// } ////} -goTo.marker("usage"); -goTo.definition(); -verify.caretAtMarker("definition"); \ No newline at end of file +verify.goToDefinition("usage", "definition"); diff --git a/tests/cases/fourslash/goToDefinitionConstructorOfClassWhenClassIsPrecededByNamespace01.ts b/tests/cases/fourslash/goToDefinitionConstructorOfClassWhenClassIsPrecededByNamespace01.ts index dc5c362772c0a..bf698c0752da0 100644 --- a/tests/cases/fourslash/goToDefinitionConstructorOfClassWhenClassIsPrecededByNamespace01.ts +++ b/tests/cases/fourslash/goToDefinitionConstructorOfClassWhenClassIsPrecededByNamespace01.ts @@ -11,6 +11,4 @@ //// ////var x = new /*usage*/Foo(); -goTo.marker("usage"); -goTo.definition(); -verify.caretAtMarker("definition"); \ No newline at end of file +verify.goToDefinition("usage", "definition"); diff --git a/tests/cases/fourslash/goToDefinitionConstructorOverloads.ts b/tests/cases/fourslash/goToDefinitionConstructorOverloads.ts index d52243a6465cd..a3a5e3286b28f 100644 --- a/tests/cases/fourslash/goToDefinitionConstructorOverloads.ts +++ b/tests/cases/fourslash/goToDefinitionConstructorOverloads.ts @@ -9,14 +9,8 @@ ////var constructorOverload = new /*constructorOverloadReference1*/ConstructorOverload(); ////var constructorOverload = new /*constructorOverloadReference2*/ConstructorOverload("foo"); -goTo.marker('constructorOverloadReference1'); -goTo.definition(); -verify.caretAtMarker('constructorOverload1'); - -goTo.marker('constructorOverloadReference2'); -goTo.definition(); -verify.caretAtMarker('constructorOverload2'); - -goTo.marker('constructorOverload1'); -goTo.definition(); -verify.caretAtMarker('constructorDefinition'); +verify.goToDefinition({ + constructorOverloadReference1: "constructorOverload1", + constructorOverloadReference2: "constructorOverload2", + constructorOverload1: "constructorDefinition" +}); diff --git a/tests/cases/fourslash/goToDefinitionDecorator.ts b/tests/cases/fourslash/goToDefinitionDecorator.ts index b0899a9576c88..c86b02ab820d4 100644 --- a/tests/cases/fourslash/goToDefinitionDecorator.ts +++ b/tests/cases/fourslash/goToDefinitionDecorator.ts @@ -16,11 +16,7 @@ //// return target => target; ////} - -goTo.marker('decoratorUse'); -goTo.definition(); -verify.caretAtMarker('decoratorDefinition'); - -goTo.marker('decoratorFactoryUse'); -goTo.definition(); -verify.caretAtMarker('decoratorFactoryDefinition'); +verify.goToDefinition({ + decoratorUse: "decoratorDefinition", + decoratorFactoryUse: "decoratorFactoryDefinition" +}); diff --git a/tests/cases/fourslash/goToDefinitionDifferentFile.ts b/tests/cases/fourslash/goToDefinitionDifferentFile.ts index 3aa31d1556c56..1679563942c51 100644 --- a/tests/cases/fourslash/goToDefinitionDifferentFile.ts +++ b/tests/cases/fourslash/goToDefinitionDifferentFile.ts @@ -14,16 +14,4 @@ ////class fooCls implements /*remoteInterfaceReference*/remoteInterface { } ////var fooVar = /*remoteModuleReference*/remoteModule.foo; -var markerList = [ - "remoteVariable", - "remoteFunction", - "remoteClass", - "remoteInterface", - "remoteModule", -]; - -markerList.forEach((marker) => { - goTo.marker(marker + 'Reference'); - goTo.definition(); - verify.caretAtMarker(marker + 'Definition'); -}); +verify.goToDefinitionForMarkers("remoteVariable", "remoteFunction", "remoteClass", "remoteInterface", "remoteModule"); diff --git a/tests/cases/fourslash/goToDefinitionDifferentFileIndirectly.ts b/tests/cases/fourslash/goToDefinitionDifferentFileIndirectly.ts index 7287fde2d1d8a..96a65a2203381 100644 --- a/tests/cases/fourslash/goToDefinitionDifferentFileIndirectly.ts +++ b/tests/cases/fourslash/goToDefinitionDifferentFileIndirectly.ts @@ -21,16 +21,4 @@ ////class rem2fooCls implements /*remoteInterfaceReference*/rem2Int { } ////var rem2fooVar = /*remoteModuleReference*/rem2Mod.foo; -var markerList = [ - "remoteVariable", - "remoteFunction", - "remoteClass", - "remoteInterface", - "remoteModule", -]; - -markerList.forEach((marker) => { - goTo.marker(marker + 'Reference'); - goTo.definition(); - verify.caretAtMarker(marker + 'Definition'); -}); \ No newline at end of file +verify.goToDefinitionForMarkers("remoteVariable", "remoteFunction", "remoteClass", "remoteInterface", "remoteModule") diff --git a/tests/cases/fourslash/goToDefinitionExternalModuleName.ts b/tests/cases/fourslash/goToDefinitionExternalModuleName.ts index 13abe09437632..705cdd655832b 100644 --- a/tests/cases/fourslash/goToDefinitionExternalModuleName.ts +++ b/tests/cases/fourslash/goToDefinitionExternalModuleName.ts @@ -7,6 +7,4 @@ // @Filename: a.ts //// /*2*/export class Foo {} -goTo.marker('1'); -goTo.definition(); -verify.caretAtMarker('2'); \ No newline at end of file +verify.goToDefinition("1", "2"); diff --git a/tests/cases/fourslash/goToDefinitionExternalModuleName2.ts b/tests/cases/fourslash/goToDefinitionExternalModuleName2.ts index 06be8e676dd86..866d21b363292 100644 --- a/tests/cases/fourslash/goToDefinitionExternalModuleName2.ts +++ b/tests/cases/fourslash/goToDefinitionExternalModuleName2.ts @@ -8,6 +8,4 @@ /////*2*/class Foo {} ////export var x = 0; -goTo.marker('1'); -goTo.definition(); -verify.caretAtMarker('2'); \ No newline at end of file +verify.goToDefinition("1", "2"); diff --git a/tests/cases/fourslash/goToDefinitionExternalModuleName3.ts b/tests/cases/fourslash/goToDefinitionExternalModuleName3.ts index cd31f027895aa..afd3b4054a283 100644 --- a/tests/cases/fourslash/goToDefinitionExternalModuleName3.ts +++ b/tests/cases/fourslash/goToDefinitionExternalModuleName3.ts @@ -9,6 +9,4 @@ //// class Foo { } ////} -goTo.marker('1'); -goTo.definition(); -verify.caretAtMarker('2'); \ No newline at end of file +verify.goToDefinition("1", "2"); diff --git a/tests/cases/fourslash/goToDefinitionExternalModuleName4.ts b/tests/cases/fourslash/goToDefinitionExternalModuleName4.ts index c8bbaa458e465..50d679f7e9e50 100644 --- a/tests/cases/fourslash/goToDefinitionExternalModuleName4.ts +++ b/tests/cases/fourslash/goToDefinitionExternalModuleName4.ts @@ -3,5 +3,4 @@ // @Filename: b.ts ////import n = require('unknown/*1*/'); -goTo.marker('1'); -verify.not.definitionLocationExists(); \ No newline at end of file +verify.goToDefinition("1", []); diff --git a/tests/cases/fourslash/goToDefinitionExternalModuleName5.ts b/tests/cases/fourslash/goToDefinitionExternalModuleName5.ts index 5a6596caccba9..ae9343a8f5b57 100644 --- a/tests/cases/fourslash/goToDefinitionExternalModuleName5.ts +++ b/tests/cases/fourslash/goToDefinitionExternalModuleName5.ts @@ -5,6 +5,4 @@ //// class Foo { } ////} -goTo.marker('1'); -goTo.definition(); -verify.caretAtMarker('2'); \ No newline at end of file +verify.goToDefinition("1", "2"); diff --git a/tests/cases/fourslash/goToDefinitionExternalModuleName6.ts b/tests/cases/fourslash/goToDefinitionExternalModuleName6.ts index 46cafbb806c3a..03c3a23febc3f 100644 --- a/tests/cases/fourslash/goToDefinitionExternalModuleName6.ts +++ b/tests/cases/fourslash/goToDefinitionExternalModuleName6.ts @@ -8,6 +8,4 @@ //// class Foo { } ////} -goTo.marker('1'); -goTo.definition(); -verify.caretAtMarker('2'); \ No newline at end of file +verify.goToDefinition("1", "2"); diff --git a/tests/cases/fourslash/goToDefinitionExternalModuleName7.ts b/tests/cases/fourslash/goToDefinitionExternalModuleName7.ts index dcaf4b1f02110..4c82099ab2041 100644 --- a/tests/cases/fourslash/goToDefinitionExternalModuleName7.ts +++ b/tests/cases/fourslash/goToDefinitionExternalModuleName7.ts @@ -8,6 +8,4 @@ //// class Foo { } ////} -goTo.marker('1'); -goTo.definition(); -verify.caretAtMarker('2'); \ No newline at end of file +verify.goToDefinition("1", "2"); diff --git a/tests/cases/fourslash/goToDefinitionExternalModuleName8.ts b/tests/cases/fourslash/goToDefinitionExternalModuleName8.ts index 03c36567dc008..5eab37e839398 100644 --- a/tests/cases/fourslash/goToDefinitionExternalModuleName8.ts +++ b/tests/cases/fourslash/goToDefinitionExternalModuleName8.ts @@ -8,6 +8,4 @@ //// class Foo { } ////} -goTo.marker('1'); -goTo.definition(); -verify.caretAtMarker('2'); \ No newline at end of file +verify.goToDefinition("1", "2"); diff --git a/tests/cases/fourslash/goToDefinitionExternalModuleName9.ts b/tests/cases/fourslash/goToDefinitionExternalModuleName9.ts index 43111c6763fbe..9e0c1b4986ec7 100644 --- a/tests/cases/fourslash/goToDefinitionExternalModuleName9.ts +++ b/tests/cases/fourslash/goToDefinitionExternalModuleName9.ts @@ -8,6 +8,4 @@ //// class Foo { } ////} -goTo.marker('1'); -goTo.definition(); -verify.caretAtMarker('2'); \ No newline at end of file +verify.goToDefinition("1", "2"); diff --git a/tests/cases/fourslash/goToDefinitionFunctionOverloads.ts b/tests/cases/fourslash/goToDefinitionFunctionOverloads.ts index 4d1c09efd7a40..e30150a1f45d8 100644 --- a/tests/cases/fourslash/goToDefinitionFunctionOverloads.ts +++ b/tests/cases/fourslash/goToDefinitionFunctionOverloads.ts @@ -8,18 +8,9 @@ /////*functionOverloadReference2*/functionOverload("123"); /////*brokenOverload*/functionOverload({}); -goTo.marker('functionOverloadReference1'); -goTo.definition(); -verify.caretAtMarker('functionOverload1'); - -goTo.marker('functionOverloadReference2'); -goTo.definition(); -verify.caretAtMarker('functionOverload2'); - -goTo.marker('brokenOverload'); -goTo.definition(); -verify.caretAtMarker('functionOverload1'); - -goTo.marker('functionOverload'); -goTo.definition(); -verify.caretAtMarker('functionOverloadDefinition'); +verify.goToDefinition({ + functionOverloadReference1: "functionOverload1", + functionOverloadReference2: "functionOverload2", + brokenOverload: "functionOverload1", + functionOverload: "functionOverloadDefinition" +}); diff --git a/tests/cases/fourslash/goToDefinitionFunctionOverloadsInClass.ts b/tests/cases/fourslash/goToDefinitionFunctionOverloadsInClass.ts index d5f5a374c39b5..3426a4d5e1eda 100644 --- a/tests/cases/fourslash/goToDefinitionFunctionOverloadsInClass.ts +++ b/tests/cases/fourslash/goToDefinitionFunctionOverloadsInClass.ts @@ -11,10 +11,7 @@ //// constructor() { } ////} -goTo.marker('staticFunctionOverload'); -goTo.definition(); -verify.caretAtMarker('staticFunctionOverloadDefinition'); - -goTo.marker('functionOverload'); -goTo.definition(); -verify.caretAtMarker('functionOverloadDefinition'); \ No newline at end of file +verify.goToDefinition({ + staticFunctionOverload: "staticFunctionOverloadDefinition", + functionOverload: "functionOverloadDefinition" +}); diff --git a/tests/cases/fourslash/goToDefinitionImplicitConstructor.ts b/tests/cases/fourslash/goToDefinitionImplicitConstructor.ts index 023d7da8ce89a..bf24e35307f80 100644 --- a/tests/cases/fourslash/goToDefinitionImplicitConstructor.ts +++ b/tests/cases/fourslash/goToDefinitionImplicitConstructor.ts @@ -4,6 +4,4 @@ ////} ////var implicitConstructor = new /*constructorReference*/ImplicitConstructor(); -goTo.marker('constructorReference'); -goTo.definition(); -verify.caretAtMarker('constructorDefinition'); \ No newline at end of file +verify.goToDefinitionForMarkers("constructor"); diff --git a/tests/cases/fourslash/goToDefinitionImportedNames.ts b/tests/cases/fourslash/goToDefinitionImportedNames.ts index 98a791d23aed6..b7374d00f1819 100644 --- a/tests/cases/fourslash/goToDefinitionImportedNames.ts +++ b/tests/cases/fourslash/goToDefinitionImportedNames.ts @@ -14,8 +14,5 @@ //// x; ////} -goTo.file("b.ts"); -goTo.marker('classAliasDefinition'); -goTo.definition(); -verify.caretAtMarker('classDefinition'); +verify.goToDefinition("classAliasDefinition", "classDefinition"); diff --git a/tests/cases/fourslash/goToDefinitionImportedNames2.ts b/tests/cases/fourslash/goToDefinitionImportedNames2.ts index e5ab58d10cf18..b0b8776ee37de 100644 --- a/tests/cases/fourslash/goToDefinitionImportedNames2.ts +++ b/tests/cases/fourslash/goToDefinitionImportedNames2.ts @@ -14,8 +14,4 @@ //// x; ////} -goTo.file("b.ts"); - -goTo.marker('classAliasDefinition'); -goTo.definition(); -verify.caretAtMarker('classDefinition'); +verify.goToDefinition("classAliasDefinition", "classDefinition"); diff --git a/tests/cases/fourslash/goToDefinitionImportedNames3.ts b/tests/cases/fourslash/goToDefinitionImportedNames3.ts index 5e9376d70cb41..f80164643607c 100644 --- a/tests/cases/fourslash/goToDefinitionImportedNames3.ts +++ b/tests/cases/fourslash/goToDefinitionImportedNames3.ts @@ -27,12 +27,4 @@ //// x; ////} -goTo.file("e.ts"); - -goTo.marker('classReference'); -goTo.definition(); -verify.caretAtMarker('classDefinition'); - -goTo.marker('classAliasDefinition'); -goTo.definition(); -verify.caretAtMarker('classDefinition'); +verify.goToDefinition(["classReference", "classAliasDefinition"], "classDefinition"); diff --git a/tests/cases/fourslash/goToDefinitionImportedNames4.ts b/tests/cases/fourslash/goToDefinitionImportedNames4.ts index e0ef512dc418f..4b6b019cfaecb 100644 --- a/tests/cases/fourslash/goToDefinitionImportedNames4.ts +++ b/tests/cases/fourslash/goToDefinitionImportedNames4.ts @@ -14,8 +14,4 @@ //// x; ////} -goTo.file("b.ts"); - -goTo.marker('classAliasDefinition'); -goTo.definition(); -verify.caretAtMarker('classDefinition'); +verify.goToDefinition("classAliasDefinition", "classDefinition"); diff --git a/tests/cases/fourslash/goToDefinitionImportedNames5.ts b/tests/cases/fourslash/goToDefinitionImportedNames5.ts index abd3bee998adc..5add12ae0bcbc 100644 --- a/tests/cases/fourslash/goToDefinitionImportedNames5.ts +++ b/tests/cases/fourslash/goToDefinitionImportedNames5.ts @@ -14,8 +14,4 @@ //// x; ////} -goTo.file("b.ts"); - -goTo.marker('classAliasDefinition'); -goTo.definition(); -verify.caretAtMarker('classDefinition'); +verify.goToDefinition("classAliasDefinition", "classDefinition"); diff --git a/tests/cases/fourslash/goToDefinitionImportedNames6.ts b/tests/cases/fourslash/goToDefinitionImportedNames6.ts index c665946c3b148..21603cded426b 100644 --- a/tests/cases/fourslash/goToDefinitionImportedNames6.ts +++ b/tests/cases/fourslash/goToDefinitionImportedNames6.ts @@ -14,8 +14,4 @@ //// x; ////} -goTo.file("b.ts"); - -goTo.marker('moduleAliasDefinition'); -goTo.definition(); -verify.caretAtMarker('moduleDefinition'); +verify.goToDefinition("moduleAliasDefinition", "moduleDefinition"); diff --git a/tests/cases/fourslash/goToDefinitionImportedNames7.ts b/tests/cases/fourslash/goToDefinitionImportedNames7.ts index d5bcc499c7c6c..86be4af3d85da 100644 --- a/tests/cases/fourslash/goToDefinitionImportedNames7.ts +++ b/tests/cases/fourslash/goToDefinitionImportedNames7.ts @@ -10,8 +10,4 @@ ////} ////export default Class; -goTo.file("b.ts"); - -goTo.marker('classAliasDefinition'); -goTo.definition(); -verify.caretAtMarker('classDefinition'); +verify.goToDefinition("classAliasDefinition", "classDefinition"); diff --git a/tests/cases/fourslash/goToDefinitionInMemberDeclaration.ts b/tests/cases/fourslash/goToDefinitionInMemberDeclaration.ts index 1ee65e5644fe8..66719bb621b3a 100644 --- a/tests/cases/fourslash/goToDefinitionInMemberDeclaration.ts +++ b/tests/cases/fourslash/goToDefinitionInMemberDeclaration.ts @@ -19,35 +19,9 @@ //// } ////} - -goTo.marker("interfaceReference"); -goTo.definition(); -verify.caretAtMarker("interfaceDefinition"); - -goTo.marker("interfaceReferenceInList"); -goTo.definition(); -verify.caretAtMarker("interfaceDefinition"); - -goTo.marker("interfaceReferenceInConstructor"); -goTo.definition(); -verify.caretAtMarker("interfaceDefinition"); - -goTo.marker("classReference"); -goTo.definition(); -verify.caretAtMarker("classDefinition"); - -goTo.marker("classReferenceInInitializer"); -goTo.definition(); -verify.caretAtMarker("classDefinition"); - -goTo.marker("enumReference"); -goTo.definition(); -verify.caretAtMarker("enumDefinition"); - -goTo.marker("enumReferenceInInitializer"); -goTo.definition(); -verify.caretAtMarker("enumDefinition"); - -goTo.marker("selfReference"); -goTo.definition(); -verify.caretAtMarker("selfDefinition"); \ No newline at end of file +verify.goToDefinition([ + [["interfaceReference", "interfaceReferenceInList", "interfaceReferenceInConstructor"], "interfaceDefinition"], + [["classReference", "classReferenceInInitializer"], "classDefinition"], + [["enumReference", "enumReferenceInInitializer"], "enumDefinition"], + ["selfReference", "selfDefinition"] +]); diff --git a/tests/cases/fourslash/goToDefinitionInTypeArgument.ts b/tests/cases/fourslash/goToDefinitionInTypeArgument.ts index 2a12e49c5b7ae..343b5810df306 100644 --- a/tests/cases/fourslash/goToDefinitionInTypeArgument.ts +++ b/tests/cases/fourslash/goToDefinitionInTypeArgument.ts @@ -6,11 +6,4 @@ //// ////var x = new Fo/*fooReference*/o(); - -goTo.marker("barReference"); -goTo.definition(); -verify.caretAtMarker("barDefinition"); - -goTo.marker("fooReference"); -goTo.definition(); -verify.caretAtMarker("fooDefinition"); +verify.goToDefinitionForMarkers("bar", "foo"); diff --git a/tests/cases/fourslash/goToDefinitionInterfaceAfterImplement.ts b/tests/cases/fourslash/goToDefinitionInterfaceAfterImplement.ts index e6a763a98f1b7..585cc187e4851 100644 --- a/tests/cases/fourslash/goToDefinitionInterfaceAfterImplement.ts +++ b/tests/cases/fourslash/goToDefinitionInterfaceAfterImplement.ts @@ -11,6 +11,4 @@ //// } ////} -goTo.marker('interfaceReference'); -goTo.definition(); -verify.caretAtMarker('interfaceDefinition'); \ No newline at end of file +verify.goToDefinitionForMarkers("interface"); diff --git a/tests/cases/fourslash/goToDefinitionLabels.ts b/tests/cases/fourslash/goToDefinitionLabels.ts index fea447a81fbcb..5cbf3ac8f2f05 100644 --- a/tests/cases/fourslash/goToDefinitionLabels.ts +++ b/tests/cases/fourslash/goToDefinitionLabels.ts @@ -9,19 +9,11 @@ //// } ////} -goTo.marker('1'); -goTo.definition(); -verify.caretAtMarker('label1Definition'); - -goTo.marker('2'); -goTo.definition(); -verify.caretAtMarker('label2Definition'); - -// labels accross function bounderies -goTo.marker('3'); -goTo.definition(); -verify.caretAtMarker('label1Definition'); - -// undefined label -goTo.marker('4'); -verify.not.definitionLocationExists(); \ No newline at end of file +verify.goToDefinition({ + 1: "label1Definition", + 2: "label2Definition", + // labels accross function boundaries + 3: "label1Definition", + // undefined label + 4: [] +}); diff --git a/tests/cases/fourslash/goToDefinitionMethodOverloads.ts b/tests/cases/fourslash/goToDefinitionMethodOverloads.ts index 7b4bd0630d955..199b5aee22605 100644 --- a/tests/cases/fourslash/goToDefinitionMethodOverloads.ts +++ b/tests/cases/fourslash/goToDefinitionMethodOverloads.ts @@ -18,27 +18,11 @@ ////methodOverload./*instanceMethodReference1*/method(); ////methodOverload./*instanceMethodReference2*/method("456"); -goTo.marker('staticMethodReference1'); -goTo.definition(); -verify.caretAtMarker('staticMethodOverload1'); - -goTo.marker('staticMethodReference2'); -goTo.definition(); -verify.caretAtMarker('staticMethodOverload2'); - -goTo.marker('instanceMethodReference1'); -goTo.definition(); -verify.caretAtMarker('instanceMethodOverload1'); - -goTo.marker('instanceMethodReference2'); -goTo.definition(); -verify.caretAtMarker('instanceMethodOverload2'); - -goTo.marker('staticMethodOverload1Name'); -goTo.definition(); -verify.caretAtMarker('staticMethodDefinition'); - -goTo.marker('instanceMethodOverload1Name'); -goTo.definition(); -verify.caretAtMarker('instanceMethodDefinition'); - +verify.goToDefinition({ + staticMethodReference1: "staticMethodOverload1", + staticMethodReference2: "staticMethodOverload2", + instanceMethodReference1: "instanceMethodOverload1", + instanceMethodReference2: "instanceMethodOverload2", + staticMethodOverload1Name: "staticMethodDefinition", + instanceMethodOverload1Name: "instanceMethodDefinition" +}); diff --git a/tests/cases/fourslash/goToDefinitionMultipleDefinitions.ts b/tests/cases/fourslash/goToDefinitionMultipleDefinitions.ts index 6539a02539852..7b2cf6e7a851c 100644 --- a/tests/cases/fourslash/goToDefinitionMultipleDefinitions.ts +++ b/tests/cases/fourslash/goToDefinitionMultipleDefinitions.ts @@ -1,51 +1,34 @@ /// // @Filename: a.ts -/////*interfaceDefintion1*/interface IFoo { +/////*interfaceDefinition1*/interface IFoo { //// instance1: number; ////} // @Filename: b.ts -/////*interfaceDefintion2*/interface IFoo { +/////*interfaceDefinition2*/interface IFoo { //// instance2: number; ////} //// -/////*interfaceDefintion3*/interface IFoo { +/////*interfaceDefinition3*/interface IFoo { //// instance3: number; ////} //// ////var ifoo: IFo/*interfaceReference*/o; -goTo.marker('interfaceReference'); -goTo.definition(0); -verify.caretAtMarker('interfaceDefintion1'); - -goTo.marker('interfaceReference'); -goTo.definition(1); -verify.caretAtMarker('interfaceDefintion2'); - -goTo.marker('interfaceReference'); -goTo.definition(2); -verify.caretAtMarker('interfaceDefintion3'); - +verify.goToDefinition("interfaceReference", ["interfaceDefinition1", "interfaceDefinition2", "interfaceDefinition3"]); // @Filename: c.ts -/////*moduleDefintion1*/module Module { +/////*moduleDefinition1*/module Module { //// export class c1 { } ////} // @Filename: d.ts -/////*moduleDefintion2*/module Module { +/////*moduleDefinition2*/module Module { //// export class c2 { } ////} // @Filename: e.ts ////Modul/*moduleReference*/e; -goTo.marker('moduleReference'); -goTo.definition(0); -verify.caretAtMarker('moduleDefintion1'); - -goTo.marker('moduleReference'); -goTo.definition(1); -verify.caretAtMarker('moduleDefintion2'); +verify.goToDefinition("moduleReference", ["moduleDefinition1", "moduleDefinition2"]); diff --git a/tests/cases/fourslash/goToDefinitionObjectBindingElementPropertyName01.ts b/tests/cases/fourslash/goToDefinitionObjectBindingElementPropertyName01.ts index 9348ba0567866..32b08ab710d57 100644 --- a/tests/cases/fourslash/goToDefinitionObjectBindingElementPropertyName01.ts +++ b/tests/cases/fourslash/goToDefinitionObjectBindingElementPropertyName01.ts @@ -8,7 +8,4 @@ ////var foo: I; ////var { /*use*/property1: prop1 } = foo; -goTo.marker("use"); -verify.definitionLocationExists(); -goTo.definition(); -verify.caretAtMarker("def"); \ No newline at end of file +verify.goToDefinition("use", "def"); diff --git a/tests/cases/fourslash/goToDefinitionObjectLiteralProperties.ts b/tests/cases/fourslash/goToDefinitionObjectLiteralProperties.ts index 545172fb186d7..8523df2111b90 100644 --- a/tests/cases/fourslash/goToDefinitionObjectLiteralProperties.ts +++ b/tests/cases/fourslash/goToDefinitionObjectLiteralProperties.ts @@ -14,16 +14,4 @@ ////o./*methodReference*/method; ////o./*es6StyleMethodReference*/es6StyleMethod; -var markerList = [ - "value", - "getter", - "setter", - "method", - "es6StyleMethod", -]; - -markerList.forEach((marker) => { - goTo.marker(marker + 'Reference'); - goTo.definition(); - verify.caretAtMarker(marker + 'Definition'); -}); \ No newline at end of file +verify.goToDefinitionForMarkers("value", "getter", "setter", "method", "es6StyleMethod"); diff --git a/tests/cases/fourslash/goToDefinitionOverloadsInMultiplePropertyAccesses.ts b/tests/cases/fourslash/goToDefinitionOverloadsInMultiplePropertyAccesses.ts index de15c633e5fdd..63c23cfe46f50 100644 --- a/tests/cases/fourslash/goToDefinitionOverloadsInMultiplePropertyAccesses.ts +++ b/tests/cases/fourslash/goToDefinitionOverloadsInMultiplePropertyAccesses.ts @@ -11,6 +11,4 @@ ////} ////A.B./*2*/f(""); -goTo.marker("2"); -goTo.definition(); -verify.caretAtMarker("1"); +verify.goToDefinition("2", "1"); diff --git a/tests/cases/fourslash/goToDefinitionPartialImplementation.ts b/tests/cases/fourslash/goToDefinitionPartialImplementation.ts index 81e417b6c0f14..90402b3f8e67d 100644 --- a/tests/cases/fourslash/goToDefinitionPartialImplementation.ts +++ b/tests/cases/fourslash/goToDefinitionPartialImplementation.ts @@ -9,13 +9,11 @@ // @Filename: goToDefinitionPartialImplementation_2.ts ////module A { -//// export interface IA { +//// /*Part2Definition*/export interface IA { //// x: number; //// } //// //// var x: /*Part2Use*/IA; ////} -goTo.marker('Part2Use'); -goTo.definition(); -verify.caretAtMarker('Part1Definition'); +verify.goToDefinition("Part2Use", ["Part1Definition", "Part2Definition"]); diff --git a/tests/cases/fourslash/goToDefinitionPrimitives.ts b/tests/cases/fourslash/goToDefinitionPrimitives.ts index 19840f3b22819..c0bf24835943f 100644 --- a/tests/cases/fourslash/goToDefinitionPrimitives.ts +++ b/tests/cases/fourslash/goToDefinitionPrimitives.ts @@ -2,7 +2,4 @@ ////var x: st/*primitive*/ring; -goTo.marker("primitive"); -verify.not.definitionLocationExists(); - - +verify.goToDefinition("primitive", []); diff --git a/tests/cases/fourslash/goToDefinitionSameFile.ts b/tests/cases/fourslash/goToDefinitionSameFile.ts index 1285932b3f2bc..6bbdaf3a18909 100644 --- a/tests/cases/fourslash/goToDefinitionSameFile.ts +++ b/tests/cases/fourslash/goToDefinitionSameFile.ts @@ -13,16 +13,4 @@ ////class fooCls implements /*localInterfaceReference*/localInterface { } ////var fooVar = /*localModuleReference*/localModule.foo; -var markerList = [ - "localVariable", - "localFunction", - "localClass", - "localInterface", - "localModule", -]; - -markerList.forEach((marker) => { - goTo.marker(marker + 'Reference'); - goTo.definition(); - verify.caretAtMarker(marker + 'Definition'); -}); +verify.goToDefinitionForMarkers("localVariable", "localFunction", "localClass", "localInterface", "localModule"); diff --git a/tests/cases/fourslash/goToDefinitionShadowVariable.ts b/tests/cases/fourslash/goToDefinitionShadowVariable.ts index 69488026af082..0a30228790baf 100644 --- a/tests/cases/fourslash/goToDefinitionShadowVariable.ts +++ b/tests/cases/fourslash/goToDefinitionShadowVariable.ts @@ -6,6 +6,4 @@ //// /*shadowVariableReference*/shadowVariable = 1; ////} -goTo.marker('shadowVariableReference'); -goTo.definition(); -verify.caretAtMarker('shadowVariableDefinition'); +verify.goToDefinitionForMarkers("shadowVariable"); diff --git a/tests/cases/fourslash/goToDefinitionShadowVariableInsideModule.ts b/tests/cases/fourslash/goToDefinitionShadowVariableInsideModule.ts index 92f2761b61a50..953b8ea47fe33 100644 --- a/tests/cases/fourslash/goToDefinitionShadowVariableInsideModule.ts +++ b/tests/cases/fourslash/goToDefinitionShadowVariableInsideModule.ts @@ -5,6 +5,4 @@ //// /*shadowVariableReference*/shdVar = 1; ////} -goTo.marker('shadowVariableReference'); -goTo.definition(); -verify.caretAtMarker('shadowVariableDefinition'); \ No newline at end of file +verify.goToDefinitionForMarkers("shadowVariable"); diff --git a/tests/cases/fourslash/goToDefinitionShorthandProperty01.ts b/tests/cases/fourslash/goToDefinitionShorthandProperty01.ts index 5e906893719f6..4107049286c08 100644 --- a/tests/cases/fourslash/goToDefinitionShorthandProperty01.ts +++ b/tests/cases/fourslash/goToDefinitionShorthandProperty01.ts @@ -7,19 +7,9 @@ //// obj./*valueReference1*/name; //// obj./*valueReference2*/id; -goTo.marker("valueDefinition1"); -goTo.definition(); -verify.caretAtMarker("valueDeclaration1"); - -goTo.marker("valueDefinition2"); -goTo.definition(0); -verify.caretAtMarker("valueDeclaration2"); -goTo.definition(1); -verify.caretAtMarker("valueDeclaration3"); - -goTo.marker("valueReference1"); -goTo.definition(); -verify.caretAtMarker("valueDefinition1"); -goTo.marker("valueReference2"); -goTo.definition(); -verify.caretAtMarker("valueDefinition2"); +verify.goToDefinition({ + valueDefinition1: "valueDeclaration1", + valueDefinition2: ["valueDeclaration2", "valueDeclaration3"], + valueReference1: "valueDefinition1", + valueReference2: "valueDefinition2" +}); diff --git a/tests/cases/fourslash/goToDefinitionShorthandProperty02.ts b/tests/cases/fourslash/goToDefinitionShorthandProperty02.ts index 1f8fe466277d2..0ecdcacdcd6ea 100644 --- a/tests/cases/fourslash/goToDefinitionShorthandProperty02.ts +++ b/tests/cases/fourslash/goToDefinitionShorthandProperty02.ts @@ -4,5 +4,4 @@ //// f/*1*/oo ////} -goTo.marker("1"); -verify.not.definitionLocationExists(); \ No newline at end of file +verify.goToDefinition("1", []); diff --git a/tests/cases/fourslash/goToDefinitionShorthandProperty03.ts b/tests/cases/fourslash/goToDefinitionShorthandProperty03.ts index eb21b159f5ada..42a9ee0a4d692 100644 --- a/tests/cases/fourslash/goToDefinitionShorthandProperty03.ts +++ b/tests/cases/fourslash/goToDefinitionShorthandProperty03.ts @@ -7,10 +7,7 @@ //// /*letProp*/y ////} -goTo.marker("varProp"); -goTo.definition(); -verify.caretAtMarker("varDef"); - -goTo.marker("letProp"); -goTo.definition(); -verify.caretAtMarker("letDef"); \ No newline at end of file +verify.goToDefinition({ + varProp: "varDef", + letProp: "letDef" +}); diff --git a/tests/cases/fourslash/goToDefinitionSimple.ts b/tests/cases/fourslash/goToDefinitionSimple.ts index 47c1909cf12ce..39aa8ecfca913 100644 --- a/tests/cases/fourslash/goToDefinitionSimple.ts +++ b/tests/cases/fourslash/goToDefinitionSimple.ts @@ -7,10 +7,4 @@ //// var n = new /*1*/c(); //// var n = new c/*3*/(); -goTo.marker('1'); -goTo.definition(); -verify.caretAtMarker('2'); - -goTo.marker('3'); -goTo.definition(); -verify.caretAtMarker('2'); +verify.goToDefinition(["1", "3"], "2"); diff --git a/tests/cases/fourslash/goToDefinitionSourceUnit.ts b/tests/cases/fourslash/goToDefinitionSourceUnit.ts index 09900ff41be8d..e66b5ef79606f 100644 --- a/tests/cases/fourslash/goToDefinitionSourceUnit.ts +++ b/tests/cases/fourslash/goToDefinitionSourceUnit.ts @@ -16,9 +16,7 @@ // @Filename: b.ts /////*fileB*/ -goTo.marker("unknownFile"); -verify.not.definitionLocationExists(); - -goTo.marker("knownFile"); -goTo.definition(); -verify.caretAtMarker('fileB'); +verify.goToDefinition({ + unknownFile: [], + knownFile: "fileB" +}); diff --git a/tests/cases/fourslash/goToDefinitionTaggedTemplateOverloads.ts b/tests/cases/fourslash/goToDefinitionTaggedTemplateOverloads.ts index 54a2039b0a1eb..fad27cabbb6e3 100644 --- a/tests/cases/fourslash/goToDefinitionTaggedTemplateOverloads.ts +++ b/tests/cases/fourslash/goToDefinitionTaggedTemplateOverloads.ts @@ -7,10 +7,7 @@ /////*useFNumber*/f`${0}`; /////*useFBool*/f`${false}`; -goTo.marker("useFNumber"); -goTo.definition(); -verify.caretAtMarker("defFNumber"); - -goTo.marker("useFBool"); -goTo.definition(); -verify.caretAtMarker("defFBool"); +verify.goToDefinition({ + useFNumber: "defFNumber", + useFBool: "defFBool" +}); diff --git a/tests/cases/fourslash/goToDefinitionThis.ts b/tests/cases/fourslash/goToDefinitionThis.ts index 300e3423d81cf..5cb94ef35c7a3 100644 --- a/tests/cases/fourslash/goToDefinitionThis.ts +++ b/tests/cases/fourslash/goToDefinitionThis.ts @@ -1,6 +1,5 @@ /// -// @noLib: true ////function f(/*fnDecl*/this: number) { //// return /*fnUse*/this; ////} @@ -9,12 +8,8 @@ //// get self(/*getterDecl*/this: number) { return /*getterUse*/this; } ////} -function verifyDefinition(a, b) { - goTo.marker(a); - goTo.definition(); - verify.caretAtMarker(b); -} - -verifyDefinition("fnUse", "fnDecl"); -verifyDefinition("clsUse", "cls"); -verifyDefinition("getterUse", "getterDecl"); +verify.goToDefinition({ + "fnUse": "fnDecl", + "clsUse": "cls", + "getterUse": "getterDecl" +}); diff --git a/tests/cases/fourslash/goToDefinitionTypePredicate.ts b/tests/cases/fourslash/goToDefinitionTypePredicate.ts index 40f1d1eb94c0f..dd2b69f37e86a 100644 --- a/tests/cases/fourslash/goToDefinitionTypePredicate.ts +++ b/tests/cases/fourslash/goToDefinitionTypePredicate.ts @@ -5,12 +5,7 @@ //// return typeof parameter === "string"; //// } -goTo.marker('parameterName'); - -goTo.definition(); -verify.caretAtMarker('parameterDeclaration'); - -goTo.marker('typeReference'); - -goTo.definition(); -verify.caretAtMarker('classDeclaration'); \ No newline at end of file +verify.goToDefinition({ + parameterName: "parameterDeclaration", + typeReference: "classDeclaration" +}); diff --git a/tests/cases/fourslash/goToDefinitionTypeReferenceDirective.ts b/tests/cases/fourslash/goToDefinitionTypeReferenceDirective.ts index 78dfa94c5e44a..ad02bb9d85124 100644 --- a/tests/cases/fourslash/goToDefinitionTypeReferenceDirective.ts +++ b/tests/cases/fourslash/goToDefinitionTypeReferenceDirective.ts @@ -8,6 +8,4 @@ //// /// //// $.x; -goTo.marker("1"); -goTo.definition(); -verify.caretAtMarker("0"); \ No newline at end of file +verify.goToDefinition("1", "0"); diff --git a/tests/cases/fourslash/goToDefinitionUndefinedSymbols.ts b/tests/cases/fourslash/goToDefinitionUndefinedSymbols.ts index 8b7b19dc8716b..ceb1dc6d5be10 100644 --- a/tests/cases/fourslash/goToDefinitionUndefinedSymbols.ts +++ b/tests/cases/fourslash/goToDefinitionUndefinedSymbols.ts @@ -5,7 +5,6 @@ ////var x = {}; x.some/*undefinedProperty*/Property; ////var a: any; a.some/*unkownProperty*/Property; -test.markers().forEach((m, i, a) => { - goTo.position(m.position, m.fileName); - verify.not.definitionLocationExists(); -}); +for (const marker of test.markerNames()) { + verify.goToDefinition(marker, []); +} diff --git a/tests/cases/fourslash/goToDefinitionUnionTypeProperty1.ts b/tests/cases/fourslash/goToDefinitionUnionTypeProperty1.ts index 65d7201aecf25..82bd07e32f04f 100644 --- a/tests/cases/fourslash/goToDefinitionUnionTypeProperty1.ts +++ b/tests/cases/fourslash/goToDefinitionUnionTypeProperty1.ts @@ -15,12 +15,4 @@ ////x./*propertyReference*/commonProperty; ////x./*3*/commonFunction; - -goTo.marker("propertyReference"); -verify.definitionCountIs(2); -goTo.definition(0); -verify.caretAtMarker("propertyDefinition1"); - -goTo.marker("propertyReference"); -goTo.definition(1); -verify.caretAtMarker("propertyDefinition2"); +verify.goToDefinition("propertyReference", ["propertyDefinition1", "propertyDefinition2"]); diff --git a/tests/cases/fourslash/goToDefinitionUnionTypeProperty2.ts b/tests/cases/fourslash/goToDefinitionUnionTypeProperty2.ts index 674d5f4b62365..22ffb906e8e5a 100644 --- a/tests/cases/fourslash/goToDefinitionUnionTypeProperty2.ts +++ b/tests/cases/fourslash/goToDefinitionUnionTypeProperty2.ts @@ -16,11 +16,4 @@ //// ////x.common./*propertyReference*/a; -goTo.marker("propertyReference"); -verify.definitionCountIs(2); -goTo.definition(0); -verify.caretAtMarker("propertyDefinition2"); - -goTo.marker("propertyReference"); -goTo.definition(1); -verify.caretAtMarker("propertyDefinition1"); +verify.goToDefinition("propertyReference", ["propertyDefinition2", "propertyDefinition1"]); diff --git a/tests/cases/fourslash/goToDefinitionUnionTypeProperty3.ts b/tests/cases/fourslash/goToDefinitionUnionTypeProperty3.ts index 337bae7d5200f..fde4d2319fec6 100644 --- a/tests/cases/fourslash/goToDefinitionUnionTypeProperty3.ts +++ b/tests/cases/fourslash/goToDefinitionUnionTypeProperty3.ts @@ -9,7 +9,4 @@ //// ////var x = (strings || numbers)./*usage*/specialPop() -goTo.marker("usage"); -verify.definitionCountIs(1); -goTo.definition(); -verify.caretAtMarker("definition"); +verify.goToDefinition("usage", "definition"); diff --git a/tests/cases/fourslash/goToDefinitionUnionTypeProperty4.ts b/tests/cases/fourslash/goToDefinitionUnionTypeProperty4.ts index eb17f9570c2cb..f69554098c52a 100644 --- a/tests/cases/fourslash/goToDefinitionUnionTypeProperty4.ts +++ b/tests/cases/fourslash/goToDefinitionUnionTypeProperty4.ts @@ -18,15 +18,4 @@ //// ////var x = (snapcrackle || magnitude || art)./*usage*/pop; -goTo.marker("usage"); -verify.definitionCountIs(3); -goTo.definition(0); -verify.caretAtMarker("def1"); - -goTo.marker("usage"); -goTo.definition(1); -verify.caretAtMarker("def2"); - -goTo.marker("usage"); -goTo.definition(2); -verify.caretAtMarker("def3"); \ No newline at end of file +verify.goToDefinition("usage", ["def1", "def2", "def3"]); diff --git a/tests/cases/fourslash/goToDefinition_super.ts b/tests/cases/fourslash/goToDefinition_super.ts index 576d3535af085..7a7008ba07fe6 100644 --- a/tests/cases/fourslash/goToDefinition_super.ts +++ b/tests/cases/fourslash/goToDefinition_super.ts @@ -19,15 +19,11 @@ //// } ////} -// Super in call position goes to constructor. -goTo.marker("super"); -goTo.definition(); -verify.caretAtMarker("ctr"); -// Super in any other position goes to the superclass. -goTo.marker("superExpression"); -goTo.definition(); -verify.caretAtMarker("B"); - -goTo.marker("superBroken"); -verify.definitionCountIs(0); +verify.goToDefinition({ + // Super in call position goes to constructor. + super: "ctr", + // Super in any other position goes to the superclass. + superExpression: "B", + superBroken: [] +}); diff --git a/tests/cases/fourslash/goToModuleAliasDefinition.ts b/tests/cases/fourslash/goToModuleAliasDefinition.ts index 7b210df3e0f00..cdec82fd0d4dc 100644 --- a/tests/cases/fourslash/goToModuleAliasDefinition.ts +++ b/tests/cases/fourslash/goToModuleAliasDefinition.ts @@ -7,7 +7,5 @@ //// /*3*/import n = require('a'); //// var x = new /*1*/n.Foo(); -goTo.marker('1'); -goTo.definition(); // Won't-fixed: Should go to '2' instead -verify.caretAtMarker('3'); +verify.goToDefinition("1", "3"); diff --git a/tests/cases/fourslash/hoverOverComment.ts b/tests/cases/fourslash/hoverOverComment.ts index c0e585ca3b665..653eaedfcb770 100644 --- a/tests/cases/fourslash/hoverOverComment.ts +++ b/tests/cases/fourslash/hoverOverComment.ts @@ -6,6 +6,5 @@ goTo.marker(); verify.quickInfoIs(""); -verify.verifyDefinitionsName("", ""); -verify.typeDefinitionCountIs(0); +verify.goToDefinitionIs([]); verify.referencesAre([]); diff --git a/tests/cases/fourslash/javaScriptClass3.ts b/tests/cases/fourslash/javaScriptClass3.ts index 47004d53b044f..41ce79b35eb35 100644 --- a/tests/cases/fourslash/javaScriptClass3.ts +++ b/tests/cases/fourslash/javaScriptClass3.ts @@ -15,10 +15,7 @@ //// x.alpha/*src1*/; //// x.beta/*src2*/; -goTo.marker('src1'); -goTo.definition(); -verify.caretAtMarker('dst1'); - -goTo.marker('src2'); -goTo.definition(); -verify.caretAtMarker('dst2'); +verify.goToDefinition({ + src1: "dst1", + src2: "dst2" +}); diff --git a/tests/cases/fourslash/jsxSpreadReference.ts b/tests/cases/fourslash/jsxSpreadReference.ts index 64ab03e6ab9a5..595549967e62d 100644 --- a/tests/cases/fourslash/jsxSpreadReference.ts +++ b/tests/cases/fourslash/jsxSpreadReference.ts @@ -17,9 +17,7 @@ //// var [|/*dst*/nn|]: {name?: string; size?: number}; //// var x = ; -goTo.marker('src'); -goTo.definition(); -verify.caretAtMarker('dst'); +verify.goToDefinition("src", "dst"); goTo.marker('src'); verify.renameLocations(/*findInStrings*/ false, /*findInComments*/ false); diff --git a/tests/cases/fourslash/proto.ts b/tests/cases/fourslash/proto.ts index d99a3d8b5b580..638faa1d73e6e 100644 --- a/tests/cases/fourslash/proto.ts +++ b/tests/cases/fourslash/proto.ts @@ -14,7 +14,6 @@ verify.quickInfoIs("var __proto__: M.__proto__", ""); goTo.marker('3'); verify.completionListContains("__proto__", "var __proto__: M.__proto__", ""); edit.insert("__proto__"); -goTo.definition(); -verify.caretAtMarker('2'); +verify.goToDefinitionIs("2"); goTo.marker('4'); verify.quickInfoIs("var fun: (__proto__: any) => boolean", ""); diff --git a/tests/cases/fourslash/qualifiedName_import-declaration-with-variable-entity-names.ts b/tests/cases/fourslash/qualifiedName_import-declaration-with-variable-entity-names.ts index 97e5750241f2a..ea660aa89ecc3 100644 --- a/tests/cases/fourslash/qualifiedName_import-declaration-with-variable-entity-names.ts +++ b/tests/cases/fourslash/qualifiedName_import-declaration-with-variable-entity-names.ts @@ -21,6 +21,4 @@ verify.occurrencesAtPositionContains(def); verify.occurrencesAtPositionContains(imp); verify.occurrencesAtPositionContains(mem); -goTo.definition(); - -verify.caretAtMarker('def'); \ No newline at end of file +verify.goToDefinitionIs("def"); diff --git a/tests/cases/fourslash/quickInfoMeaning.ts b/tests/cases/fourslash/quickInfoMeaning.ts index 51b1733748682..390dc36795948 100644 --- a/tests/cases/fourslash/quickInfoMeaning.ts +++ b/tests/cases/fourslash/quickInfoMeaning.ts @@ -26,13 +26,11 @@ verify.navigationItemsListContains("foo", "const", "foo", "exact"); goTo.marker("foo_value"); verify.quickInfoIs("const foo: number"); -goTo.definition(); -verify.caretAtMarker("foo_value_declaration"); +verify.goToDefinitionIs("foo_value_declaration"); goTo.marker("foo_type"); verify.quickInfoIs("import foo = require(\"foo_module\")"); -goTo.definition(); -verify.caretAtMarker("foo_type_declaration"); +verify.goToDefinitionIs("foo_type_declaration"); // Above tested for global const and imported interface. Now test with global interface and imported const. @@ -58,10 +56,8 @@ verify.navigationItemsListContains("bar", "interface", "bar", "exact"); goTo.marker("bar_value"); verify.quickInfoIs("import bar = require(\"bar_module\")"); -goTo.definition(); -verify.caretAtMarker("bar_value_declaration"); +verify.goToDefinitionIs("bar_value_declaration"); goTo.marker("bar_type"); verify.quickInfoIs("interface bar"); -goTo.definition(); -verify.caretAtMarker("bar_type_declaration"); +verify.goToDefinitionIs("bar_type_declaration"); diff --git a/tests/cases/fourslash/server/definition01.ts b/tests/cases/fourslash/server/definition01.ts index c0c297f89e587..7889d185fcd72 100644 --- a/tests/cases/fourslash/server/definition01.ts +++ b/tests/cases/fourslash/server/definition01.ts @@ -7,6 +7,4 @@ // @Filename: a.ts //// /*2*/export class Foo {} -goTo.marker('1'); -goTo.definition(); -verify.caretAtMarker('2'); \ No newline at end of file +verify.goToDefinition("1", "2"); diff --git a/tests/cases/fourslash/server/jsdocTypedefTagGoToDefinition.ts b/tests/cases/fourslash/server/jsdocTypedefTagGoToDefinition.ts index 4db14611938b7..2183c8d54716b 100644 --- a/tests/cases/fourslash/server/jsdocTypedefTagGoToDefinition.ts +++ b/tests/cases/fourslash/server/jsdocTypedefTagGoToDefinition.ts @@ -19,11 +19,7 @@ //// /** @type {Animal} */ //// var animal; animal.animalName/*4*/ -goTo.file('jsdocCompletion_typedef.js'); -goTo.marker('3'); -goTo.definition(); -verify.caretAtMarker('1'); - -goTo.marker('4'); -goTo.definition(); -verify.caretAtMarker('2'); +verify.goToDefinition({ + 3: "1", + 4: "2" +}); diff --git a/tests/cases/fourslash/shims-pp/getDefinitionAtPosition.ts b/tests/cases/fourslash/shims-pp/getDefinitionAtPosition.ts index 3aa31d1556c56..1679563942c51 100644 --- a/tests/cases/fourslash/shims-pp/getDefinitionAtPosition.ts +++ b/tests/cases/fourslash/shims-pp/getDefinitionAtPosition.ts @@ -14,16 +14,4 @@ ////class fooCls implements /*remoteInterfaceReference*/remoteInterface { } ////var fooVar = /*remoteModuleReference*/remoteModule.foo; -var markerList = [ - "remoteVariable", - "remoteFunction", - "remoteClass", - "remoteInterface", - "remoteModule", -]; - -markerList.forEach((marker) => { - goTo.marker(marker + 'Reference'); - goTo.definition(); - verify.caretAtMarker(marker + 'Definition'); -}); +verify.goToDefinitionForMarkers("remoteVariable", "remoteFunction", "remoteClass", "remoteInterface", "remoteModule"); diff --git a/tests/cases/fourslash/shims-pp/goToDefinitionTypeReferenceDirective.ts b/tests/cases/fourslash/shims-pp/goToDefinitionTypeReferenceDirective.ts index 78dfa94c5e44a..ad02bb9d85124 100644 --- a/tests/cases/fourslash/shims-pp/goToDefinitionTypeReferenceDirective.ts +++ b/tests/cases/fourslash/shims-pp/goToDefinitionTypeReferenceDirective.ts @@ -8,6 +8,4 @@ //// /// //// $.x; -goTo.marker("1"); -goTo.definition(); -verify.caretAtMarker("0"); \ No newline at end of file +verify.goToDefinition("1", "0"); diff --git a/tests/cases/fourslash/shims/getDefinitionAtPosition.ts b/tests/cases/fourslash/shims/getDefinitionAtPosition.ts index 3aa31d1556c56..1679563942c51 100644 --- a/tests/cases/fourslash/shims/getDefinitionAtPosition.ts +++ b/tests/cases/fourslash/shims/getDefinitionAtPosition.ts @@ -14,16 +14,4 @@ ////class fooCls implements /*remoteInterfaceReference*/remoteInterface { } ////var fooVar = /*remoteModuleReference*/remoteModule.foo; -var markerList = [ - "remoteVariable", - "remoteFunction", - "remoteClass", - "remoteInterface", - "remoteModule", -]; - -markerList.forEach((marker) => { - goTo.marker(marker + 'Reference'); - goTo.definition(); - verify.caretAtMarker(marker + 'Definition'); -}); +verify.goToDefinitionForMarkers("remoteVariable", "remoteFunction", "remoteClass", "remoteInterface", "remoteModule"); diff --git a/tests/cases/fourslash/shims/goToDefinitionTypeReferenceDirective.ts b/tests/cases/fourslash/shims/goToDefinitionTypeReferenceDirective.ts index dc2fc356c57aa..4669b7f62e902 100644 --- a/tests/cases/fourslash/shims/goToDefinitionTypeReferenceDirective.ts +++ b/tests/cases/fourslash/shims/goToDefinitionTypeReferenceDirective.ts @@ -8,6 +8,4 @@ //// /// //// $.x; -goTo.marker("1"); -goTo.definition(); -verify.caretAtMarker("0"); \ No newline at end of file +verify.goToDefinition("1", "0"); diff --git a/tests/cases/fourslash/tsxGoToDefinitionClasses.ts b/tests/cases/fourslash/tsxGoToDefinitionClasses.ts index 11ff3afeb8ae3..9c54834534d34 100644 --- a/tests/cases/fourslash/tsxGoToDefinitionClasses.ts +++ b/tests/cases/fourslash/tsxGoToDefinitionClasses.ts @@ -14,10 +14,7 @@ //// var x = ; //// var y = ; -goTo.marker('c'); -goTo.definition(); -verify.caretAtMarker('ct'); - -goTo.marker('p'); -goTo.definition(); -verify.caretAtMarker('pt'); +verify.goToDefinition({ + c: "ct", + p: "pt" +}); diff --git a/tests/cases/fourslash/tsxGoToDefinitionIntrinsics.ts b/tests/cases/fourslash/tsxGoToDefinitionIntrinsics.ts index bbdf395e4789a..a82e813baa73d 100644 --- a/tests/cases/fourslash/tsxGoToDefinitionIntrinsics.ts +++ b/tests/cases/fourslash/tsxGoToDefinitionIntrinsics.ts @@ -15,15 +15,8 @@ //// var y = ; //// var z =
; -goTo.marker('ds'); -goTo.definition(); -verify.caretAtMarker('dt'); - -goTo.marker('ss'); -goTo.definition(); -verify.caretAtMarker('st'); - -goTo.marker('ps'); -goTo.definition(); -verify.caretAtMarker('pt'); - +verify.goToDefinition({ + ds: "dt", + ss: "st", + ps: "pt" +}); diff --git a/tests/cases/fourslash_old/thisRefGotoDef.ts b/tests/cases/fourslash_old/thisRefGotoDef.ts index 125b4acc985fe..ba16a6aa31c9a 100644 --- a/tests/cases/fourslash_old/thisRefGotoDef.ts +++ b/tests/cases/fourslash_old/thisRefGotoDef.ts @@ -9,6 +9,4 @@ //// } //// } -goTo.marker('ref'); -goTo.definition(); -verify.caretAtMarker('def'); \ No newline at end of file +verify.goToDefinition("ref", "def");