diff --git a/src/services/completions.ts b/src/services/completions.ts index 80fdf6c280eb5..a940abed086e4 100644 --- a/src/services/completions.ts +++ b/src/services/completions.ts @@ -1087,7 +1087,7 @@ namespace ts.Completions { } // Get all entities in the current scope. - completionKind = CompletionKind.None; + completionKind = CompletionKind.Global; isNewIdentifierLocation = isNewIdentifierDefinitionLocation(contextToken); if (previousToken !== contextToken) { @@ -1123,9 +1123,6 @@ namespace ts.Completions { position; const scopeNode = getScopeNode(contextToken, adjustedPosition, sourceFile) || sourceFile; - if (isGlobalCompletionScope(scopeNode)) { - completionKind = CompletionKind.Global; - } const symbolMeanings = SymbolFlags.Type | SymbolFlags.Value | SymbolFlags.Namespace | SymbolFlags.Alias; @@ -1150,18 +1147,6 @@ namespace ts.Completions { return true; } - function isGlobalCompletionScope(scopeNode: Node): boolean { - switch (scopeNode.kind) { - case SyntaxKind.SourceFile: - case SyntaxKind.TemplateExpression: - case SyntaxKind.JsxExpression: - case SyntaxKind.Block: - return true; - default: - return isStatement(scopeNode); - } - } - function filterGlobalCompletion(symbols: Symbol[]): void { filterMutate(symbols, symbol => { if (!isSourceFile(location)) { diff --git a/tests/cases/fourslash/completionListIsGlobalCompletion.ts b/tests/cases/fourslash/completionListIsGlobalCompletion.ts index 121ab940d6549..390e358812a08 100644 --- a/tests/cases/fourslash/completionListIsGlobalCompletion.ts +++ b/tests/cases/fourslash/completionListIsGlobalCompletion.ts @@ -31,7 +31,7 @@ ////} /////*11*/ // insert globals ////const y =
; // no globals in jsx attribute found -////const z =
; // no globals in jsx attribute with syntax error +////const z =
; // Syntax error makes it looks like an expression position, so globals ////const x = `/*14*/ ${/*15*/}`; // globals only in template expression ////var user = ; // globals only in JSX expression (but not in JSX expression strings) goTo.marker("1"); @@ -59,7 +59,7 @@ verify.completionListIsGlobal(true); goTo.marker("12"); verify.completionListIsGlobal(false); goTo.marker("13"); -verify.completionListIsGlobal(false); +verify.completionListIsGlobal(true); goTo.marker("14"); verify.completionListIsGlobal(false); goTo.marker("15"); @@ -67,7 +67,7 @@ verify.completionListIsGlobal(true); goTo.marker("16"); verify.completionListIsGlobal(false); goTo.marker("17"); -verify.completionListIsGlobal(false); +verify.completionListIsGlobal(true); // TODO: GH#21341 goTo.marker("18"); verify.completionListIsGlobal(true); goTo.marker("19");