diff --git a/src/services/completions.ts b/src/services/completions.ts index bdf97266cf959..ca71985a45d24 100644 --- a/src/services/completions.ts +++ b/src/services/completions.ts @@ -2603,6 +2603,9 @@ namespace ts.Completions { if (!contextToken) return undefined; switch (contextToken.kind) { + case SyntaxKind.EqualsToken: // class c { public prop = | /* global completions */ } + return undefined; + case SyntaxKind.SemicolonToken: // class c {getValue(): number; | } case SyntaxKind.CloseBraceToken: // class c { method() { } | } // class c { method() { } b| } diff --git a/tests/cases/fourslash/completionsClassPropertiesAssignment.ts b/tests/cases/fourslash/completionsClassPropertiesAssignment.ts new file mode 100644 index 0000000000000..a3be4038c36e0 --- /dev/null +++ b/tests/cases/fourslash/completionsClassPropertiesAssignment.ts @@ -0,0 +1,29 @@ +/// + +////class Class1 { +//// protected a = /*1*/ +//// private b = /*2*/ +//// public c = /*3*/ +//// public d = this./*4*/ +////} +//// +////class Class2 { +//// a = /*5*/ +////} +////class Class3 { +//// a = /*6*/ +////} +//// +////const prop = 'prop'; +////class Class4 { +//// [prop] = /*7*/ +////} + +const exact = completion.globalsPlus(["Class1", "Class2", "Class3", "prop", "Class4"]); +verify.completions({ marker: ["1"], exact }); +verify.completions({ marker: ["2"], exact }); +verify.completions({ marker: ["3"], exact }); +verify.completions({ marker: ["4"], exact: ['a', 'b', 'c', 'd'], isGlobalCompletion: false }); +verify.completions({ marker: ["5"], exact }); +verify.completions({ marker: ["6"], exact }); +verify.completions({ marker: ["7"], exact });