Skip to content

Commit 83ae8af

Browse files
authored
Merge pull request microsoft#17394 from vvakame/openParentFormatting
Add SpaceBetweenOpenParens formatting rule
2 parents a2c66c3 + d1459f7 commit 83ae8af

2 files changed

Lines changed: 17 additions & 1 deletion

File tree

src/services/formatting/rules.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,7 @@ namespace ts.formatting {
195195
// Insert space after opening and before closing nonempty parenthesis
196196
public SpaceAfterOpenParen: Rule;
197197
public SpaceBeforeCloseParen: Rule;
198+
public SpaceBetweenOpenParens: Rule;
198199
public NoSpaceBetweenParens: Rule;
199200
public NoSpaceAfterOpenParen: Rule;
200201
public NoSpaceBeforeCloseParen: Rule;
@@ -457,6 +458,7 @@ namespace ts.formatting {
457458
// Insert space after opening and before closing nonempty parenthesis
458459
this.SpaceAfterOpenParen = new Rule(RuleDescriptor.create3(SyntaxKind.OpenParenToken, Shared.TokenRange.Any), RuleOperation.create2(new RuleOperationContext(Rules.IsOptionEnabled("insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis"), Rules.IsNonJsxSameLineTokenContext), RuleAction.Space));
459460
this.SpaceBeforeCloseParen = new Rule(RuleDescriptor.create2(Shared.TokenRange.Any, SyntaxKind.CloseParenToken), RuleOperation.create2(new RuleOperationContext(Rules.IsOptionEnabled("insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis"), Rules.IsNonJsxSameLineTokenContext), RuleAction.Space));
461+
this.SpaceBetweenOpenParens = new Rule(RuleDescriptor.create1(SyntaxKind.OpenParenToken, SyntaxKind.OpenParenToken), RuleOperation.create2(new RuleOperationContext(Rules.IsOptionEnabled("insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis"), Rules.IsNonJsxSameLineTokenContext), RuleAction.Space));
460462
this.NoSpaceBetweenParens = new Rule(RuleDescriptor.create1(SyntaxKind.OpenParenToken, SyntaxKind.CloseParenToken), RuleOperation.create2(new RuleOperationContext(Rules.IsNonJsxSameLineTokenContext), RuleAction.Delete));
461463
this.NoSpaceAfterOpenParen = new Rule(RuleDescriptor.create3(SyntaxKind.OpenParenToken, Shared.TokenRange.Any), RuleOperation.create2(new RuleOperationContext(Rules.IsOptionDisabledOrUndefined("insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis"), Rules.IsNonJsxSameLineTokenContext), RuleAction.Delete));
462464
this.NoSpaceBeforeCloseParen = new Rule(RuleDescriptor.create2(Shared.TokenRange.Any, SyntaxKind.CloseParenToken), RuleOperation.create2(new RuleOperationContext(Rules.IsOptionDisabledOrUndefined("insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis"), Rules.IsNonJsxSameLineTokenContext), RuleAction.Delete));
@@ -544,7 +546,7 @@ namespace ts.formatting {
544546
this.SpaceAfterComma, this.NoSpaceAfterComma,
545547
this.SpaceAfterAnonymousFunctionKeyword, this.NoSpaceAfterAnonymousFunctionKeyword,
546548
this.SpaceAfterKeywordInControl, this.NoSpaceAfterKeywordInControl,
547-
this.SpaceAfterOpenParen, this.SpaceBeforeCloseParen, this.NoSpaceBetweenParens, this.NoSpaceAfterOpenParen, this.NoSpaceBeforeCloseParen,
549+
this.SpaceAfterOpenParen, this.SpaceBeforeCloseParen, this.SpaceBetweenOpenParens, this.NoSpaceBetweenParens, this.NoSpaceAfterOpenParen, this.NoSpaceBeforeCloseParen,
548550
this.SpaceAfterOpenBracket, this.SpaceBeforeCloseBracket, this.NoSpaceBetweenBrackets, this.NoSpaceAfterOpenBracket, this.NoSpaceBeforeCloseBracket,
549551
this.SpaceAfterOpenBrace, this.SpaceBeforeCloseBrace, this.NoSpaceBetweenEmptyBraceBrackets, this.NoSpaceAfterOpenBrace, this.NoSpaceBeforeCloseBrace,
550552
this.SpaceAfterTemplateHeadAndMiddle, this.SpaceBeforeTemplateMiddleAndTail, this.NoSpaceAfterTemplateHeadAndMiddle, this.NoSpaceBeforeTemplateMiddleAndTail,
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
/// <reference path='fourslash.ts' />
2+
3+
/////*1*/foo(() => 1);
4+
/////*2*/foo(1);
5+
/////*3*/if((true)){}
6+
7+
format.setOption("InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis", true);
8+
format.document();
9+
goTo.marker("1");
10+
verify.currentLineContentIs("foo( () => 1 );");
11+
goTo.marker("2");
12+
verify.currentLineContentIs("foo( 1 );");
13+
goTo.marker("3");
14+
verify.currentLineContentIs("if ( ( true ) ) { }");

0 commit comments

Comments
 (0)