diff --git a/src/services/goToDefinition.ts b/src/services/goToDefinition.ts index eaee0afdd1e..0641c814cac 100644 --- a/src/services/goToDefinition.ts +++ b/src/services/goToDefinition.ts @@ -156,10 +156,16 @@ namespace ts.GoToDefinition { return undefined; } - // TODO: Add textSpan for triple slash references (file and type). - const comment = findReferenceInPosition(sourceFile.referencedFiles, position); - if (comment && tryResolveScriptReference(program, sourceFile, comment) || findReferenceInPosition(sourceFile.typeReferenceDirectives, position)) { - return { definitions, textSpan: undefined }; + let comment = findReferenceInPosition(sourceFile.referencedFiles, position); + if (!comment || !tryResolveScriptReference(program, sourceFile, comment)) { + comment = findReferenceInPosition(sourceFile.typeReferenceDirectives, position); + } + + if (comment) { + return { + definitions, + textSpan: createTextSpanFromBounds(comment.pos, comment.end) + }; } const node = getTouchingPropertyName(sourceFile, position, /*includeJsDocComment*/ true); diff --git a/tests/cases/fourslash/goToDefinitionSourceUnit.ts b/tests/cases/fourslash/goToDefinitionSourceUnit.ts index e66b5ef7960..d823b366eee 100644 --- a/tests/cases/fourslash/goToDefinitionSourceUnit.ts +++ b/tests/cases/fourslash/goToDefinitionSourceUnit.ts @@ -4,7 +4,7 @@ //// //MyFile Comments //// //more comments //// /// -//// /// +//// /// //// //// class clsInOverload { //// static fnOverload(); diff --git a/tests/cases/fourslash/goToDefinitionTypeReferenceDirective.ts b/tests/cases/fourslash/goToDefinitionTypeReferenceDirective.ts index ad02bb9d851..532390fb35e 100644 --- a/tests/cases/fourslash/goToDefinitionTypeReferenceDirective.ts +++ b/tests/cases/fourslash/goToDefinitionTypeReferenceDirective.ts @@ -5,7 +5,7 @@ /////*0*/declare let $: {x: number}; // @Filename: src/app.ts -//// /// +//// /// //// $.x; verify.goToDefinition("1", "0"); diff --git a/tests/cases/fourslash/shims-pp/goToDefinitionTypeReferenceDirective.ts b/tests/cases/fourslash/shims-pp/goToDefinitionTypeReferenceDirective.ts index ad02bb9d851..532390fb35e 100644 --- a/tests/cases/fourslash/shims-pp/goToDefinitionTypeReferenceDirective.ts +++ b/tests/cases/fourslash/shims-pp/goToDefinitionTypeReferenceDirective.ts @@ -5,7 +5,7 @@ /////*0*/declare let $: {x: number}; // @Filename: src/app.ts -//// /// +//// /// //// $.x; verify.goToDefinition("1", "0"); diff --git a/tests/cases/fourslash/shims/goToDefinitionTypeReferenceDirective.ts b/tests/cases/fourslash/shims/goToDefinitionTypeReferenceDirective.ts index 4669b7f62e9..f318de7c25e 100644 --- a/tests/cases/fourslash/shims/goToDefinitionTypeReferenceDirective.ts +++ b/tests/cases/fourslash/shims/goToDefinitionTypeReferenceDirective.ts @@ -5,7 +5,7 @@ /////*0*/declare let $: {x: number}; // @Filename: src/app.ts -//// /// +//// /// //// $.x; verify.goToDefinition("1", "0");