Skip to content

Commit 3ca4c23

Browse files
author
Benjamin Lichtman
committed
Add outlining regions for jsxelements and jsxattributes
1 parent e7543d6 commit 3ca4c23

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

src/services/outliningElementsCollector.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,22 @@ namespace ts.OutliningElementsCollector {
183183
return spanForObjectOrArrayLiteral(n);
184184
case SyntaxKind.ArrayLiteralExpression:
185185
return spanForObjectOrArrayLiteral(n, SyntaxKind.OpenBracketToken);
186+
case SyntaxKind.JsxElement:
187+
return spanForJSXElement(<JsxElement>n);
188+
case SyntaxKind.JsxSelfClosingElement:
189+
case SyntaxKind.JsxOpeningElement:
190+
return spanForJSXAttributes((<JsxOpeningLikeElement>n).attributes);
191+
}
192+
193+
function spanForJSXElement(node: JsxElement): OutliningSpan | undefined {
194+
const textSpan = createTextSpanFromBounds(node.openingElement.getStart(), node.closingElement.getEnd());
195+
const tagName = node.openingElement.tagName.getText();
196+
const bannerText = "<" + tagName + ">...</" + tagName + ">";
197+
return createOutliningSpan(textSpan, OutliningSpanKind.Code, textSpan, /*autoCollapse*/ false, bannerText);
198+
}
199+
200+
function spanForJSXAttributes(node: JsxAttributes): OutliningSpan | undefined {
201+
return createOutliningSpanFromBounds(node.getStart(), node.getEnd(), OutliningSpanKind.Code);
186202
}
187203

188204
function spanForObjectOrArrayLiteral(node: Node, open: SyntaxKind.OpenBraceToken | SyntaxKind.OpenBracketToken = SyntaxKind.OpenBraceToken): OutliningSpan | undefined {

0 commit comments

Comments
 (0)