diff --git a/src/services/services.ts b/src/services/services.ts index 018f322ac41..82f19d1797c 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -2403,7 +2403,7 @@ module ts { case SyntaxKind.CommaToken: return containingNodeKind === SyntaxKind.VariableDeclaration || containingNodeKind === SyntaxKind.VariableStatement || - containingNodeKind === SyntaxKind.EnumDeclaration || // enum { foo, | + containingNodeKind === SyntaxKind.EnumDeclaration || // enum a { foo, | isFunction(containingNodeKind); case SyntaxKind.OpenParenToken: @@ -2411,8 +2411,12 @@ module ts { isFunction(containingNodeKind); case SyntaxKind.OpenBraceToken: - return containingNodeKind === SyntaxKind.EnumDeclaration; // enum { | - // containingNodeKind === SyntaxKind.InterfaceDeclaration; + return containingNodeKind === SyntaxKind.EnumDeclaration || // enum a { | + containingNodeKind === SyntaxKind.InterfaceDeclaration; // interface a { | + + case SyntaxKind.SemicolonToken: + return containingNodeKind === SyntaxKind.Property && + previousToken.parent.parent.kind === SyntaxKind.InterfaceDeclaration; // interface a { f; | case SyntaxKind.PublicKeyword: case SyntaxKind.PrivateKeyword: diff --git a/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_interfaceMembers.ts b/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_interfaceMembers.ts new file mode 100644 index 00000000000..266b0b78c9c --- /dev/null +++ b/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_interfaceMembers.ts @@ -0,0 +1,10 @@ +/// + +////var aa = 1; + +////interface a { /*interfaceValue1*/ + +test.markers().forEach((m) => { + goTo.position(m.position, m.fileName); + verify.completionListIsEmpty(); +}); diff --git a/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_interfaceMembers2.ts b/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_interfaceMembers2.ts new file mode 100644 index 00000000000..82a30325948 --- /dev/null +++ b/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_interfaceMembers2.ts @@ -0,0 +1,10 @@ +/// + +////var aa = 1; + +////interface a { f/*interfaceValue2*/ + +test.markers().forEach((m) => { + goTo.position(m.position, m.fileName); + verify.completionListIsEmpty(); +}); diff --git a/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_interfaceMembers3.ts b/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_interfaceMembers3.ts new file mode 100644 index 00000000000..ed640dd3f1a --- /dev/null +++ b/tests/cases/fourslash/completionListAtIdentifierDefinitionLocations_interfaceMembers3.ts @@ -0,0 +1,10 @@ +/// + +////var aa = 1; + +////interface a { f; /*interfaceValue3*/ + +test.markers().forEach((m) => { + goTo.position(m.position, m.fileName); + verify.completionListIsEmpty(); +});