Skip to content

Commit 6751ecd

Browse files
committed
修复一个多余缩进的问题
1 parent c88a736 commit 6751ecd

File tree

2 files changed

+27
-25
lines changed

2 files changed

+27
-25
lines changed

CodeService/src/Format/Analyzer/IndentationAnalyzer.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ void IndentationAnalyzer::Analyze(FormatState &f, const LuaSyntaxTree &t) {
108108
));
109109
} else if (expr.GetSyntaxKind(t) == LuaSyntaxNodeKind::CallExpression) {
110110
auto prevSibling = expr.GetPrevSibling(t);
111-
if(prevSibling.GetSyntaxKind(t) != LuaSyntaxNodeKind::NameExpression) {
111+
if (prevSibling.GetSyntaxKind(t) != LuaSyntaxNodeKind::NameExpression) {
112112
Indenter(expr, t, IndentData(
113113
IndentType::WhenPrevIndent,
114114
f.GetStyle().continuation_indent
@@ -147,7 +147,13 @@ void IndentationAnalyzer::AnalyzeExprList(FormatState &f, LuaSyntaxNode &exprLis
147147
|| syntaxKind == LuaSyntaxNodeKind::StringLiteralExpression) {
148148
return;
149149
}
150-
// if()
150+
if (syntaxKind == LuaSyntaxNodeKind::SuffixedExpression) {
151+
auto callExpr = expr.GetChildSyntaxNode(LuaSyntaxNodeKind::CallExpression, t);
152+
if (callExpr.IsNode(t)
153+
&& (callExpr.GetPrevToken(t).GetStartLine(t) == expr.GetPrevToken(t).GetStartLine(t))) {
154+
return;
155+
}
156+
}
151157
}
152158
Indenter(exprList, t, IndentData(
153159
IndentType::Standard,

Test2/src/FormatTest2.cpp

Lines changed: 19 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -6,31 +6,27 @@
66
#include "CodeService/Config/EditorconfigPattern.h"
77

88
int main() {
9-
// std::string buffer = R"(
10-
//p("456")
11-
//)";
12-
//
13-
// auto file = std::make_shared<LuaFile>(std::move(buffer));
14-
// LuaLexer luaLexer(file);
15-
// luaLexer.Parse();
16-
//
17-
// LuaParser p(file, std::move(luaLexer.GetTokens()));
18-
// p.Parse();
19-
//
20-
// LuaSyntaxTree t;
21-
// t.BuildTree(p);
22-
// std::cout << t.GetDebugView() << std::endl;
23-
//
24-
// LuaStyle s;
25-
// s.call_arg_parentheses = CallArgParentheses::Remove;
26-
// FormatBuilder b(s);
27-
// auto text = b.GetFormatResult(t);
28-
// std::cout<< text << std::endl;
9+
std::string buffer = R"(
10+
local t = a.b.c.setmetatable(f, function ()
11+
end)
12+
)";
2913

30-
EditorconfigPattern p;
31-
p.Compile("Content/**.lua");
14+
auto file = std::make_shared<LuaFile>(std::move(buffer));
15+
LuaLexer luaLexer(file);
16+
luaLexer.Parse();
3217

33-
p.Match("Content/1.lua");
18+
LuaParser p(file, std::move(luaLexer.GetTokens()));
19+
p.Parse();
20+
21+
LuaSyntaxTree t;
22+
t.BuildTree(p);
23+
std::cout << t.GetDebugView() << std::endl;
24+
25+
LuaStyle s;
26+
s.call_arg_parentheses = CallArgParentheses::Remove;
27+
FormatBuilder b(s);
28+
auto text = b.GetFormatResult(t);
29+
std::cout<< text << std::endl;
3430

3531
// LuaDiagnosticStyle style;
3632
// StyleDiagnostic d(style);

0 commit comments

Comments
 (0)