MCPcopy Create free account
hub / github.com/CppCXY/EmmyLuaCodeStyle / CheckRange

Method CheckRange

CodeFormatCore/src/RangeFormat/RangeFormatBuilder.cpp:116–158  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

114}
115
116void RangeFormatBuilder::CheckRange(LuaSyntaxNode &syntaxNode, const LuaSyntaxTree &t, FormatResolve &resolve) {
117 if (syntaxNode.IsToken(t)) {
118 LuaSyntaxNode startNode = syntaxNode;
119 LuaSyntaxNode endNode = syntaxNode;
120 if (resolve.GetTokenStrategy() == TokenStrategy::OriginRange) {
121 auto r = resolve.GetOriginRange();
122 startNode = LuaSyntaxNode(r.StartIndex);
123 endNode = LuaSyntaxNode(r.EndIndex);
124 }
125
126 switch (_validRange) {
127 case Valid::Init: {
128 auto tokenEndLine = endNode.GetEndLine(t);
129 if (tokenEndLine >= _range.StartLine && tokenEndLine <= _range.EndLine) {
130 _validRange = Valid::Process;
131 auto tokenStartLine = startNode.GetStartLine(t);
132 if (tokenStartLine < _range.StartLine) {
133 _range.StartLine = tokenStartLine;
134 _range.StartCol = startNode.GetStartCol(t);
135 }
136 }
137 break;
138 }
139 case Valid::Process: {
140 auto tokenStartLine = startNode.GetStartLine(t);
141 if (tokenStartLine > _range.EndLine) {
142 _validRange = Valid::Finish;
143 _state.StopDfsForeach();
144 } else {
145 auto tokenEndLine = endNode.GetEndLine(t);
146 if (tokenEndLine > _range.EndLine) {
147 _range.EndLine = tokenEndLine;
148 }
149 }
150
151 break;
152 }
153 default: {
154 break;
155 }
156 }
157 }
158}

Callers

nothing calls this directly

Calls 8

LuaSyntaxNodeClass · 0.85
GetTokenStrategyMethod · 0.80
GetOriginRangeMethod · 0.80
GetEndLineMethod · 0.80
GetStartLineMethod · 0.80
GetStartColMethod · 0.80
StopDfsForeachMethod · 0.80
IsTokenMethod · 0.45

Tested by

no test coverage detected