Skip to content

Commit f14bdcd

Browse files
committed
格式化算法支持namedef和attribute保持一个空格
1 parent 0e8c36f commit f14bdcd

File tree

4 files changed

+30
-8
lines changed

4 files changed

+30
-8
lines changed

CodeService/src/LuaEditorConfig.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,12 @@ void LuaEditorConfig::ParseFromSection(std::shared_ptr<LuaCodeStyleOptions> opti
206206
configMap.at("keep_one_space_between_table_and_bracket") == "true";
207207
}
208208

209+
if(configMap.count("keep_one_space_between_namedef_and_attribute"))
210+
{
211+
options->keep_one_space_between_namedef_and_attribute =
212+
configMap.at("keep_one_space_between_namedef_and_attribute") == "true";
213+
}
214+
209215
if (configMap.count("align_table_field_to_first_field"))
210216
{
211217
options->align_table_field_to_first_field = configMap.at("align_table_field_to_first_field") == "true";

CodeService/src/LuaFormatter.cpp

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -395,7 +395,7 @@ std::shared_ptr<FormatElement> LuaFormatter::FormatLocalStatement(std::shared_pt
395395
}
396396

397397
env->Add<TextElement>(node);
398-
env->Add<KeepBlankElement>(1);
398+
env->Add<KeepElement>(1);
399399
break;
400400
}
401401
case LuaAstNodeType::NameDefList:
@@ -477,7 +477,7 @@ std::shared_ptr<FormatElement> LuaFormatter::FormatNameDefList(std::shared_ptr<L
477477
{
478478
case LuaAstNodeType::Identify:
479479
{
480-
env->Add<TextElement>(node, TextDefineType::LocalNameDefine);
480+
env->Add<TextElement>(node);
481481
break;
482482
}
483483
case LuaAstNodeType::GeneralOperator:
@@ -492,6 +492,16 @@ std::shared_ptr<FormatElement> LuaFormatter::FormatNameDefList(std::shared_ptr<L
492492
env->Add<KeepElement>(1);
493493
break;
494494
}
495+
case LuaAstNodeType::Attribute:
496+
{
497+
if(_options.keep_one_space_between_namedef_and_attribute)
498+
{
499+
env->Add<KeepBlankElement>(1);
500+
}
501+
502+
env->AddChild(FormatNode(node));
503+
break;
504+
}
495505
default:
496506
DefaultHandle(node, env);
497507
break;
@@ -1000,12 +1010,12 @@ std::shared_ptr<FormatElement> LuaFormatter::FormatExpressionStatement(std::shar
10001010
env->AddChild(FormatNode(child));
10011011
break;
10021012
}
1003-
// case LuaAstNodeType::Expression:
1004-
// {
1005-
// FormatExpression(child, env);
1006-
// break;
1007-
// }
1008-
// default 一般只有一个分号
1013+
// case LuaAstNodeType::Expression:
1014+
// {
1015+
// FormatExpression(child, env);
1016+
// break;
1017+
// }
1018+
// default 一般只有一个分号
10091019
default:
10101020
{
10111021
DefaultHandle(child, env);

include/CodeService/LuaCodeStyleOptions.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,11 @@ class LuaCodeStyleOptions
6363
*/
6464
bool keep_one_space_between_table_and_bracket = true;
6565

66+
/*
67+
* 设定namedef 和 他的attribute之间是否间距一个空格
68+
*/
69+
bool keep_one_space_between_namedef_and_attribute = false;
70+
6671
/*
6772
* 既然大佬们觉得不好那就不开放选项的设置
6873
*/

lua.template.editorconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ keep_one_space_between_call_args_and_bracket = false
1313
align_function_define_params = true
1414
keep_one_space_between_table_and_bracket = true
1515
align_table_field_to_first_field = true
16+
keep_one_space_between_namedef_and_attribute = false
1617
continuous_assign_statement_align_to_equal_sign = true
1718
continuous_assign_table_field_align_to_equal_sign = true
1819
# optional crlf/lf

0 commit comments

Comments
 (0)