rawsql-ts 0.11.37-beta → 0.11.38-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/dist/esm/index.min.js +54 -51
  2. package/dist/esm/index.min.js.map +3 -3
  3. package/dist/esm/src/models/Lexeme.d.ts +8 -0
  4. package/dist/esm/src/models/SqlComponent.d.ts +20 -0
  5. package/dist/esm/src/models/SqlComponent.js +46 -0
  6. package/dist/esm/src/models/SqlComponent.js.map +1 -1
  7. package/dist/esm/src/parsers/CommandExpressionParser.d.ts +9 -0
  8. package/dist/esm/src/parsers/CommandExpressionParser.js +118 -14
  9. package/dist/esm/src/parsers/CommandExpressionParser.js.map +1 -1
  10. package/dist/esm/src/parsers/CommonTableParser.d.ts +8 -0
  11. package/dist/esm/src/parsers/CommonTableParser.js +127 -35
  12. package/dist/esm/src/parsers/CommonTableParser.js.map +1 -1
  13. package/dist/esm/src/parsers/FromClauseParser.js +2 -2
  14. package/dist/esm/src/parsers/FromClauseParser.js.map +1 -1
  15. package/dist/esm/src/parsers/FullNameParser.js +13 -1
  16. package/dist/esm/src/parsers/FullNameParser.js.map +1 -1
  17. package/dist/esm/src/parsers/FunctionExpressionParser.js +37 -3
  18. package/dist/esm/src/parsers/FunctionExpressionParser.js.map +1 -1
  19. package/dist/esm/src/parsers/JoinClauseParser.d.ts +4 -0
  20. package/dist/esm/src/parsers/JoinClauseParser.js +54 -20
  21. package/dist/esm/src/parsers/JoinClauseParser.js.map +1 -1
  22. package/dist/esm/src/parsers/OrderByClauseParser.js +39 -8
  23. package/dist/esm/src/parsers/OrderByClauseParser.js.map +1 -1
  24. package/dist/esm/src/parsers/ParenExpressionParser.js +1 -1
  25. package/dist/esm/src/parsers/ParenExpressionParser.js.map +1 -1
  26. package/dist/esm/src/parsers/SelectClauseParser.d.ts +10 -0
  27. package/dist/esm/src/parsers/SelectClauseParser.js +124 -12
  28. package/dist/esm/src/parsers/SelectClauseParser.js.map +1 -1
  29. package/dist/esm/src/parsers/SelectQueryParser.d.ts +12 -0
  30. package/dist/esm/src/parsers/SelectQueryParser.js +277 -115
  31. package/dist/esm/src/parsers/SelectQueryParser.js.map +1 -1
  32. package/dist/esm/src/parsers/SourceAliasExpressionParser.js +15 -4
  33. package/dist/esm/src/parsers/SourceAliasExpressionParser.js.map +1 -1
  34. package/dist/esm/src/parsers/SourceParser.js +33 -2
  35. package/dist/esm/src/parsers/SourceParser.js.map +1 -1
  36. package/dist/esm/src/parsers/SqlPrintTokenParser.d.ts +62 -0
  37. package/dist/esm/src/parsers/SqlPrintTokenParser.js +700 -32
  38. package/dist/esm/src/parsers/SqlPrintTokenParser.js.map +1 -1
  39. package/dist/esm/src/parsers/SqlTokenizer.d.ts +1 -4
  40. package/dist/esm/src/parsers/SqlTokenizer.js +108 -52
  41. package/dist/esm/src/parsers/SqlTokenizer.js.map +1 -1
  42. package/dist/esm/src/parsers/ValueParser.d.ts +4 -0
  43. package/dist/esm/src/parsers/ValueParser.js +119 -20
  44. package/dist/esm/src/parsers/ValueParser.js.map +1 -1
  45. package/dist/esm/src/parsers/WithClauseParser.d.ts +4 -0
  46. package/dist/esm/src/parsers/WithClauseParser.js +64 -35
  47. package/dist/esm/src/parsers/WithClauseParser.js.map +1 -1
  48. package/dist/esm/src/tokenReaders/CommandTokenReader.js +9 -1
  49. package/dist/esm/src/tokenReaders/CommandTokenReader.js.map +1 -1
  50. package/dist/esm/src/transformers/LinePrinter.d.ts +17 -2
  51. package/dist/esm/src/transformers/LinePrinter.js +39 -10
  52. package/dist/esm/src/transformers/LinePrinter.js.map +1 -1
  53. package/dist/esm/src/transformers/SqlFormatter.d.ts +10 -0
  54. package/dist/esm/src/transformers/SqlFormatter.js +1 -1
  55. package/dist/esm/src/transformers/SqlFormatter.js.map +1 -1
  56. package/dist/esm/src/transformers/SqlPrinter.d.ts +6 -1
  57. package/dist/esm/src/transformers/SqlPrinter.js +76 -31
  58. package/dist/esm/src/transformers/SqlPrinter.js.map +1 -1
  59. package/dist/esm/src/utils/CommentEditor.d.ts +12 -5
  60. package/dist/esm/src/utils/CommentEditor.js +67 -28
  61. package/dist/esm/src/utils/CommentEditor.js.map +1 -1
  62. package/dist/esm/src/utils/stringUtils.js +21 -9
  63. package/dist/esm/src/utils/stringUtils.js.map +1 -1
  64. package/dist/esm/tsconfig.browser.tsbuildinfo +1 -1
  65. package/dist/index.min.js +54 -51
  66. package/dist/index.min.js.map +3 -3
  67. package/dist/src/models/Lexeme.d.ts +8 -0
  68. package/dist/src/models/SqlComponent.d.ts +20 -0
  69. package/dist/src/models/SqlComponent.js +46 -0
  70. package/dist/src/models/SqlComponent.js.map +1 -1
  71. package/dist/src/parsers/CommandExpressionParser.d.ts +9 -0
  72. package/dist/src/parsers/CommandExpressionParser.js +118 -14
  73. package/dist/src/parsers/CommandExpressionParser.js.map +1 -1
  74. package/dist/src/parsers/CommonTableParser.d.ts +8 -0
  75. package/dist/src/parsers/CommonTableParser.js +127 -35
  76. package/dist/src/parsers/CommonTableParser.js.map +1 -1
  77. package/dist/src/parsers/FromClauseParser.js +2 -2
  78. package/dist/src/parsers/FromClauseParser.js.map +1 -1
  79. package/dist/src/parsers/FullNameParser.js +13 -1
  80. package/dist/src/parsers/FullNameParser.js.map +1 -1
  81. package/dist/src/parsers/FunctionExpressionParser.js +37 -3
  82. package/dist/src/parsers/FunctionExpressionParser.js.map +1 -1
  83. package/dist/src/parsers/JoinClauseParser.d.ts +4 -0
  84. package/dist/src/parsers/JoinClauseParser.js +54 -20
  85. package/dist/src/parsers/JoinClauseParser.js.map +1 -1
  86. package/dist/src/parsers/OrderByClauseParser.js +39 -8
  87. package/dist/src/parsers/OrderByClauseParser.js.map +1 -1
  88. package/dist/src/parsers/ParenExpressionParser.js +1 -1
  89. package/dist/src/parsers/ParenExpressionParser.js.map +1 -1
  90. package/dist/src/parsers/SelectClauseParser.d.ts +10 -0
  91. package/dist/src/parsers/SelectClauseParser.js +124 -12
  92. package/dist/src/parsers/SelectClauseParser.js.map +1 -1
  93. package/dist/src/parsers/SelectQueryParser.d.ts +12 -0
  94. package/dist/src/parsers/SelectQueryParser.js +280 -115
  95. package/dist/src/parsers/SelectQueryParser.js.map +1 -1
  96. package/dist/src/parsers/SourceAliasExpressionParser.js +15 -4
  97. package/dist/src/parsers/SourceAliasExpressionParser.js.map +1 -1
  98. package/dist/src/parsers/SourceParser.js +33 -2
  99. package/dist/src/parsers/SourceParser.js.map +1 -1
  100. package/dist/src/parsers/SqlPrintTokenParser.d.ts +62 -0
  101. package/dist/src/parsers/SqlPrintTokenParser.js +700 -32
  102. package/dist/src/parsers/SqlPrintTokenParser.js.map +1 -1
  103. package/dist/src/parsers/SqlTokenizer.d.ts +1 -4
  104. package/dist/src/parsers/SqlTokenizer.js +108 -52
  105. package/dist/src/parsers/SqlTokenizer.js.map +1 -1
  106. package/dist/src/parsers/ValueParser.d.ts +4 -0
  107. package/dist/src/parsers/ValueParser.js +119 -20
  108. package/dist/src/parsers/ValueParser.js.map +1 -1
  109. package/dist/src/parsers/WithClauseParser.d.ts +4 -0
  110. package/dist/src/parsers/WithClauseParser.js +64 -35
  111. package/dist/src/parsers/WithClauseParser.js.map +1 -1
  112. package/dist/src/tokenReaders/CommandTokenReader.js +9 -1
  113. package/dist/src/tokenReaders/CommandTokenReader.js.map +1 -1
  114. package/dist/src/transformers/LinePrinter.d.ts +17 -2
  115. package/dist/src/transformers/LinePrinter.js +39 -10
  116. package/dist/src/transformers/LinePrinter.js.map +1 -1
  117. package/dist/src/transformers/SqlFormatter.d.ts +10 -0
  118. package/dist/src/transformers/SqlFormatter.js +4 -1
  119. package/dist/src/transformers/SqlFormatter.js.map +1 -1
  120. package/dist/src/transformers/SqlPrinter.d.ts +6 -1
  121. package/dist/src/transformers/SqlPrinter.js +76 -31
  122. package/dist/src/transformers/SqlPrinter.js.map +1 -1
  123. package/dist/src/utils/CommentEditor.d.ts +12 -5
  124. package/dist/src/utils/CommentEditor.js +67 -28
  125. package/dist/src/utils/CommentEditor.js.map +1 -1
  126. package/dist/src/utils/stringUtils.js +21 -9
  127. package/dist/src/utils/stringUtils.js.map +1 -1
  128. package/dist/tsconfig.tsbuildinfo +1 -1
  129. package/package.json +3 -3
@@ -7,8 +7,9 @@ export class SourceAliasExpressionParser {
7
7
  let idx = index;
8
8
  // If there is a column alias, it may be detected as a function, so functions are also processed.
9
9
  if (idx < lexemes.length && ((lexemes[idx].type & TokenType.Identifier) || (lexemes[idx].type & TokenType.Function))) {
10
- // Check for alias
11
- const table = lexemes[idx].value;
10
+ // Check for alias and capture comments from the alias token
11
+ const aliasToken = lexemes[idx];
12
+ const table = aliasToken.value;
12
13
  idx++;
13
14
  if (idx < lexemes.length && (lexemes[idx].type & TokenType.OpenParen)) {
14
15
  // Check for column alias
@@ -35,9 +36,19 @@ export class SourceAliasExpressionParser {
35
36
  if (columns.length === 0) {
36
37
  throw new Error(`Syntax error at position ${index}: No column aliases found. Column alias declarations must contain at least one column name.`);
37
38
  }
38
- return { value: new SourceAliasExpression(table, columns), newIndex: idx };
39
+ const sourceAlias = new SourceAliasExpression(table, columns);
40
+ // Transfer positioned comments from the alias token
41
+ if (aliasToken.positionedComments && aliasToken.positionedComments.length > 0) {
42
+ sourceAlias.positionedComments = aliasToken.positionedComments;
43
+ }
44
+ return { value: sourceAlias, newIndex: idx };
45
+ }
46
+ const sourceAlias = new SourceAliasExpression(table, null);
47
+ // Transfer positioned comments from the alias token
48
+ if (aliasToken.positionedComments && aliasToken.positionedComments.length > 0) {
49
+ sourceAlias.positionedComments = aliasToken.positionedComments;
39
50
  }
40
- return { value: new SourceAliasExpression(table, null), newIndex: idx };
51
+ return { value: sourceAlias, newIndex: idx };
41
52
  }
42
53
  throw new Error(`Syntax error at position ${index}: Expected an identifier for table alias but found "${((_a = lexemes[index]) === null || _a === void 0 ? void 0 : _a.value) || 'end of input'}".`);
43
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SourceAliasExpressionParser.js","sourceRoot":"","sources":["../../../../src/parsers/SourceAliasExpressionParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAU,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGrD,MAAM,OAAO,2BAA2B;IACpC,uCAAuC;IAChC,MAAM,CAAC,eAAe,CAAC,OAAiB,EAAE,KAAa;;QAC1D,IAAI,GAAG,GAAG,KAAK,CAAC;QAEhB,iGAAiG;QACjG,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YACnH,kBAAkB;YAClB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;YACjC,GAAG,EAAE,CAAC;YAEN,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;gBACpE,yBAAyB;gBACzB,MAAM,OAAO,GAAa,EAAE,CAAC;gBAE7B,4BAA4B;gBAC5B,GAAG,EAAE,CAAC;gBAEN,OAAO,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;oBACxE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;oBACjC,GAAG,EAAE,CAAC;oBACN,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;wBAChE,GAAG,EAAE,CAAC;oBACV,CAAC;yBAAM,CAAC;wBACJ,MAAM,CAAC,2BAA2B;oBACtC,CAAC;gBACL,CAAC;gBAED,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC;oBAC3C,+BAA+B;oBAC/B,GAAG,EAAE,CAAC;gBACV,CAAC;qBAAM,CAAC;oBACJ,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,6HAA6H,CAAC,CAAC;gBAClL,CAAC;gBACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,6FAA6F,CAAC,CAAC;gBACpJ,CAAC;gBAED,OAAO,EAAE,KAAK,EAAE,IAAI,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;YAC/E,CAAC;YAED,OAAO,EAAE,KAAK,EAAE,IAAI,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;QAC5E,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,uDAAuD,CAAA,MAAA,OAAO,CAAC,KAAK,CAAC,0CAAE,KAAK,KAAI,cAAc,IAAI,CAAC,CAAC;IACzJ,CAAC;CACJ"}
1
+ {"version":3,"file":"SourceAliasExpressionParser.js","sourceRoot":"","sources":["../../../../src/parsers/SourceAliasExpressionParser.ts"],"names":[],"mappings":"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"}
@@ -51,6 +51,13 @@ export class SourceParser {
51
51
  static parseTableSource(fullNameResult) {
52
52
  const { namespaces, name, newIndex } = fullNameResult;
53
53
  const value = new TableSource(namespaces, name.name);
54
+ // Transfer positioned comments from the table name to TableSource
55
+ if (name.positionedComments && name.positionedComments.length > 0) {
56
+ value.positionedComments = name.positionedComments;
57
+ }
58
+ else if (name.comments && name.comments.length > 0) {
59
+ value.comments = name.comments;
60
+ }
54
61
  return { value, newIndex };
55
62
  }
56
63
  static parseFunctionSource(lexemes, fullNameResult) {
@@ -64,6 +71,8 @@ export class SourceParser {
64
71
  }
65
72
  static parseParenSource(lexemes, index) {
66
73
  let idx = index;
74
+ // capture the open parenthesis and its comments
75
+ const openParenToken = lexemes[idx];
67
76
  // skip the open parenthesis
68
77
  idx++;
69
78
  if (idx >= lexemes.length) {
@@ -72,7 +81,7 @@ export class SourceParser {
72
81
  // Support both SELECT and VALUES in subqueries
73
82
  const keyword = lexemes[idx].value;
74
83
  if (keyword === "select" || keyword === "values" || keyword === "with") {
75
- const result = this.parseSubQuerySource(lexemes, idx);
84
+ const result = this.parseSubQuerySource(lexemes, idx, openParenToken);
76
85
  idx = result.newIndex;
77
86
  if (idx < lexemes.length && lexemes[idx].type == TokenType.CloseParen) {
78
87
  // skip the closing parenthesis
@@ -97,11 +106,33 @@ export class SourceParser {
97
106
  }
98
107
  throw new Error(`Syntax error at position ${idx}: Expected 'SELECT' keyword, 'VALUES' keyword, or opening parenthesis '(' but found "${lexemes[idx].value}".`);
99
108
  }
100
- static parseSubQuerySource(lexemes, index) {
109
+ static parseSubQuerySource(lexemes, index, openParenToken) {
101
110
  let idx = index;
102
111
  // Use the new parseFromLexeme method and destructure the result
103
112
  const { value: selectQuery, newIndex } = SelectQueryParser.parseFromLexeme(lexemes, idx);
104
113
  idx = newIndex;
114
+ // Transfer opening paren comments to the subquery (similar to function arguments)
115
+ if (openParenToken && openParenToken.positionedComments && openParenToken.positionedComments.length > 0) {
116
+ // Convert "after" positioned comments from opening paren to "before" comments for the subquery
117
+ const afterComments = openParenToken.positionedComments.filter(pc => pc.position === 'after');
118
+ if (afterComments.length > 0) {
119
+ const beforeComments = afterComments.map(pc => ({
120
+ position: 'before',
121
+ comments: pc.comments
122
+ }));
123
+ // Merge with existing positioned comments on the subquery
124
+ if (selectQuery.positionedComments) {
125
+ selectQuery.positionedComments = [...beforeComments, ...selectQuery.positionedComments];
126
+ }
127
+ else {
128
+ selectQuery.positionedComments = beforeComments;
129
+ }
130
+ // Clear legacy comments to prevent duplication
131
+ if (selectQuery.comments) {
132
+ selectQuery.comments = null;
133
+ }
134
+ }
135
+ }
105
136
  const subQuerySource = new SubQuerySource(selectQuery);
106
137
  return { value: subQuerySource, newIndex: idx };
107
138
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SourceParser.js","sourceRoot":"","sources":["../../../../src/parsers/SourceParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SourceParser.js","sourceRoot":"","sources":["../../../../src/parsers/SourceParser.ts"],"names":[],"mappings":"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"}
@@ -33,10 +33,13 @@ export declare class SqlPrintTokenParser implements SqlComponentVisitor<SqlPrint
33
33
  private static readonly PAREN_OPEN_TOKEN;
34
34
  private static readonly PAREN_CLOSE_TOKEN;
35
35
  private static readonly DOT_TOKEN;
36
+ private static _selfHandlingComponentTypes;
37
+ private static getSelfHandlingComponentTypes;
36
38
  private handlers;
37
39
  parameterDecorator: ParameterDecorator;
38
40
  identifierDecorator: IdentifierDecorator;
39
41
  index: number;
42
+ private commentStyle;
40
43
  constructor(options?: {
41
44
  preset?: FormatterConfig;
42
45
  identifierEscape?: {
@@ -48,6 +51,7 @@ export declare class SqlPrintTokenParser implements SqlComponentVisitor<SqlPrint
48
51
  end: string;
49
52
  };
50
53
  parameterStyle?: 'anonymous' | 'indexed' | 'named';
54
+ commentStyle?: 'block' | 'smart';
51
55
  });
52
56
  /**
53
57
  * Pretty-prints a BinarySelectQuery (e.g., UNION, INTERSECT, EXCEPT).
@@ -72,17 +76,59 @@ export declare class SqlPrintTokenParser implements SqlComponentVisitor<SqlPrint
72
76
  token: SqlPrintToken;
73
77
  params: any[] | Record<string, any>[] | Record<string, any>;
74
78
  };
79
+ /**
80
+ * Check if a component handles its own comments
81
+ */
82
+ private componentHandlesOwnComments;
75
83
  visit(arg: SqlComponent): SqlPrintToken;
84
+ /**
85
+ * Check if a component has positioned comments
86
+ */
87
+ private hasPositionedComments;
88
+ /**
89
+ * Check if a component has legacy comments
90
+ */
91
+ private hasLegacyComments;
92
+ /**
93
+ * Centralized comment handling - checks positioned comments first, falls back to legacy
94
+ */
95
+ private addComponentComments;
96
+ /**
97
+ * Adds positioned comment tokens to a SqlPrintToken for inline formatting
98
+ */
99
+ private addPositionedCommentsToToken;
76
100
  /**
77
101
  * Adds comment tokens to a SqlPrintToken based on the comments array
78
102
  */
79
103
  private addCommentsToToken;
104
+ /**
105
+ * Creates inline comment sequence for multiple comments without newlines
106
+ */
107
+ private createInlineCommentSequence;
80
108
  /**
81
109
  * Creates CommentBlock containers for the given comments.
82
110
  * Each CommentBlock contains: Comment -> CommentNewline -> Space
83
111
  * This structure supports both oneliner and multiline formatting modes.
84
112
  */
85
113
  private createCommentBlocks;
114
+ /**
115
+ * Creates smart comment blocks by merging consecutive block comments into multi-line format
116
+ */
117
+ private createSmartCommentBlocks;
118
+ /**
119
+ * Determines if a comment should be merged with consecutive comments
120
+ */
121
+ private shouldMergeComment;
122
+ /**
123
+ * Creates a multi-line block comment structure from consecutive comments
124
+ * Returns a CommentBlock containing multiple comment lines for proper LinePrinter integration
125
+ */
126
+ private createMultiLineCommentBlock;
127
+ /**
128
+ * Creates a multi-line comment block specifically for headerComments
129
+ * headerComments come as pre-split lines, so we handle them differently
130
+ */
131
+ private createHeaderMultiLineCommentBlock;
86
132
  /**
87
133
  * Creates a single CommentBlock with the standard structure:
88
134
  * Comment -> CommentNewline -> Space
@@ -92,11 +138,27 @@ export declare class SqlPrintTokenParser implements SqlComponentVisitor<SqlPrint
92
138
  * - Oneliner mode: Comment + space (commentNewline is skipped)
93
139
  */
94
140
  private createSingleCommentBlock;
141
+ /**
142
+ * Formats a comment, preserving line comment format for -- comments
143
+ * and converting others to block format for safety
144
+ */
145
+ private formatComment;
146
+ /**
147
+ * Formats comments using smart style rules:
148
+ * - Only multi-line block comment merging is supported
149
+ * - Single-line comments remain as block comments (no dash conversion)
150
+ */
151
+ private formatCommentSmart;
95
152
  /**
96
153
  * Inserts comment blocks into a token and handles spacing logic.
97
154
  * Adds separator spaces for clause-level containers and manages duplicate space removal.
98
155
  */
99
156
  private insertCommentBlocksWithSpacing;
157
+ /**
158
+ * Handles positioned comments for ParenExpression with special spacing rules.
159
+ * ParenExpression comments should be adjacent to parentheses without separator spaces.
160
+ */
161
+ private addPositionedCommentsToParenExpression;
100
162
  /**
101
163
  * Determines whether a separator space should be added after comments for the given container type.
102
164
  *