@@ -182,7 +182,7 @@ void TokenAnalyzer::AnalyzeTableField(FormatState &f, LuaSyntaxNode n, const Lua
182182bool IsSingleTableOrStringArg (LuaSyntaxNode n, const LuaSyntaxTree &t) {
183183 auto children = n.GetChildren (t);
184184 for (auto child: children) {
185- if (child.GetTokenKind (t) == TK_STRING || child. GetTokenKind (t) == TK_LONG_STRING ||
185+ if (child.GetSyntaxKind (t) == LuaSyntaxNodeKind::StringLiteralExpression ||
186186 child.GetSyntaxKind (t) == LuaSyntaxNodeKind::TableExpression) {
187187 return true ;
188188 } else if (
@@ -201,12 +201,12 @@ bool IsSingleTableOrStringArg(LuaSyntaxNode n, const LuaSyntaxTree &t) {
201201 return false ;
202202}
203203
204- LuaSyntaxNode GetSingleArgStringOrTable (LuaSyntaxNode &syntaxNode , const LuaSyntaxTree &t) {
205- auto children = syntaxNode .GetChildren (t);
204+ LuaSyntaxNode GetSingleArgStringOrTable (LuaSyntaxNode n , const LuaSyntaxTree &t) {
205+ auto children = n .GetChildren (t);
206206 for (auto child: children) {
207- if (child.GetTokenKind (t) == TK_STRING || child. GetTokenKind (t) == TK_LONG_STRING ||
207+ if (child.GetSyntaxKind (t) == LuaSyntaxNodeKind::StringLiteralExpression ||
208208 child.GetSyntaxKind (t) == LuaSyntaxNodeKind::TableExpression) {
209- return syntaxNode ;
209+ return child ;
210210 } else if (child.GetSyntaxKind (t) == LuaSyntaxNodeKind::ExpressionList) {
211211 auto exprs = child.GetChildSyntaxNodes (LuaSyntaxMultiKind::Expression, t);
212212 if (exprs.size () == 1 ) {
@@ -266,14 +266,22 @@ void TokenAnalyzer::AnalyzeCallExpression(FormatState &f, LuaSyntaxNode n, const
266266 }
267267 case CallArgParentheses::Always: {
268268 auto lbrace = n.GetChildToken (' (' , t);
269- if (!lbrace.IsToken (t)) {
269+ auto spaceAnalyzer = f.GetAnalyzer <SpaceAnalyzer>();
270+ if (!lbrace.IsToken (t) && spaceAnalyzer) {
270271 auto node = GetSingleArgStringOrTable (n, t);
271272 if (node.IsToken (t)) {
272273 Mark (node, t, TokenStrategy::WithParentheses);
274+ spaceAnalyzer->SpaceAround (node, t, 0 , SpaceAnalyzer::SpacePriority::First);
275+ } else if (node.GetSyntaxKind (t) == LuaSyntaxNodeKind::StringLiteralExpression) {
276+ Mark (node.GetFirstToken (t), t, TokenStrategy::WithParentheses);
277+ spaceAnalyzer->SpaceLeft (node.GetFirstToken (t), t, 0 , SpaceAnalyzer::SpacePriority::First);
273278 } else {
274279 Mark (node.GetFirstToken (t), t, TokenStrategy::WithLeftParentheses);
280+ spaceAnalyzer->SpaceLeft (node.GetFirstToken (t), t, 0 , SpaceAnalyzer::SpacePriority::First);
275281 Mark (node.GetLastToken (t), t, TokenStrategy::WithRightParentheses);
276282 }
283+
284+ return ;
277285 }
278286
279287 break ;
0 commit comments