Skip to content

Commit da71a27

Browse files
committed
修复实现
1 parent f4eae75 commit da71a27

File tree

2 files changed

+42
-50
lines changed

2 files changed

+42
-50
lines changed

CodeFormatLib/src/LuaCodeFormat.cpp

Lines changed: 40 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -71,30 +71,10 @@ std::string LuaCodeFormat::Reformat(const std::string& uri, std::string&& text,
7171
return "";
7272
}
7373
auto options = GetOptions(uri);
74-
if (configMap.empty())
75-
{
76-
LuaFormatter formatter(parser, *options);
77-
formatter.BuildFormattedElement();
78-
return formatter.GetFormattedText();
79-
}
80-
else
81-
{
82-
LuaCodeStyleOptions tempOptions = *options;
83-
if (configMap.count("insertSpaces"))
84-
{
85-
tempOptions.indent_style = configMap.at("insertSpaces") == "true"
86-
? IndentStyle::Space
87-
: IndentStyle::Tab;
88-
}
89-
if(configMap.count("tabSize"))
90-
{
91-
tempOptions.tab_width = std::stoi(configMap.at("tabSize"));
92-
}
93-
94-
LuaFormatter formatter(parser, tempOptions);
95-
formatter.BuildFormattedElement();
96-
return formatter.GetFormattedText();
97-
}
74+
auto tempOptions = CalculateOptions(uri, configMap);
75+
LuaFormatter formatter(parser, tempOptions);
76+
formatter.BuildFormattedElement();
77+
return formatter.GetFormattedText();
9878
}
9979

10080
std::string LuaCodeFormat::RangeFormat(const std::string& uri, LuaFormatRange& range, std::string&& text,
@@ -109,33 +89,11 @@ std::string LuaCodeFormat::RangeFormat(const std::string& uri, LuaFormatRange& r
10989
}
11090
auto options = GetOptions(uri);
11191

112-
if (configMap.empty())
113-
{
114-
LuaFormatter formatter(parser, *options);
115-
formatter.BuildFormattedElement();
116-
117-
return formatter.GetRangeFormattedText(range);
118-
}
119-
else
120-
{
121-
LuaCodeStyleOptions tempOptions = *options;
122-
if (configMap.count("insertSpaces"))
123-
{
124-
tempOptions.indent_style = configMap.at("insertSpaces") == "true"
125-
? IndentStyle::Space
126-
: IndentStyle::Tab;
127-
}
128-
if (configMap.count("tabSize"))
129-
{
130-
tempOptions.tab_width = std::stoi(configMap.at("tabSize"));
131-
}
132-
133-
LuaFormatter formatter(parser, tempOptions);
134-
formatter.BuildFormattedElement();
135-
136-
return formatter.GetRangeFormattedText(range);
137-
}
92+
auto tempOptions = CalculateOptions(uri, configMap);
93+
LuaFormatter formatter(parser, tempOptions);
94+
formatter.BuildFormattedElement();
13895

96+
return formatter.GetRangeFormattedText(range);
13997
}
14098

14199
std::pair<bool, std::vector<LuaDiagnosisInfo>> LuaCodeFormat::Diagnose(const std::string& uri, std::string&& text)
@@ -169,3 +127,35 @@ std::shared_ptr<LuaCodeStyleOptions> LuaCodeFormat::GetOptions(const std::string
169127

170128
return options;
171129
}
130+
131+
LuaCodeStyleOptions LuaCodeFormat::CalculateOptions(const std::string& uri, ConfigMap& configMap)
132+
{
133+
auto options = GetOptions(uri);
134+
135+
if (configMap.empty())
136+
{
137+
return *options;
138+
}
139+
else
140+
{
141+
LuaCodeStyleOptions tempOptions = *options;
142+
if (configMap.count("insertSpaces"))
143+
{
144+
tempOptions.indent_style = configMap.at("insertSpaces") == "true"
145+
? IndentStyle::Space
146+
: IndentStyle::Tab;
147+
}
148+
if (configMap.count("tabSize"))
149+
{
150+
if (tempOptions.indent_style == IndentStyle::Tab) {
151+
tempOptions.tab_width = std::stoi(configMap.at("tabSize"));
152+
}
153+
else if(tempOptions.indent_style == IndentStyle::Space)
154+
{
155+
tempOptions.indent_size = std::stoi(configMap.at("tabSize"));
156+
}
157+
}
158+
return tempOptions;
159+
}
160+
161+
}

CodeFormatLib/src/LuaCodeFormat.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ class LuaCodeFormat
2828
std::pair<bool, std::vector<LuaDiagnosisInfo>> Diagnose(const std::string& uri, std::string&& text);
2929

3030
std::shared_ptr<LuaCodeStyleOptions> GetOptions(const std::string& uri);
31+
32+
LuaCodeStyleOptions CalculateOptions(const std::string& uri, ConfigMap& configMap);
3133
private:
3234
std::vector<std::pair<std::string, std::shared_ptr<LuaEditorConfig>>> _editorConfigVector;
3335

0 commit comments

Comments
 (0)