mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-05 08:11:30 -06:00
Filter out private fields in string literal property completions.
Also some minor simplifications. Fixes 36082.
This commit is contained in:
parent
75d1ead3fd
commit
ad8feb5f90
@ -403,8 +403,8 @@ namespace ts.Completions {
|
||||
kindModifiers: SymbolDisplay.getSymbolModifiers(symbol),
|
||||
sortText,
|
||||
source: getSourceFromOrigin(origin),
|
||||
hasAction: trueOrUndefined(!!origin && originIsExport(origin)),
|
||||
isRecommended: trueOrUndefined(isRecommendedCompletionMatch(symbol, recommendedCompletion, typeChecker)),
|
||||
hasAction: origin && originIsExport(origin) || undefined,
|
||||
isRecommended: isRecommendedCompletionMatch(symbol, recommendedCompletion, typeChecker) || undefined,
|
||||
insertText,
|
||||
replacementSpan,
|
||||
};
|
||||
@ -415,10 +415,6 @@ namespace ts.Completions {
|
||||
!!(localSymbol.flags & SymbolFlags.ExportValue) && checker.getExportSymbolOfSymbol(localSymbol) === recommendedCompletion;
|
||||
}
|
||||
|
||||
function trueOrUndefined(b: boolean): true | undefined {
|
||||
return b ? true : undefined;
|
||||
}
|
||||
|
||||
function getSourceFromOrigin(origin: SymbolOriginInfo | undefined): string | undefined {
|
||||
return origin && originIsExport(origin) ? stripQuotes(origin.moduleSymbol.name) : undefined;
|
||||
}
|
||||
|
||||
@ -6,9 +6,9 @@ namespace ts.Completions.StringCompletions {
|
||||
return entries && convertPathCompletions(entries);
|
||||
}
|
||||
if (isInString(sourceFile, position, contextToken)) {
|
||||
return !contextToken || !isStringLiteralLike(contextToken)
|
||||
? undefined
|
||||
: convertStringLiteralCompletions(getStringLiteralCompletionEntries(sourceFile, contextToken, position, checker, options, host), sourceFile, checker, log, preferences);
|
||||
if (!contextToken || !isStringLiteralLike(contextToken)) return undefined;
|
||||
const entries = getStringLiteralCompletionEntries(sourceFile, contextToken, position, checker, options, host);
|
||||
return convertStringLiteralCompletions(entries, sourceFile, checker, log, preferences);
|
||||
}
|
||||
}
|
||||
|
||||
@ -214,7 +214,11 @@ namespace ts.Completions.StringCompletions {
|
||||
}
|
||||
|
||||
function stringLiteralCompletionsFromProperties(type: Type | undefined): StringLiteralCompletionsFromProperties | undefined {
|
||||
return type && { kind: StringLiteralCompletionKind.Properties, symbols: type.getApparentProperties(), hasIndexSignature: hasIndexSignature(type) };
|
||||
return type && {
|
||||
kind: StringLiteralCompletionKind.Properties,
|
||||
symbols: type.getApparentProperties().filter(prop => !isPrivateIdentifierPropertyDeclaration(prop.valueDeclaration)),
|
||||
hasIndexSignature: hasIndexSignature(type)
|
||||
};
|
||||
}
|
||||
|
||||
function getStringLiteralTypes(type: Type | undefined, uniques = createMap<true>()): readonly StringLiteralType[] {
|
||||
|
||||
15
tests/cases/fourslash/getJavaScriptCompletions21.ts
Normal file
15
tests/cases/fourslash/getJavaScriptCompletions21.ts
Normal file
@ -0,0 +1,15 @@
|
||||
/// <reference path="fourslash.ts" />
|
||||
|
||||
// @allowNonTsExtensions: true
|
||||
// @Filename: file.js
|
||||
|
||||
////class Prv {
|
||||
//// #privatething = 1;
|
||||
//// notSoPrivate = 1;
|
||||
////}
|
||||
////new Prv()['/**/'];
|
||||
|
||||
verify.completions({
|
||||
marker: "",
|
||||
exact: ["notSoPrivate"]
|
||||
});
|
||||
Loading…
x
Reference in New Issue
Block a user