diff --git a/src/compiler/utilities.ts b/src/compiler/utilities.ts index e3efd12de0a..cc466834cbf 100644 --- a/src/compiler/utilities.ts +++ b/src/compiler/utilities.ts @@ -703,6 +703,7 @@ module ts { case SyntaxKind.TemplateExpression: case SyntaxKind.NoSubstitutionTemplateLiteral: case SyntaxKind.OmittedExpression: + case SyntaxKind.Decorator: return true; case SyntaxKind.QualifiedName: while (node.parent.kind === SyntaxKind.QualifiedName) { diff --git a/tests/cases/fourslash/findAllRefsOnDecorators.ts b/tests/cases/fourslash/findAllRefsOnDecorators.ts new file mode 100644 index 00000000000..3225bc108ce --- /dev/null +++ b/tests/cases/fourslash/findAllRefsOnDecorators.ts @@ -0,0 +1,19 @@ +/// + +// @Filename: a.ts +////function decorator(target) { +//// return target; +////} +////decorator(); + +// @Filename: b.ts +////@deco/*1*/rator @decorator("again") +////class C { +//// @decorator +//// method() {} +////} + +goTo.file("b.ts"); +goTo.marker("1"); + +verify.referencesCountIs(5); \ No newline at end of file diff --git a/tests/cases/fourslash/goToDefinitionDecorator.ts b/tests/cases/fourslash/goToDefinitionDecorator.ts new file mode 100644 index 00000000000..b0899a9576c --- /dev/null +++ b/tests/cases/fourslash/goToDefinitionDecorator.ts @@ -0,0 +1,26 @@ +/// + +// @Filename: b.ts +////@/*decoratorUse*/decorator +////class C { +//// @decora/*decoratorFactoryUse*/torFactory(a, "22", true) +//// method() {} +////} + + +// @Filename: a.ts +/////*decoratorDefinition*/function decorator(target) { +//// return target; +////} +/////*decoratorFactoryDefinition*/function decoratorFactory(...args) { +//// return target => target; +////} + + +goTo.marker('decoratorUse'); +goTo.definition(); +verify.caretAtMarker('decoratorDefinition'); + +goTo.marker('decoratorFactoryUse'); +goTo.definition(); +verify.caretAtMarker('decoratorFactoryDefinition');