From 3d7bda0ad66e922453ff4dd1494b0911979c2c70 Mon Sep 17 00:00:00 2001 From: xiaofa Date: Thu, 25 Jul 2019 11:49:54 +0800 Subject: [PATCH] prioritize exclude class or right of dot --- src/services/completions.ts | 6 +---- .../completionsOptionalKindModifier.ts | 4 ++-- .../fourslash/completionsOptionalMethod.ts | 5 +--- .../completionsPropertiesPriorities.ts | 24 ------------------- 4 files changed, 4 insertions(+), 35 deletions(-) diff --git a/src/services/completions.ts b/src/services/completions.ts index 1206030437c..97b67dd6701 100644 --- a/src/services/completions.ts +++ b/src/services/completions.ts @@ -985,7 +985,6 @@ namespace ts.Completions { symbol.declarations.some(d => d.kind !== SyntaxKind.SourceFile && d.kind !== SyntaxKind.ModuleDeclaration && d.kind !== SyntaxKind.EnumDeclaration)) { addTypeProperties(typeChecker.getTypeOfSymbolAtLocation(symbol, node)); } - setSortTextToOptionalMember(); return; } @@ -995,13 +994,11 @@ namespace ts.Completions { if (isMetaProperty(node) && (node.keywordToken === SyntaxKind.NewKeyword || node.keywordToken === SyntaxKind.ImportKeyword)) { const completion = (node.keywordToken === SyntaxKind.NewKeyword) ? "target" : "meta"; symbols.push(typeChecker.createSymbol(SymbolFlags.Property, escapeLeadingUnderscores(completion))); - setSortTextToOptionalMember(); return; } if (!isTypeLocation) { addTypeProperties(typeChecker.getTypeAtLocation(node)); - setSortTextToOptionalMember(); } } @@ -1581,7 +1578,6 @@ namespace ts.Completions { return type && typeChecker.getPropertiesOfType(classElementModifierFlags & ModifierFlags.Static ? typeChecker.getTypeOfSymbolAtLocation(type.symbol, decl) : type); }); symbols = filterClassMembersList(baseSymbols, decl.members, classElementModifierFlags); - setSortTextToOptionalMember(); } return GlobalsSearch.Success; @@ -2026,7 +2022,7 @@ namespace ts.Completions { } const filteredSymbols = symbols.filter(a => !seenNames.get(a.escapedName)); - setSortTextToMemberDeclaredBySpreadAssignment(membersDeclaredBySpreadAssignment, symbols); + setSortTextToMemberDeclaredBySpreadAssignment(membersDeclaredBySpreadAssignment, filteredSymbols); return filteredSymbols; } diff --git a/tests/cases/fourslash/completionsOptionalKindModifier.ts b/tests/cases/fourslash/completionsOptionalKindModifier.ts index 25bc0e0fde8..a8c2eb5d63b 100644 --- a/tests/cases/fourslash/completionsOptionalKindModifier.ts +++ b/tests/cases/fourslash/completionsOptionalKindModifier.ts @@ -8,7 +8,7 @@ verify.completions({ marker: "a", exact: [ - { name: "a", kind: "property", kindModifiers: "optional", sortText: completion.SortText.OptionalMember }, - { name: "method", kind: "method", kindModifiers: "optional", sortText: completion.SortText.OptionalMember }, + { name: "a", kind: "property", kindModifiers: "optional" }, + { name: "method", kind: "method", kindModifiers: "optional" }, ], }); diff --git a/tests/cases/fourslash/completionsOptionalMethod.ts b/tests/cases/fourslash/completionsOptionalMethod.ts index a08882a2cc9..b585dca345c 100644 --- a/tests/cases/fourslash/completionsOptionalMethod.ts +++ b/tests/cases/fourslash/completionsOptionalMethod.ts @@ -5,7 +5,4 @@ ////declare const x: { m?(): void }; ////x./**/ -verify.completions({ - marker: "", - exact: { name: 'm', kind: 'method', kindModifiers: 'declare,optional', sortText: completion.SortText.OptionalMember } -}); +verify.completions({ marker: "", exact: "m" }); \ No newline at end of file diff --git a/tests/cases/fourslash/completionsPropertiesPriorities.ts b/tests/cases/fourslash/completionsPropertiesPriorities.ts index 720a3d94945..f2269243e31 100644 --- a/tests/cases/fourslash/completionsPropertiesPriorities.ts +++ b/tests/cases/fourslash/completionsPropertiesPriorities.ts @@ -18,19 +18,6 @@ //// /*a*/ //// } -//// class A implements I { -//// /*b*/ -//// } - -const keywordEntries = ['private', 'protected', 'public', 'static', 'abstract', 'async', 'constructor', 'get', 'readonly', 'set'].map(keyword => { - return { - name: keyword, - kind: 'keyword', - kindModifiers: '', - sortText: completion.SortText.GlobalsOrKeywords - } -}); - verify.completions( { marker: ['a'], @@ -40,16 +27,5 @@ verify.completions( { name: 'c', kindModifiers: 'optional', sortText: completion.SortText.OptionalMember, kind: 'property' }, { name: 'd', sortText: completion.SortText.LocationPriority, kind: 'property' } ] - }, - { - marker: ['b'], - isNewIdentifierLocation: true, - exact:[ - { name: 'B', kindModifiers: 'optional', sortText: completion.SortText.OptionalMember, kind: 'property' }, - { name: 'a', sortText: completion.SortText.LocationPriority, kind: 'property' }, - { name: 'c', kindModifiers: 'optional', sortText: completion.SortText.OptionalMember, kind: 'property' }, - { name: 'd', sortText: completion.SortText.LocationPriority, kind: 'property' }, - ...keywordEntries - ] } ); \ No newline at end of file