Skip to content

Commit d2a0878

Browse files
committed
内联注释对齐默认开启
1 parent ebb17c1 commit d2a0878

File tree

6 files changed

+29
-34
lines changed

6 files changed

+29
-34
lines changed

CodeService/src/Config/LuaStyle.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,8 @@ void LuaStyle::ParseFromMap(std::map<std::string, std::string, std::less<>> &con
165165

166166
BOOL_OPTION(align_array_table)
167167

168+
BOOL_OPTION(align_continuous_inline_comment)
169+
168170
BOOL_OPTION(never_indent_before_if_condition)
169171

170172
if (align_if_branch) {

CodeService/src/Diagnostic/DiagnosticBuilder.cpp

Lines changed: 11 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -88,39 +88,20 @@ void DiagnosticBuilder::SpellCheck(const LuaSyntaxTree &t, CodeSpellChecker &spe
8888
void DiagnosticBuilder::DoDiagnosticResolve(LuaSyntaxNode syntaxNode, const LuaSyntaxTree &t, FormatResolve &resolve) {
8989
if (syntaxNode.IsToken(t)) {
9090
auto textRange = syntaxNode.GetTextRange(t);
91-
// auto &file = t.GetFile();
91+
// auto prevToken = syntaxNode.GetPrevToken(t);
92+
// if (prevToken.GetEndLine(t) != syntaxNode.GetStartLine(t)) {
93+
// auto &file = t.GetFile();
94+
// auto indent = _state.GetCurrentIndent();
95+
// auto currentIndent = file.GetIndentString(textRange.StartOffset);
96+
//
97+
// }
98+
9299
switch (resolve.GetPrevSpaceStrategy()) {
93100
case PrevSpaceStrategy::AlignPos: {
94-
// auto pos = resolve.GetAlign();
95-
// if (pos != file.GetLineOffset(textRange.StartOffset)) {
96-
// PushDiagnostic(DiagnosticType::Align,
97-
// syntaxNode.GetPrevToken(t).GetIndex(),
98-
// textRange,
99-
// util::format(LText("should align to {}"),
100-
// file.GetColumn(pos)
101-
// )
102-
// );
103-
// } else {
104-
// ClearDiagnostic(syntaxNode.GetPrevToken(t).GetIndex());
105-
// }
106101
ClearDiagnostic(syntaxNode.GetPrevToken(t).GetIndex());
107102
break;
108103
}
109104
case PrevSpaceStrategy::AlignRelativeIndent: {
110-
// auto relativePos = resolve.GetAlign();
111-
// auto indentState = _state.GetCurrentIndent();
112-
// auto pos = relativePos + indentState.SpaceSize + indentState.TabSize * _state.GetStyle().tab_width;
113-
// if (pos != file.GetLineOffset(textRange.StartOffset)) {
114-
// PushDiagnostic(DiagnosticType::Align,
115-
// syntaxNode.GetPrevToken(t).GetIndex(),
116-
// textRange,
117-
// util::format(LText("should align to {}"),
118-
// file.GetColumn(pos)
119-
// )
120-
// );
121-
// } else {
122-
// ClearDiagnostic(syntaxNode.GetPrevToken(t).GetIndex());
123-
// }
124105
ClearDiagnostic(syntaxNode.GetPrevToken(t).GetIndex());
125106
break;
126107
}
@@ -167,7 +148,7 @@ void DiagnosticBuilder::DoDiagnosticResolve(LuaSyntaxNode syntaxNode, const LuaS
167148
auto nextToken = syntaxNode.GetNextToken(t);
168149
if (nextToken.IsToken(t)
169150
&& nextToken.GetStartLine(t) == syntaxNode.GetEndLine(t)) {
170-
ProcessSpaceDiagnostic(syntaxNode, nextToken, t, resolve.GetNextSpace());
151+
ProcessSpaceDiagnostic(syntaxNode, nextToken, resolve.GetNextSpace(), t);
171152
}
172153
break;
173154
}
@@ -247,8 +228,8 @@ std::string DiagnosticBuilder::GetAdditionalNote(LuaSyntaxNode &left, LuaSyntaxN
247228
}
248229
}
249230

250-
void DiagnosticBuilder::ProcessSpaceDiagnostic(LuaSyntaxNode &node, LuaSyntaxNode &next, const LuaSyntaxTree &t,
251-
size_t shouldSpace) {
231+
void DiagnosticBuilder::ProcessSpaceDiagnostic(LuaSyntaxNode &node, LuaSyntaxNode &next, size_t shouldSpace,
232+
const LuaSyntaxTree &t) {
252233
auto leftOffset = node.GetTextRange(t).EndOffset;
253234
auto rightOffset = next.GetTextRange(t).StartOffset;
254235
int diff = static_cast<int>(rightOffset - leftOffset) - 1;

CodeService/src/Format/Analyzer/AlignAnalyzer.cpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#include "LuaParser/Lexer/LuaTokenTypeDetail.h"
33
#include "CodeService/Format/FormatState.h"
44
#include "SyntaxNodeHelper.h"
5+
#include "Util/StringUtil.h"
56

67

78
AlignAnalyzer::AlignAnalyzer() {
@@ -377,7 +378,8 @@ AlignAnalyzer::ResolveAlignGroup(FormatState &f, std::size_t groupIndex, AlignGr
377378
if (comment.IsToken(t)) {
378379
auto prev = comment.GetPrevToken(t);
379380
auto newPos =
380-
file.GetColumn(prev.GetTextRange(t).EndOffset) + f.GetStyle().space_before_inline_comment + 1;
381+
file.GetColumn(prev.GetTextRange(t).EndOffset) + f.GetStyle().space_before_inline_comment +
382+
1;
381383
if (newPos > maxDis) {
382384
maxDis = newPos;
383385
}
@@ -506,6 +508,12 @@ void AlignAnalyzer::AnalyzeInlineComment(FormatState &f, LuaSyntaxNode &syntaxNo
506508
if (prevToken.GetEndLine(t) != currentLine) {
507509
return;
508510
}
511+
512+
auto text = syntaxNode.GetText(t);
513+
if (string_util::StartWith(text, "---@")) {
514+
return;
515+
}
516+
509517
// now it is inline comment
510518
if (_inlineCommentGroup.empty()) {
511519
_inlineCommentGroup.emplace_back();

include/CodeService/Config/LuaStyle.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ class LuaStyle {
100100
// not implement now
101101
bool align_continuous_similar_call_args = false;
102102

103-
bool align_continuous_inline_comment = false;
103+
bool align_continuous_inline_comment = true;
104104

105105
bool align_array_table = true;
106106

include/CodeService/Diagnostic/DiagnosticBuilder.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,13 @@ class DiagnosticBuilder {
3737
void ClearDiagnostic(std::size_t leftIndex);
3838

3939
void ProcessSpaceDiagnostic(LuaSyntaxNode &node, LuaSyntaxNode &next,
40-
const LuaSyntaxTree &t,
41-
size_t shouldSpace);
40+
size_t shouldSpace,
41+
const LuaSyntaxTree &t);
4242

4343
std::string GetAdditionalNote(LuaSyntaxNode &left, LuaSyntaxNode &right, const LuaSyntaxTree &t);
4444

45+
void ProcessIndentDiagnostic(LuaSyntaxNode &node, IndentData indentData, const LuaSyntaxTree &t);
46+
4547
FormatState _state;
4648
std::map<std::size_t, LuaDiagnostic> _nextDiagnosticMap;
4749
std::vector<LuaDiagnostic> _diagnostics;

lua.template.editorconfig

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,8 @@ align_if_branch = false
8686

8787
align_array_table = true
8888

89+
align_continuous_inline_comment = true
90+
8991
# [indent]
9092

9193
never_indent_before_if_condition = false

0 commit comments

Comments
 (0)