From 37f8eac014594263e213b34fa5dd2c2a218f61d4 Mon Sep 17 00:00:00 2001 From: Andy Hanson Date: Mon, 29 Aug 2016 13:34:32 -0700 Subject: [PATCH 1/2] Simplify go-to-definition tests --- src/harness/fourslash.ts | 139 ++++++++++-------- .../ambientShorthandGotoDefinition.ts | 26 ++-- tests/cases/fourslash/definition.ts | 4 +- .../fourslash/definitionNameOnEnumMember.ts | 2 +- tests/cases/fourslash/fourslash.ts | 17 ++- .../goToDeclarationDecoratorOverloads.ts | 10 +- .../goToDefinitionAcrossMultipleProjects.ts | 11 +- tests/cases/fourslash/goToDefinitionAlias.ts | 20 +-- .../cases/fourslash/goToDefinitionAmbiants.ts | 14 +- .../goToDefinitionApparentTypeProperties.ts | 8 +- .../fourslash/goToDefinitionBuiltInTypes.ts | 7 +- .../fourslash/goToDefinitionBuiltInValues.ts | 7 +- ...efinitionConstructorOfClassExpression01.ts | 4 +- ...OfClassWhenClassIsPrecededByNamespace01.ts | 4 +- .../goToDefinitionConstructorOverloads.ts | 15 +- .../fourslash/goToDefinitionDecorator.ts | 11 +- .../fourslash/goToDefinitionDifferentFile.ts | 14 +- .../goToDefinitionDifferentFileIndirectly.ts | 14 +- .../goToDefinitionExternalModuleName.ts | 4 +- .../goToDefinitionExternalModuleName2.ts | 4 +- .../goToDefinitionExternalModuleName3.ts | 4 +- .../goToDefinitionExternalModuleName4.ts | 3 +- .../goToDefinitionExternalModuleName5.ts | 4 +- .../goToDefinitionExternalModuleName6.ts | 4 +- .../goToDefinitionExternalModuleName7.ts | 4 +- .../goToDefinitionExternalModuleName8.ts | 4 +- .../goToDefinitionExternalModuleName9.ts | 4 +- .../goToDefinitionFunctionOverloads.ts | 20 +-- .../goToDefinitionFunctionOverloadsInClass.ts | 10 +- .../goToDefinitionImplicitConstructor.ts | 4 +- .../fourslash/goToDefinitionImportedNames.ts | 5 +- .../fourslash/goToDefinitionImportedNames2.ts | 6 +- .../fourslash/goToDefinitionImportedNames3.ts | 10 +- .../fourslash/goToDefinitionImportedNames4.ts | 6 +- .../fourslash/goToDefinitionImportedNames5.ts | 6 +- .../fourslash/goToDefinitionImportedNames6.ts | 6 +- .../fourslash/goToDefinitionImportedNames7.ts | 6 +- .../goToDefinitionInMemberDeclaration.ts | 37 +---- .../fourslash/goToDefinitionInTypeArgument.ts | 9 +- .../goToDefinitionInterfaceAfterImplement.ts | 4 +- tests/cases/fourslash/goToDefinitionLabels.ts | 23 +-- .../goToDefinitionMethodOverloads.ts | 31 +--- .../goToDefinitionMultipleDefinitions.ts | 31 +--- ...itionObjectBindingElementPropertyName01.ts | 5 +- .../goToDefinitionObjectLiteralProperties.ts | 14 +- ...tionOverloadsInMultiplePropertyAccesses.ts | 4 +- .../goToDefinitionPartialImplementation.ts | 6 +- .../fourslash/goToDefinitionPrimitives.ts | 5 +- .../cases/fourslash/goToDefinitionSameFile.ts | 14 +- .../fourslash/goToDefinitionShadowVariable.ts | 4 +- ...oToDefinitionShadowVariableInsideModule.ts | 4 +- .../goToDefinitionShorthandProperty01.ts | 21 +-- .../goToDefinitionShorthandProperty02.ts | 3 +- .../goToDefinitionShorthandProperty03.ts | 10 +- tests/cases/fourslash/goToDefinitionSimple.ts | 8 +- .../fourslash/goToDefinitionSourceUnit.ts | 9 +- .../goToDefinitionTaggedTemplateOverloads.ts | 10 +- tests/cases/fourslash/goToDefinitionThis.ts | 14 +- .../fourslash/goToDefinitionTypePredicate.ts | 12 +- .../goToDefinitionTypeReferenceDirective.ts | 4 +- .../goToDefinitionUndefinedSymbols.ts | 7 +- .../goToDefinitionUnionTypeProperty1.ts | 10 +- .../goToDefinitionUnionTypeProperty2.ts | 9 +- .../goToDefinitionUnionTypeProperty3.ts | 5 +- .../goToDefinitionUnionTypeProperty4.ts | 13 +- tests/cases/fourslash/goToDefinition_super.ts | 17 +-- .../fourslash/goToModuleAliasDefinition.ts | 5 +- tests/cases/fourslash/hoverOverComment.ts | 3 +- tests/cases/fourslash/javaScriptClass3.ts | 10 +- tests/cases/fourslash/jsxSpreadReference.ts | 4 +- tests/cases/fourslash/proto.ts | 3 +- ...-declaration-with-variable-entity-names.ts | 4 +- tests/cases/fourslash/quickInfoMeaning.ts | 12 +- tests/cases/fourslash/server/definition01.ts | 4 +- .../server/jsdocTypedefTagGoToDefinition.ts | 11 +- .../shims-pp/getDefinitionAtPosition.ts | 14 +- .../goToDefinitionTypeReferenceDirective.ts | 4 +- .../shims/getDefinitionAtPosition.ts | 14 +- .../goToDefinitionTypeReferenceDirective.ts | 4 +- .../fourslash/tsxGoToDefinitionClasses.ts | 10 +- .../fourslash/tsxGoToDefinitionIntrinsics.ts | 16 +- tests/cases/fourslash_old/thisRefGotoDef.ts | 4 +- 82 files changed, 259 insertions(+), 647 deletions(-) diff --git a/src/harness/fourslash.ts b/src/harness/fourslash.ts index bd35923022087..74ed3e307dddc 100644 --- a/src/harness/fourslash.ts +++ b/src/harness/fourslash.ts @@ -525,6 +525,56 @@ namespace FourSlash { } } + public verifyGoToDefinitionIs(endMarker: string | string[]) { + this.verifyGoToDefinitionWorker(endMarker instanceof Array ? endMarker : [endMarker]); + } + + public verifyGoToDefinition(startsAndEnds: (string | string[])[]) { + if (startsAndEnds.length % 2) { + throw new Error("verify.goToDefinition needs an even number of arguments."); + } + + for (let i = 0; i < startsAndEnds.length; i += 2) { + const start = startsAndEnds[i]; + const end = startsAndEnds[i + 1]; + + if (start instanceof Array) { + for (const s of start) { + this.verifyGoToDefinitionSingle(s, end); + } + } + else { + this.verifyGoToDefinitionSingle(start, end); + } + } + } + + public verifyGoToDefinitionForMarkers(markerNames: string[]) { + for (const markerName of markerNames) { + this.verifyGoToDefinitionSingle(`${markerName}Reference`, `${markerName}Definition`); + } + } + + private verifyGoToDefinitionSingle(start: string, end: string | string[]) { + this.goToMarker(start); + this.verifyGoToDefinitionWorker(end instanceof Array ? end : [end]); + } + + 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 +1611,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 +1626,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 +1635,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 +1648,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 +2753,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 +2792,6 @@ namespace FourSlashInterface { this.state.goToEOF(); } - public definition(definitionIndex = 0) { - this.state.goToDefinition(definitionIndex); - } - public type(definitionIndex = 0) { this.state.goToTypeDefinition(definitionIndex); } @@ -2885,22 +2896,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 +2943,22 @@ namespace FourSlashInterface { this.state.verifyCurrentFileContent(text); } + public goToDefinitionIs(endMarkers: string | string[]) { + this.state.verifyGoToDefinitionIs(endMarkers); + } + + public goToDefinition(...startsAndEnds: (string | string[])[]) { + this.state.verifyGoToDefinition(startsAndEnds); + } + + 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..bf109ce8ef411 100644 --- a/tests/cases/fourslash/ambientShorthandGotoDefinition.ts +++ b/tests/cases/fourslash/ambientShorthandGotoDefinition.ts @@ -12,28 +12,22 @@ 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..834bf1fd2dac2 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,18 @@ 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. + * Finally, `verify.goToDefinition("a", "b", "c", "d");` is just `verify.goToDefinition("a", "b"); verify.goToDefinition("c", "d");`. + */ + goToDefinition(...startsAndEnds: (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..ae9d5fa86b604 100644 --- a/tests/cases/fourslash/goToDeclarationDecoratorOverloads.ts +++ b/tests/cases/fourslash/goToDeclarationDecoratorOverloads.ts @@ -13,10 +13,6 @@ //// @/*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..2e73d834d42e0 100644 --- a/tests/cases/fourslash/goToDefinitionAlias.ts +++ b/tests/cases/fourslash/goToDefinitionAlias.ts @@ -23,20 +23,6 @@ //// 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..2899ad76dbc88 100644 --- a/tests/cases/fourslash/goToDefinitionConstructorOverloads.ts +++ b/tests/cases/fourslash/goToDefinitionConstructorOverloads.ts @@ -9,14 +9,7 @@ ////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..6511e87a57ee3 100644 --- a/tests/cases/fourslash/goToDefinitionDecorator.ts +++ b/tests/cases/fourslash/goToDefinitionDecorator.ts @@ -16,11 +16,6 @@ //// 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..012689c984d5d 100644 --- a/tests/cases/fourslash/goToDefinitionFunctionOverloads.ts +++ b/tests/cases/fourslash/goToDefinitionFunctionOverloads.ts @@ -8,18 +8,8 @@ /////*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..bd8c0260622d1 100644 --- a/tests/cases/fourslash/goToDefinitionFunctionOverloadsInClass.ts +++ b/tests/cases/fourslash/goToDefinitionFunctionOverloadsInClass.ts @@ -11,10 +11,6 @@ //// 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..307a6813e33f1 100644 --- a/tests/cases/fourslash/goToDefinitionInMemberDeclaration.ts +++ b/tests/cases/fourslash/goToDefinitionInMemberDeclaration.ts @@ -19,35 +19,8 @@ //// } ////} - -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..212c313e02375 100644 --- a/tests/cases/fourslash/goToDefinitionLabels.ts +++ b/tests/cases/fourslash/goToDefinitionLabels.ts @@ -9,19 +9,10 @@ //// } ////} -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..4b326b38a6cb6 100644 --- a/tests/cases/fourslash/goToDefinitionMethodOverloads.ts +++ b/tests/cases/fourslash/goToDefinitionMethodOverloads.ts @@ -18,27 +18,10 @@ ////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..54ebceec00722 100644 --- a/tests/cases/fourslash/goToDefinitionShorthandProperty01.ts +++ b/tests/cases/fourslash/goToDefinitionShorthandProperty01.ts @@ -7,19 +7,8 @@ //// 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..7a0a93934e3ef 100644 --- a/tests/cases/fourslash/goToDefinitionShorthandProperty03.ts +++ b/tests/cases/fourslash/goToDefinitionShorthandProperty03.ts @@ -7,10 +7,6 @@ //// /*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..b96a992aac1e5 100644 --- a/tests/cases/fourslash/goToDefinitionSourceUnit.ts +++ b/tests/cases/fourslash/goToDefinitionSourceUnit.ts @@ -16,9 +16,6 @@ // @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..a7725bbcda720 100644 --- a/tests/cases/fourslash/goToDefinitionTaggedTemplateOverloads.ts +++ b/tests/cases/fourslash/goToDefinitionTaggedTemplateOverloads.ts @@ -7,10 +7,6 @@ /////*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..6f03cb77284d9 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,7 @@ //// 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..0fb211c5057f9 100644 --- a/tests/cases/fourslash/goToDefinitionTypePredicate.ts +++ b/tests/cases/fourslash/goToDefinitionTypePredicate.ts @@ -5,12 +5,6 @@ //// 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..09996fcc2e93c 100644 --- a/tests/cases/fourslash/goToDefinition_super.ts +++ b/tests/cases/fourslash/goToDefinition_super.ts @@ -19,15 +19,10 @@ //// } ////} -// 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..96e6f5b0c40f4 100644 --- a/tests/cases/fourslash/goToModuleAliasDefinition.ts +++ b/tests/cases/fourslash/goToModuleAliasDefinition.ts @@ -7,7 +7,6 @@ //// /*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"); +goTo.marker('1'); 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..2a504d4903629 100644 --- a/tests/cases/fourslash/javaScriptClass3.ts +++ b/tests/cases/fourslash/javaScriptClass3.ts @@ -15,10 +15,6 @@ //// 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..1074e206559ce 100644 --- a/tests/cases/fourslash/server/jsdocTypedefTagGoToDefinition.ts +++ b/tests/cases/fourslash/server/jsdocTypedefTagGoToDefinition.ts @@ -19,11 +19,6 @@ //// /** @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..b6ee9ef484f59 100644 --- a/tests/cases/fourslash/tsxGoToDefinitionClasses.ts +++ b/tests/cases/fourslash/tsxGoToDefinitionClasses.ts @@ -14,10 +14,6 @@ //// 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..e268de2b026a6 100644 --- a/tests/cases/fourslash/tsxGoToDefinitionIntrinsics.ts +++ b/tests/cases/fourslash/tsxGoToDefinitionIntrinsics.ts @@ -15,15 +15,7 @@ //// 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"); From c75f6d0ec773b85370ae0cd265e83068a0aa0b04 Mon Sep 17 00:00:00 2001 From: Andy Hanson Date: Fri, 2 Sep 2016 12:47:26 -0700 Subject: [PATCH 2/2] Add multiple overloads for `verify.goToDefinition`. Use explicit pairs `verify.goToDefinition([["a", "b"], ["c", "d"]])` instead of `verify.goToDefinition("a", "b", "c", "d")`. Also provide an option `verify.goToDefinition({ a: "b", c: "d" })` for cases where the starts are not theirselves lists. --- src/harness/fourslash.ts | 50 ++++++++++++------- .../ambientShorthandGotoDefinition.ts | 21 ++++---- tests/cases/fourslash/fourslash.ts | 7 ++- .../goToDeclarationDecoratorOverloads.ts | 7 +-- tests/cases/fourslash/goToDefinitionAlias.ts | 7 +-- .../goToDefinitionConstructorOverloads.ts | 9 ++-- .../fourslash/goToDefinitionDecorator.ts | 7 +-- .../goToDefinitionFunctionOverloads.ts | 11 ++-- .../goToDefinitionFunctionOverloadsInClass.ts | 7 +-- .../goToDefinitionInMemberDeclaration.ts | 11 ++-- tests/cases/fourslash/goToDefinitionLabels.ts | 11 ++-- .../goToDefinitionMethodOverloads.ts | 15 +++--- .../goToDefinitionShorthandProperty01.ts | 11 ++-- .../goToDefinitionShorthandProperty03.ts | 7 +-- .../fourslash/goToDefinitionSourceUnit.ts | 7 +-- .../goToDefinitionTaggedTemplateOverloads.ts | 7 +-- tests/cases/fourslash/goToDefinitionThis.ts | 9 ++-- .../fourslash/goToDefinitionTypePredicate.ts | 7 +-- tests/cases/fourslash/goToDefinition_super.ts | 9 ++-- .../fourslash/goToModuleAliasDefinition.ts | 1 - tests/cases/fourslash/javaScriptClass3.ts | 7 +-- .../server/jsdocTypedefTagGoToDefinition.ts | 7 +-- .../fourslash/tsxGoToDefinitionClasses.ts | 7 +-- .../fourslash/tsxGoToDefinitionIntrinsics.ts | 9 ++-- 24 files changed, 145 insertions(+), 106 deletions(-) diff --git a/src/harness/fourslash.ts b/src/harness/fourslash.ts index 74ed3e307dddc..d5c1e179c67e0 100644 --- a/src/harness/fourslash.ts +++ b/src/harness/fourslash.ts @@ -529,24 +529,35 @@ namespace FourSlash { this.verifyGoToDefinitionWorker(endMarker instanceof Array ? endMarker : [endMarker]); } - public verifyGoToDefinition(startsAndEnds: (string | string[])[]) { - if (startsAndEnds.length % 2) { - throw new Error("verify.goToDefinition needs an even number of arguments."); + public verifyGoToDefinition(arg0: any, endMarkerNames?: string | string[]) { + if (endMarkerNames) { + this.verifyGoToDefinitionPlain(arg0, endMarkerNames); } - - for (let i = 0; i < startsAndEnds.length; i += 2) { - const start = startsAndEnds[i]; - const end = startsAndEnds[i + 1]; - - if (start instanceof Array) { - for (const s of start) { - this.verifyGoToDefinitionSingle(s, end); + 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]); } } - else { - this.verifyGoToDefinitionSingle(start, end); + } + } + + 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[]) { @@ -555,9 +566,9 @@ namespace FourSlash { } } - private verifyGoToDefinitionSingle(start: string, end: string | string[]) { - this.goToMarker(start); - this.verifyGoToDefinitionWorker(end instanceof Array ? end : [end]); + private verifyGoToDefinitionSingle(startMarkerName: string, endMarkerNames: string | string[]) { + this.goToMarker(startMarkerName); + this.verifyGoToDefinitionWorker(endMarkerNames instanceof Array ? endMarkerNames : [endMarkerNames]); } private verifyGoToDefinitionWorker(endMarkers: string[]) { @@ -2947,8 +2958,11 @@ namespace FourSlashInterface { this.state.verifyGoToDefinitionIs(endMarkers); } - public goToDefinition(...startsAndEnds: (string | string[])[]) { - this.state.verifyGoToDefinition(startsAndEnds); + 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[]) { diff --git a/tests/cases/fourslash/ambientShorthandGotoDefinition.ts b/tests/cases/fourslash/ambientShorthandGotoDefinition.ts index bf109ce8ef411..f7fcbe9f05355 100644 --- a/tests/cases/fourslash/ambientShorthandGotoDefinition.ts +++ b/tests/cases/fourslash/ambientShorthandGotoDefinition.ts @@ -12,9 +12,10 @@ goTo.marker("useFoo"); verify.quickInfoIs("import foo"); -verify.goToDefinition( - "useFoo", "importFoo", - "importFoo", "module"); +verify.goToDefinition({ + useFoo: "importFoo", + importFoo: "module" +}); goTo.marker("useBar"); verify.quickInfoIs("import bar"); @@ -22,12 +23,14 @@ verify.goToDefinition("useBar", "module"); goTo.marker("useBaz"); verify.quickInfoIs("import baz"); -verify.goToDefinition( - "useBaz", "importBaz", - "idBaz", "module"); +verify.goToDefinition({ + useBaz: "importBaz", + idBaz: "module" +}); goTo.marker("useBang"); verify.quickInfoIs("import bang = require(\"jquery\")"); -verify.goToDefinition( - "useBang", "importBang", - "idBang", "module"); +verify.goToDefinition({ + useBang: "importBang", + idBang: "module" +}); diff --git a/tests/cases/fourslash/fourslash.ts b/tests/cases/fourslash/fourslash.ts index 834bf1fd2dac2..1c400ff5f97e8 100644 --- a/tests/cases/fourslash/fourslash.ts +++ b/tests/cases/fourslash/fourslash.ts @@ -156,9 +156,12 @@ declare namespace FourSlashInterface { * `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. - * Finally, `verify.goToDefinition("a", "b", "c", "d");` is just `verify.goToDefinition("a", "b"); verify.goToDefinition("c", "d");`. */ - goToDefinition(...startsAndEnds: (string | string[])[]): void; + 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; diff --git a/tests/cases/fourslash/goToDeclarationDecoratorOverloads.ts b/tests/cases/fourslash/goToDeclarationDecoratorOverloads.ts index ae9d5fa86b604..c107f7f6803ab 100644 --- a/tests/cases/fourslash/goToDeclarationDecoratorOverloads.ts +++ b/tests/cases/fourslash/goToDeclarationDecoratorOverloads.ts @@ -13,6 +13,7 @@ //// @/*useDecSymbol*/dec [s]() {} ////} -verify.goToDefinition( - "useDecString", "defDecString", - "useDecSymbol", "defDecSymbol"); +verify.goToDefinition({ + useDecString: "defDecString", + useDecSymbol: "defDecSymbol" +}); diff --git a/tests/cases/fourslash/goToDefinitionAlias.ts b/tests/cases/fourslash/goToDefinitionAlias.ts index 2e73d834d42e0..23cf849f1014b 100644 --- a/tests/cases/fourslash/goToDefinitionAlias.ts +++ b/tests/cases/fourslash/goToDefinitionAlias.ts @@ -23,6 +23,7 @@ //// x; ////} -verify.goToDefinition( - ["alias1Type", "alias1Value"], "alias1Definition", - ["alias2Type", "alias2Value"], "alias2Definition"); +verify.goToDefinition([ + [["alias1Type", "alias1Value"], "alias1Definition"], + [["alias2Type", "alias2Value"], "alias2Definition"] +]); diff --git a/tests/cases/fourslash/goToDefinitionConstructorOverloads.ts b/tests/cases/fourslash/goToDefinitionConstructorOverloads.ts index 2899ad76dbc88..a3a5e3286b28f 100644 --- a/tests/cases/fourslash/goToDefinitionConstructorOverloads.ts +++ b/tests/cases/fourslash/goToDefinitionConstructorOverloads.ts @@ -9,7 +9,8 @@ ////var constructorOverload = new /*constructorOverloadReference1*/ConstructorOverload(); ////var constructorOverload = new /*constructorOverloadReference2*/ConstructorOverload("foo"); -verify.goToDefinition( - "constructorOverloadReference1", "constructorOverload1", - "constructorOverloadReference2", "constructorOverload2", - "constructorOverload1", "constructorDefinition"); +verify.goToDefinition({ + constructorOverloadReference1: "constructorOverload1", + constructorOverloadReference2: "constructorOverload2", + constructorOverload1: "constructorDefinition" +}); diff --git a/tests/cases/fourslash/goToDefinitionDecorator.ts b/tests/cases/fourslash/goToDefinitionDecorator.ts index 6511e87a57ee3..c86b02ab820d4 100644 --- a/tests/cases/fourslash/goToDefinitionDecorator.ts +++ b/tests/cases/fourslash/goToDefinitionDecorator.ts @@ -16,6 +16,7 @@ //// return target => target; ////} -verify.goToDefinition( - "decoratorUse", "decoratorDefinition", - "decoratorFactoryUse", "decoratorFactoryDefinition"); +verify.goToDefinition({ + decoratorUse: "decoratorDefinition", + decoratorFactoryUse: "decoratorFactoryDefinition" +}); diff --git a/tests/cases/fourslash/goToDefinitionFunctionOverloads.ts b/tests/cases/fourslash/goToDefinitionFunctionOverloads.ts index 012689c984d5d..e30150a1f45d8 100644 --- a/tests/cases/fourslash/goToDefinitionFunctionOverloads.ts +++ b/tests/cases/fourslash/goToDefinitionFunctionOverloads.ts @@ -8,8 +8,9 @@ /////*functionOverloadReference2*/functionOverload("123"); /////*brokenOverload*/functionOverload({}); -verify.goToDefinition( - "functionOverloadReference1", "functionOverload1", - "functionOverloadReference2", "functionOverload2", - "brokenOverload", "functionOverload1", - "functionOverload", "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 bd8c0260622d1..3426a4d5e1eda 100644 --- a/tests/cases/fourslash/goToDefinitionFunctionOverloadsInClass.ts +++ b/tests/cases/fourslash/goToDefinitionFunctionOverloadsInClass.ts @@ -11,6 +11,7 @@ //// constructor() { } ////} -verify.goToDefinition( - "staticFunctionOverload", "staticFunctionOverloadDefinition", - "functionOverload", "functionOverloadDefinition"); +verify.goToDefinition({ + staticFunctionOverload: "staticFunctionOverloadDefinition", + functionOverload: "functionOverloadDefinition" +}); diff --git a/tests/cases/fourslash/goToDefinitionInMemberDeclaration.ts b/tests/cases/fourslash/goToDefinitionInMemberDeclaration.ts index 307a6813e33f1..66719bb621b3a 100644 --- a/tests/cases/fourslash/goToDefinitionInMemberDeclaration.ts +++ b/tests/cases/fourslash/goToDefinitionInMemberDeclaration.ts @@ -19,8 +19,9 @@ //// } ////} -verify.goToDefinition( - ["interfaceReference", "interfaceReferenceInList", "interfaceReferenceInConstructor"], "interfaceDefinition", - ["classReference", "classReferenceInInitializer"], "classDefinition", - ["enumReference", "enumReferenceInInitializer"], "enumDefinition", - "selfReference", "selfDefinition"); +verify.goToDefinition([ + [["interfaceReference", "interfaceReferenceInList", "interfaceReferenceInConstructor"], "interfaceDefinition"], + [["classReference", "classReferenceInInitializer"], "classDefinition"], + [["enumReference", "enumReferenceInInitializer"], "enumDefinition"], + ["selfReference", "selfDefinition"] +]); diff --git a/tests/cases/fourslash/goToDefinitionLabels.ts b/tests/cases/fourslash/goToDefinitionLabels.ts index 212c313e02375..5cbf3ac8f2f05 100644 --- a/tests/cases/fourslash/goToDefinitionLabels.ts +++ b/tests/cases/fourslash/goToDefinitionLabels.ts @@ -9,10 +9,11 @@ //// } ////} -verify.goToDefinition( - "1", "label1Definition", - "2", "label2Definition", +verify.goToDefinition({ + 1: "label1Definition", + 2: "label2Definition", // labels accross function boundaries - "3", "label1Definition", + 3: "label1Definition", // undefined label - "4", []); + 4: [] +}); diff --git a/tests/cases/fourslash/goToDefinitionMethodOverloads.ts b/tests/cases/fourslash/goToDefinitionMethodOverloads.ts index 4b326b38a6cb6..199b5aee22605 100644 --- a/tests/cases/fourslash/goToDefinitionMethodOverloads.ts +++ b/tests/cases/fourslash/goToDefinitionMethodOverloads.ts @@ -18,10 +18,11 @@ ////methodOverload./*instanceMethodReference1*/method(); ////methodOverload./*instanceMethodReference2*/method("456"); -verify.goToDefinition( - "staticMethodReference1", "staticMethodOverload1", - "staticMethodReference2", "staticMethodOverload2", - "instanceMethodReference1", "instanceMethodOverload1", - "instanceMethodReference2", "instanceMethodOverload2", - "staticMethodOverload1Name", "staticMethodDefinition", - "instanceMethodOverload1Name", "instanceMethodDefinition"); +verify.goToDefinition({ + staticMethodReference1: "staticMethodOverload1", + staticMethodReference2: "staticMethodOverload2", + instanceMethodReference1: "instanceMethodOverload1", + instanceMethodReference2: "instanceMethodOverload2", + staticMethodOverload1Name: "staticMethodDefinition", + instanceMethodOverload1Name: "instanceMethodDefinition" +}); diff --git a/tests/cases/fourslash/goToDefinitionShorthandProperty01.ts b/tests/cases/fourslash/goToDefinitionShorthandProperty01.ts index 54ebceec00722..4107049286c08 100644 --- a/tests/cases/fourslash/goToDefinitionShorthandProperty01.ts +++ b/tests/cases/fourslash/goToDefinitionShorthandProperty01.ts @@ -7,8 +7,9 @@ //// obj./*valueReference1*/name; //// obj./*valueReference2*/id; -verify.goToDefinition( - "valueDefinition1", "valueDeclaration1", - "valueDefinition2", ["valueDeclaration2", "valueDeclaration3"], - "valueReference1", "valueDefinition1", - "valueReference2", "valueDefinition2"); +verify.goToDefinition({ + valueDefinition1: "valueDeclaration1", + valueDefinition2: ["valueDeclaration2", "valueDeclaration3"], + valueReference1: "valueDefinition1", + valueReference2: "valueDefinition2" +}); diff --git a/tests/cases/fourslash/goToDefinitionShorthandProperty03.ts b/tests/cases/fourslash/goToDefinitionShorthandProperty03.ts index 7a0a93934e3ef..42a9ee0a4d692 100644 --- a/tests/cases/fourslash/goToDefinitionShorthandProperty03.ts +++ b/tests/cases/fourslash/goToDefinitionShorthandProperty03.ts @@ -7,6 +7,7 @@ //// /*letProp*/y ////} -verify.goToDefinition( - "varProp", "varDef", - "letProp", "letDef"); +verify.goToDefinition({ + varProp: "varDef", + letProp: "letDef" +}); diff --git a/tests/cases/fourslash/goToDefinitionSourceUnit.ts b/tests/cases/fourslash/goToDefinitionSourceUnit.ts index b96a992aac1e5..e66b5ef79606f 100644 --- a/tests/cases/fourslash/goToDefinitionSourceUnit.ts +++ b/tests/cases/fourslash/goToDefinitionSourceUnit.ts @@ -16,6 +16,7 @@ // @Filename: b.ts /////*fileB*/ -verify.goToDefinition( - "unknownFile", [], - "knownFile", "fileB"); +verify.goToDefinition({ + unknownFile: [], + knownFile: "fileB" +}); diff --git a/tests/cases/fourslash/goToDefinitionTaggedTemplateOverloads.ts b/tests/cases/fourslash/goToDefinitionTaggedTemplateOverloads.ts index a7725bbcda720..fad27cabbb6e3 100644 --- a/tests/cases/fourslash/goToDefinitionTaggedTemplateOverloads.ts +++ b/tests/cases/fourslash/goToDefinitionTaggedTemplateOverloads.ts @@ -7,6 +7,7 @@ /////*useFNumber*/f`${0}`; /////*useFBool*/f`${false}`; -verify.goToDefinition( - "useFNumber", "defFNumber", - "useFBool", "defFBool"); +verify.goToDefinition({ + useFNumber: "defFNumber", + useFBool: "defFBool" +}); diff --git a/tests/cases/fourslash/goToDefinitionThis.ts b/tests/cases/fourslash/goToDefinitionThis.ts index 6f03cb77284d9..5cb94ef35c7a3 100644 --- a/tests/cases/fourslash/goToDefinitionThis.ts +++ b/tests/cases/fourslash/goToDefinitionThis.ts @@ -8,7 +8,8 @@ //// get self(/*getterDecl*/this: number) { return /*getterUse*/this; } ////} -verify.goToDefinition( - "fnUse", "fnDecl", - "clsUse", "cls", - "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 0fb211c5057f9..dd2b69f37e86a 100644 --- a/tests/cases/fourslash/goToDefinitionTypePredicate.ts +++ b/tests/cases/fourslash/goToDefinitionTypePredicate.ts @@ -5,6 +5,7 @@ //// return typeof parameter === "string"; //// } -verify.goToDefinition( - "parameterName", "parameterDeclaration", - "typeReference", "classDeclaration"); +verify.goToDefinition({ + parameterName: "parameterDeclaration", + typeReference: "classDeclaration" +}); diff --git a/tests/cases/fourslash/goToDefinition_super.ts b/tests/cases/fourslash/goToDefinition_super.ts index 09996fcc2e93c..7a7008ba07fe6 100644 --- a/tests/cases/fourslash/goToDefinition_super.ts +++ b/tests/cases/fourslash/goToDefinition_super.ts @@ -20,9 +20,10 @@ ////} -verify.goToDefinition( +verify.goToDefinition({ // Super in call position goes to constructor. - "super", "ctr", + super: "ctr", // Super in any other position goes to the superclass. - "superExpression", "B", - "superBroken", []); + superExpression: "B", + superBroken: [] +}); diff --git a/tests/cases/fourslash/goToModuleAliasDefinition.ts b/tests/cases/fourslash/goToModuleAliasDefinition.ts index 96e6f5b0c40f4..cdec82fd0d4dc 100644 --- a/tests/cases/fourslash/goToModuleAliasDefinition.ts +++ b/tests/cases/fourslash/goToModuleAliasDefinition.ts @@ -9,4 +9,3 @@ // Won't-fixed: Should go to '2' instead verify.goToDefinition("1", "3"); -goTo.marker('1'); diff --git a/tests/cases/fourslash/javaScriptClass3.ts b/tests/cases/fourslash/javaScriptClass3.ts index 2a504d4903629..41ce79b35eb35 100644 --- a/tests/cases/fourslash/javaScriptClass3.ts +++ b/tests/cases/fourslash/javaScriptClass3.ts @@ -15,6 +15,7 @@ //// x.alpha/*src1*/; //// x.beta/*src2*/; -verify.goToDefinition( - "src1", "dst1", - "src2", "dst2"); +verify.goToDefinition({ + src1: "dst1", + src2: "dst2" +}); diff --git a/tests/cases/fourslash/server/jsdocTypedefTagGoToDefinition.ts b/tests/cases/fourslash/server/jsdocTypedefTagGoToDefinition.ts index 1074e206559ce..2183c8d54716b 100644 --- a/tests/cases/fourslash/server/jsdocTypedefTagGoToDefinition.ts +++ b/tests/cases/fourslash/server/jsdocTypedefTagGoToDefinition.ts @@ -19,6 +19,7 @@ //// /** @type {Animal} */ //// var animal; animal.animalName/*4*/ -verify.goToDefinition( - "3", "1", - "4", "2"); +verify.goToDefinition({ + 3: "1", + 4: "2" +}); diff --git a/tests/cases/fourslash/tsxGoToDefinitionClasses.ts b/tests/cases/fourslash/tsxGoToDefinitionClasses.ts index b6ee9ef484f59..9c54834534d34 100644 --- a/tests/cases/fourslash/tsxGoToDefinitionClasses.ts +++ b/tests/cases/fourslash/tsxGoToDefinitionClasses.ts @@ -14,6 +14,7 @@ //// var x = ; //// var y = ; -verify.goToDefinition( - "c", "ct", - "p", "pt"); +verify.goToDefinition({ + c: "ct", + p: "pt" +}); diff --git a/tests/cases/fourslash/tsxGoToDefinitionIntrinsics.ts b/tests/cases/fourslash/tsxGoToDefinitionIntrinsics.ts index e268de2b026a6..a82e813baa73d 100644 --- a/tests/cases/fourslash/tsxGoToDefinitionIntrinsics.ts +++ b/tests/cases/fourslash/tsxGoToDefinitionIntrinsics.ts @@ -15,7 +15,8 @@ //// var y = ; //// var z =
; -verify.goToDefinition( - "ds", "dt", - "ss", "st", - "ps", "pt"); +verify.goToDefinition({ + ds: "dt", + ss: "st", + ps: "pt" +});