diff --git a/src/services/outliningElementsCollector.ts b/src/services/outliningElementsCollector.ts index eb5bfa4c0d5..0d13a3c33a4 100644 --- a/src/services/outliningElementsCollector.ts +++ b/src/services/outliningElementsCollector.ts @@ -20,28 +20,12 @@ namespace ts.OutliningElementsCollector { if (current === n) break; const firstImport = statements[current]; while (current < n && isAnyImportSyntax(statements[current])) { - visitImportNode(statements[current] as AnyImportSyntax, sourceFile, cancellationToken, out); + addOutliningForLeadingCommentsForNode(statements[current], sourceFile, cancellationToken, out); current++; } const lastImport = current < n ? statements[current - 1] : statements[n - 1]; if (lastImport !== firstImport) { - out.push(createOutliningSpanFromBounds(findChildOfKind(firstImport, SyntaxKind.ImportKeyword, sourceFile)!.getStart(sourceFile), lastImport.getEnd(), OutliningSpanKind.Import)); - } - } - - function visitImportNode(node: AnyImportSyntax, sourceFile: SourceFile, cancellationToken: CancellationToken, out: Push) { - // Add outlining spans for comments if they exist - addOutliningForLeadingCommentsForNode(node, sourceFile, cancellationToken, out); - // Add outlining spans for the import statement itself if applicable - if (isImportDeclaration(node) && node.importClause && node.importClause.namedBindings && - node.importClause.namedBindings.kind !== SyntaxKind.NamespaceImport && node.importClause.namedBindings.elements.length) { - const openToken = findChildOfKind(node.importClause.namedBindings, SyntaxKind.OpenBraceToken, sourceFile); - const closeToken = findChildOfKind(node.importClause.namedBindings, SyntaxKind.CloseBraceToken, sourceFile); - if (openToken && closeToken) { - out.push(createOutliningSpan( - createTextSpanFromBounds(openToken.getStart(sourceFile), closeToken.getEnd()), - OutliningSpanKind.Import, createTextSpanFromNode(node, sourceFile))); - } + out.push(createOutliningSpanFromBounds(findChildOfKind(firstImport, SyntaxKind.ImportKeyword, sourceFile)!.getStart(sourceFile), lastImport.getEnd(), OutliningSpanKind.Imports)); } } diff --git a/tests/cases/fourslash/getOutliningSpansForImports.ts b/tests/cases/fourslash/getOutliningSpansForImports.ts index 198adc9c551..23b625059c5 100644 --- a/tests/cases/fourslash/getOutliningSpansForImports.ts +++ b/tests/cases/fourslash/getOutliningSpansForImports.ts @@ -4,7 +4,7 @@ ////[|import * as ns from "mod"; //// ////import d from "mod"; -////import [|{ a, b, c }|] from "mod"; +////import { a, b, c } from "mod"; //// ////import r = require("mod");|] //// @@ -14,7 +14,7 @@ ////// another set of imports ////[|import * as ns from "mod"; ////import d from "mod"; -////import [|{ a, b, c }|] from "mod"; +////import { a, b, c } from "mod"; ////import r = require("mod");|] verify.outliningSpansInCurrentFile(test.ranges(), "import"); diff --git a/tests/cases/fourslash/getOutliningSpansForImportsWithNamedBindings.ts b/tests/cases/fourslash/getOutliningSpansForImportsWithNamedBindings.ts deleted file mode 100644 index 4e5336ba3b0..00000000000 --- a/tests/cases/fourslash/getOutliningSpansForImportsWithNamedBindings.ts +++ /dev/null @@ -1,17 +0,0 @@ -/// - - -////[|import [|{ -//// a, -//// b as B, -//// c -////}|] from "mod"; -//// -//// -////import { } from "mod"; -////import * as ns from "mod"; -////import d from "mod";|] - -verify.outliningSpansInCurrentFile(test.ranges(), "import"); - -