@@ -34,8 +34,17 @@ void AlignAnalyzer::Analyze(FormatState &f, const LuaSyntaxTree &t) {
3434 }
3535 case LuaSyntaxNodeKind::CallExpression: {
3636 if (f.GetStyle ().align_call_args ) {
37- auto exprlist = syntaxNode.GetChildSyntaxNode (LuaSyntaxNodeKind::ExpressionList, t);
38- AnalyzeExpressionList (f, exprlist, t);
37+ auto exprList = syntaxNode.GetChildSyntaxNode (LuaSyntaxNodeKind::ExpressionList, t);
38+ auto exprs = exprList.GetChildSyntaxNodes (LuaSyntaxMultiKind::Expression, t);
39+ auto symbolLine = exprList.GetPrevToken (t).GetEndLine (t);
40+ bool sameLine = true ;
41+ for (auto expr: exprs) {
42+ sameLine = sameLine && expr.GetStartLine (t) == symbolLine;
43+ }
44+ if (sameLine) {
45+ break ;
46+ }
47+ AnalyzeExpressionList (f, exprList, t);
3948 }
4049 break ;
4150 }
@@ -79,7 +88,7 @@ void AlignAnalyzer::Query(FormatState &f, LuaSyntaxNode &syntaxNode, const LuaSy
7988 break ;
8089 }
8190 case AlignStrategy::AlignToFirst: {
82- resolve.SetAlign (alignGroup.AlignPos );
91+ resolve.SetIndent (alignGroup.AlignPos , IndentStrategy::Absolute );
8392 break ;
8493 }
8594 default : {
@@ -335,9 +344,7 @@ AlignAnalyzer::ResolveAlignGroup(FormatState &f, std::size_t groupIndex, AlignGr
335344 auto width = f.GetCurrentWidth ();
336345 group.AlignPos = width;
337346 for (auto i: group.SyntaxGroup ) {
338- auto node = LuaSyntaxNode (i);
339- auto leftToken = node.GetFirstToken (t);
340- _resolveGroupIndex[leftToken.GetIndex ()] = groupIndex;
347+ _resolveGroupIndex[i] = groupIndex;
341348 }
342349 }
343350 break ;
@@ -411,7 +418,7 @@ void AlignAnalyzer::AnalyzeIfStatement(FormatState &f, LuaSyntaxNode &syntaxNode
411418 // 若有 elseif
412419
413420 auto spaceAfterIf = if_.GetNextToken (t).GetStartCol (t) - if_.GetStartCol (t);
414- if (spaceAfterIf == 3 && ifAlignPos == 0 ){
421+ if (spaceAfterIf == 3 && ifAlignPos == 0 ) {
415422 group.clear ();
416423 logicOps.clear ();
417424 }
0 commit comments