MCPcopy Create free account
hub / github.com/CppCXY/EmmyLuaCodeStyle / Analyze

Method Analyze

CodeFormatCore/src/Format/Analyzer/AlignAnalyzer.cpp:11–88  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

9}
10
11void AlignAnalyzer::Analyze(FormatState &f, const LuaSyntaxTree &t) {
12 for (auto syntaxNode: t.GetSyntaxNodes()) {
13 if (syntaxNode.IsNode(t)) {
14 switch (syntaxNode.GetSyntaxKind(t)) {
15 case LuaSyntaxNodeKind::Block: {
16 if (f.GetStyle().align_continuous_assign_statement != ContinuousAlign::None) {
17 AnalyzeContinuousLocalOrAssign(f, syntaxNode, t);
18 }
19 if (f.GetStyle().align_continuous_similar_call_args) {
20 AnalyzeContinuousSimilarCallArgs(f, syntaxNode, t);
21 }
22
23 break;
24 }
25 case LuaSyntaxNodeKind::TableFieldList: {
26 if (f.GetStyle().align_continuous_rect_table_field != ContinuousAlign::None) {
27 AnalyzeContinuousRectField(f, syntaxNode, t);
28 }
29 if (f.GetStyle().align_array_table != AlignArrayTable::None) {
30 AnalyzeContinuousArrayTableField(f, syntaxNode, t);
31 }
32 break;
33 }
34 case LuaSyntaxNodeKind::CallExpression: {
35 if (f.GetStyle().align_call_args) {
36 auto exprList = syntaxNode.GetChildSyntaxNode(LuaSyntaxNodeKind::ExpressionList, t);
37 auto exprs = exprList.GetChildSyntaxNodes(LuaSyntaxMultiKind::Expression, t);
38 auto symbolLine = exprList.GetPrevToken(t).GetEndLine(t);
39 bool sameLine = true;
40 for (auto expr: exprs) {
41 sameLine = sameLine && expr.GetStartLine(t) == symbolLine;
42 }
43 if (sameLine) {
44 break;
45 }
46 AnalyzeExpressionList(f, exprList, t);
47 }
48 break;
49 }
50 case LuaSyntaxNodeKind::ParamList: {
51 if (f.GetStyle().align_function_params) {
52 AnalyzeParamList(f, syntaxNode, t);
53 }
54 break;
55 }
56 case LuaSyntaxNodeKind::IfStatement: {
57 if (f.GetStyle().align_if_branch) {
58 AnalyzeIfStatement(f, syntaxNode, t);
59 }
60 }
61 case LuaSyntaxNodeKind::SuffixedExpression: {
62 if (f.GetStyle().align_chain_expr != AlignChainExpr::None) {
63 AnalyzeChainExpr(f, syntaxNode, t);
64 }
65 }
66 default: {
67 break;
68 }

Callers

nothing calls this directly

Calls 9

GetSyntaxKindMethod · 0.80
GetStyleMethod · 0.80
GetChildSyntaxNodeMethod · 0.80
GetChildSyntaxNodesMethod · 0.80
GetEndLineMethod · 0.80
GetStartLineMethod · 0.80
IsNodeMethod · 0.45
GetPrevTokenMethod · 0.45
GetTokenKindMethod · 0.45

Tested by

no test coverage detected