mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-08 18:11:45 -06:00
format jsx expression
This commit is contained in:
parent
9dfcb4419c
commit
378c6b5fc7
@ -52,6 +52,10 @@ namespace ts.formatting {
|
||||
public SpaceBeforeCloseBrace: Rule;
|
||||
public NoSpaceBetweenEmptyBraceBrackets: Rule;
|
||||
|
||||
// No space after { and before } in JSX expression
|
||||
public NoSpaceAfterOpenBraceInJsxExpression: Rule;
|
||||
public NoSpaceBeforeCloseBraceInJsxExpression: Rule;
|
||||
|
||||
// Insert new line after { and before } in multi-line contexts.
|
||||
public NewLineAfterOpenBraceInBlockContext: Rule;
|
||||
|
||||
@ -276,6 +280,10 @@ namespace ts.formatting {
|
||||
this.SpaceBeforeCloseBrace = new Rule(RuleDescriptor.create2(Shared.TokenRange.Any, SyntaxKind.CloseBraceToken), RuleOperation.create2(new RuleOperationContext(Rules.IsSingleLineBlockContext), RuleAction.Space));
|
||||
this.NoSpaceBetweenEmptyBraceBrackets = new Rule(RuleDescriptor.create1(SyntaxKind.OpenBraceToken, SyntaxKind.CloseBraceToken), RuleOperation.create2(new RuleOperationContext(Rules.IsNonJsxSameLineTokenContext, Rules.IsObjectContext), RuleAction.Delete));
|
||||
|
||||
// No space after { and before } in JSX expression
|
||||
this.NoSpaceAfterOpenBraceInJsxExpression = new Rule(RuleDescriptor.create3(SyntaxKind.OpenBraceToken, Shared.TokenRange.Any), RuleOperation.create2(new RuleOperationContext(Rules.IsNonJsxSameLineTokenContext, Rules.isJsxExpressionContext), RuleAction.Delete));
|
||||
this.NoSpaceBeforeCloseBraceInJsxExpression = new Rule(RuleDescriptor.create2(Shared.TokenRange.Any, SyntaxKind.CloseBraceToken), RuleOperation.create2(new RuleOperationContext(Rules.IsNonJsxSameLineTokenContext, Rules.isJsxExpressionContext), RuleAction.Delete));
|
||||
|
||||
// Insert new line after { and before } in multi-line contexts.
|
||||
this.NewLineAfterOpenBraceInBlockContext = new Rule(RuleDescriptor.create3(SyntaxKind.OpenBraceToken, Shared.TokenRange.Any), RuleOperation.create2(new RuleOperationContext(Rules.IsMultilineBlockContext), RuleAction.NewLine));
|
||||
|
||||
@ -395,6 +403,7 @@ namespace ts.formatting {
|
||||
this.SpaceAfterSubtractWhenFollowedByUnaryMinus, this.SpaceAfterSubtractWhenFollowedByPredecrement,
|
||||
this.NoSpaceAfterCloseBrace,
|
||||
this.SpaceAfterOpenBrace, this.SpaceBeforeCloseBrace, this.NewLineBeforeCloseBraceInBlockContext,
|
||||
this.NoSpaceAfterOpenBraceInJsxExpression, this.NoSpaceBeforeCloseBraceInJsxExpression,
|
||||
this.SpaceAfterCloseBrace, this.SpaceBetweenCloseBraceAndElse, this.SpaceBetweenCloseBraceAndWhile, this.NoSpaceBetweenEmptyBraceBrackets,
|
||||
this.NoSpaceBetweenFunctionKeywordAndStar, this.SpaceAfterStarInGeneratorDeclaration,
|
||||
this.SpaceAfterFunctionInFuncDecl, this.NewLineAfterOpenBraceInBlockContext, this.SpaceAfterGetSetInMember,
|
||||
@ -727,6 +736,10 @@ namespace ts.formatting {
|
||||
return context.contextNode.kind !== SyntaxKind.JsxElement;
|
||||
}
|
||||
|
||||
static isJsxExpressionContext(context: FormattingContext): boolean {
|
||||
return context.contextNode.kind === SyntaxKind.JsxExpression;
|
||||
}
|
||||
|
||||
static IsNotBeforeBlockInFunctionDeclarationContext(context: FormattingContext): boolean {
|
||||
return !Rules.IsFunctionDeclContext(context) && !Rules.IsBeforeBlockContext(context);
|
||||
}
|
||||
|
||||
@ -66,10 +66,12 @@
|
||||
////</span>/*containedClosingTagAutoformat*/
|
||||
////</h5>;
|
||||
////
|
||||
////<div>,{integer}</div>;/*commaInJsxElement*/
|
||||
////<div>, {integer}</div>;/*commaInJsxElement2*/
|
||||
////<div>,{integer}</div>;/*commaInJsxElement*/
|
||||
////<div>, {integer}</div>;/*commaInJsxElement2*/
|
||||
////<span>)</span>;/*closingParenInJsxElement*/
|
||||
////<span>) </span>;/*closingParenInJsxElement2*/
|
||||
////<Router routes={ 3 } />;/*jsxExpressionSpaces*/
|
||||
////<Router routes={ (3) } />;/*jsxExpressionSpaces2*/
|
||||
|
||||
format.document();
|
||||
goTo.marker("autoformat");
|
||||
@ -139,4 +141,8 @@ verify.currentLineContentIs("<div>, {integer}</div>;");
|
||||
goTo.marker("closingParenInJsxElement");
|
||||
verify.currentLineContentIs("<span>)</span>;");
|
||||
goTo.marker("closingParenInJsxElement2");
|
||||
verify.currentLineContentIs("<span>) </span>;");
|
||||
verify.currentLineContentIs("<span>) </span>;");
|
||||
goTo.marker("jsxExpressionSpaces");
|
||||
verify.currentLineContentIs("<Router routes={3} />;");
|
||||
goTo.marker("jsxExpressionSpaces2");
|
||||
verify.currentLineContentIs("<Router routes={(3)} />;");
|
||||
Loading…
x
Reference in New Issue
Block a user