Skip to content

Commit 32400e1

Browse files
committed
修复local语句格式化和检测不匹配的bug
1 parent cf7bb1d commit 32400e1

File tree

2 files changed

+20
-19
lines changed

2 files changed

+20
-19
lines changed

CodeService/src/FormatElement/KeepBlankElement.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,11 @@ FormatElementType KeepBlankElement::GetType()
1414

1515
void KeepBlankElement::Serialize(FormatContext& ctx, int position, FormatElement& parent)
1616
{
17-
ctx.PrintBlank(_blank);
17+
int nextOffset = getNextValidOffset(position, parent);
18+
if (nextOffset != -1)
19+
{
20+
ctx.PrintBlank(_blank);
21+
}
1822
}
1923

2024
void KeepBlankElement::Diagnosis(DiagnosisContext& ctx, int position, FormatElement& parent)

CodeService/src/LuaFormatter.cpp

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -301,15 +301,6 @@ std::shared_ptr<FormatElement> LuaFormatter::FormatBlock(std::shared_ptr<LuaAstN
301301
case LuaAstNodeType::FunctionStatement:
302302
{
303303
indentEnv->AddChild(FormatNode(statement));
304-
305-
// if (nextMatch(index, LuaAstNodeType::FunctionStatement, statements))
306-
// {
307-
// indentEnv->Add<KeepLineElement>(1);
308-
// }
309-
// else
310-
// {
311-
// indentEnv->Add<MinLineElement>(1);
312-
// }
313304
indentEnv->AddChild(_options.keep_line_after_function_define_statement);
314305
break;
315306
}
@@ -336,14 +327,20 @@ std::shared_ptr<FormatElement> LuaFormatter::FormatLocalStatement(std::shared_pt
336327
case LuaAstNodeType::KeyWord:
337328
case LuaAstNodeType::GeneralOperator:
338329
{
330+
// 基于这样的考虑 可能local 语句没有等号所以nameDefList的空格移上来
331+
if (node->GetText() == "=")
332+
{
333+
env->Add<KeepBlankElement>(1);
334+
}
335+
339336
env->Add<TextElement>(node);
340337
env->Add<KeepBlankElement>(1);
341338
break;
342339
}
343340
case LuaAstNodeType::NameDefList:
344341
{
342+
345343
env->AddChild(FormatNode(node));
346-
env->Add<KeepBlankElement>(1);
347344
break;
348345
}
349346
case LuaAstNodeType::ExpressionList:
@@ -874,12 +871,12 @@ std::shared_ptr<FormatElement> LuaFormatter::FormatIfStatement(std::shared_ptr<L
874871
env->Add<KeepBlankElement>(1);
875872
break;
876873
}
877-
// case LuaAstNodeType::Block:
878-
// {
879-
// env->AddChild(FormatNode(child));
880-
// env->Add<KeepLineElement>();
881-
// break;
882-
// }
874+
// case LuaAstNodeType::Block:
875+
// {
876+
// env->AddChild(FormatNode(child));
877+
// env->Add<KeepLineElement>();
878+
// break;
879+
// }
883880
default:
884881
{
885882
DefaultHandle(child, env);
@@ -899,13 +896,13 @@ std::shared_ptr<FormatElement> LuaFormatter::FormatExpressionStatement(std::shar
899896
{
900897
switch (child->GetType())
901898
{
902-
// 目前表达式语句上只有调用表达式
899+
// 目前表达式语句上只有调用表达式
903900
case LuaAstNodeType::CallExpression:
904901
{
905902
env->AddChild(FormatNode(child));
906903
break;
907904
}
908-
// default 一般只有一个分号
905+
// default 一般只有一个分号
909906
default:
910907
{
911908
DefaultHandle(child, env);

0 commit comments

Comments
 (0)