@@ -219,9 +219,11 @@ namespace ts.formatting {
219219 public SpaceBetweenAsyncAndFunctionKeyword : Rule ;
220220
221221 // Template strings
222- public SpaceBetweenTagAndTemplateString : Rule ;
222+ public NoSpaceBetweenTagAndTemplateString : Rule ;
223223 public NoSpaceAfterTemplateHeadAndMiddle : Rule ;
224+ public SpaceAfterTemplateHeadAndMiddle : Rule ;
224225 public NoSpaceBeforeTemplateMiddleAndTail : Rule ;
226+ public SpaceBeforeTemplateMiddleAndTail : Rule ;
225227
226228 constructor ( ) {
227229 ///
@@ -376,9 +378,7 @@ namespace ts.formatting {
376378 this . SpaceBetweenAsyncAndFunctionKeyword = new Rule ( RuleDescriptor . create1 ( SyntaxKind . AsyncKeyword , SyntaxKind . FunctionKeyword ) , RuleOperation . create2 ( new RuleOperationContext ( Rules . IsSameLineTokenContext ) , RuleAction . Space ) ) ;
377379
378380 // template string
379- this . SpaceBetweenTagAndTemplateString = new Rule ( RuleDescriptor . create3 ( SyntaxKind . Identifier , Shared . TokenRange . FromTokens ( [ SyntaxKind . NoSubstitutionTemplateLiteral , SyntaxKind . TemplateHead ] ) ) , RuleOperation . create2 ( new RuleOperationContext ( Rules . IsSameLineTokenContext ) , RuleAction . Space ) ) ;
380- this . NoSpaceAfterTemplateHeadAndMiddle = new Rule ( RuleDescriptor . create4 ( Shared . TokenRange . FromTokens ( [ SyntaxKind . TemplateHead , SyntaxKind . TemplateMiddle ] ) , Shared . TokenRange . Any ) , RuleOperation . create2 ( new RuleOperationContext ( Rules . IsSameLineTokenContext ) , RuleAction . Delete ) ) ;
381- this . NoSpaceBeforeTemplateMiddleAndTail = new Rule ( RuleDescriptor . create4 ( Shared . TokenRange . Any , Shared . TokenRange . FromTokens ( [ SyntaxKind . TemplateMiddle , SyntaxKind . TemplateTail ] ) ) , RuleOperation . create2 ( new RuleOperationContext ( Rules . IsSameLineTokenContext ) , RuleAction . Delete ) ) ;
381+ this . NoSpaceBetweenTagAndTemplateString = new Rule ( RuleDescriptor . create3 ( SyntaxKind . Identifier , Shared . TokenRange . FromTokens ( [ SyntaxKind . NoSubstitutionTemplateLiteral , SyntaxKind . TemplateHead ] ) ) , RuleOperation . create2 ( new RuleOperationContext ( Rules . IsSameLineTokenContext ) , RuleAction . Delete ) ) ;
382382
383383 // These rules are higher in priority than user-configurable rules.
384384 this . HighPriorityCommonRules = [
@@ -406,7 +406,7 @@ namespace ts.formatting {
406406 this . SpaceBeforeBinaryKeywordOperator , this . SpaceAfterBinaryKeywordOperator ,
407407 this . SpaceAfterVoidOperator ,
408408 this . SpaceBetweenAsyncAndOpenParen , this . SpaceBetweenAsyncAndFunctionKeyword ,
409- this . SpaceBetweenTagAndTemplateString , this . NoSpaceAfterTemplateHeadAndMiddle , this . NoSpaceBeforeTemplateMiddleAndTail ,
409+ this . NoSpaceBetweenTagAndTemplateString ,
410410
411411 // TypeScript-specific rules
412412 this . NoSpaceAfterConstructor , this . NoSpaceAfterModuleImport ,
@@ -485,6 +485,12 @@ namespace ts.formatting {
485485 this . NoSpaceAfterOpenBracket = new Rule ( RuleDescriptor . create3 ( SyntaxKind . OpenBracketToken , Shared . TokenRange . Any ) , RuleOperation . create2 ( new RuleOperationContext ( Rules . IsSameLineTokenContext ) , RuleAction . Delete ) ) ;
486486 this . NoSpaceBeforeCloseBracket = new Rule ( RuleDescriptor . create2 ( Shared . TokenRange . Any , SyntaxKind . CloseBracketToken ) , RuleOperation . create2 ( new RuleOperationContext ( Rules . IsSameLineTokenContext ) , RuleAction . Delete ) ) ;
487487
488+ // Insert space after opening and before closing template string braces
489+ this . NoSpaceAfterTemplateHeadAndMiddle = new Rule ( RuleDescriptor . create4 ( Shared . TokenRange . FromTokens ( [ SyntaxKind . TemplateHead , SyntaxKind . TemplateMiddle ] ) , Shared . TokenRange . Any ) , RuleOperation . create2 ( new RuleOperationContext ( Rules . IsSameLineTokenContext ) , RuleAction . Delete ) ) ;
490+ this . SpaceAfterTemplateHeadAndMiddle = new Rule ( RuleDescriptor . create4 ( Shared . TokenRange . FromTokens ( [ SyntaxKind . TemplateHead , SyntaxKind . TemplateMiddle ] ) , Shared . TokenRange . Any ) , RuleOperation . create2 ( new RuleOperationContext ( Rules . IsSameLineTokenContext ) , RuleAction . Space ) ) ;
491+ this . NoSpaceBeforeTemplateMiddleAndTail = new Rule ( RuleDescriptor . create4 ( Shared . TokenRange . Any , Shared . TokenRange . FromTokens ( [ SyntaxKind . TemplateMiddle , SyntaxKind . TemplateTail ] ) ) , RuleOperation . create2 ( new RuleOperationContext ( Rules . IsSameLineTokenContext ) , RuleAction . Delete ) ) ;
492+ this . SpaceBeforeTemplateMiddleAndTail = new Rule ( RuleDescriptor . create4 ( Shared . TokenRange . Any , Shared . TokenRange . FromTokens ( [ SyntaxKind . TemplateMiddle , SyntaxKind . TemplateTail ] ) ) , RuleOperation . create2 ( new RuleOperationContext ( Rules . IsSameLineTokenContext ) , RuleAction . Space ) ) ;
493+
488494 // Insert space after function keyword for anonymous functions
489495 this . SpaceAfterAnonymousFunctionKeyword = new Rule ( RuleDescriptor . create1 ( SyntaxKind . FunctionKeyword , SyntaxKind . OpenParenToken ) , RuleOperation . create2 ( new RuleOperationContext ( Rules . IsFunctionDeclContext ) , RuleAction . Space ) ) ;
490496 this . NoSpaceAfterAnonymousFunctionKeyword = new Rule ( RuleDescriptor . create1 ( SyntaxKind . FunctionKeyword , SyntaxKind . OpenParenToken ) , RuleOperation . create2 ( new RuleOperationContext ( Rules . IsFunctionDeclContext ) , RuleAction . Delete ) ) ;
0 commit comments