private void AddCurveBrackets() { int start = 0; for (int i = 0; i < lines.Length; i++) { Word[] words = Split.SeparateLine(Line.TrimmedLine(lines[i])); if (Word.IsBlock(words)) { if (IsSingleLineBlock(i)) { _AddCurveBrackets(ref i, ref start); } } else { Word first; try { first = Word.FirstNotEmptyWord(words); } catch (ArgumentOutOfRangeException) { continue; } if (first.Text == Data.ELSE.Text && Line.TrimmedLine(lines[i + 1]) != "{") { _AddCurveBrackets(ref i, ref start); } } } }
private void _AddCurveBrackets(ref int i, ref int start) { string offset = Line.GetOffset(lines[i]); string[] parts = new string[3]; parts[0] = lines[i]; parts[1] = offset + "{"; i++; start = i; parts[2] = offset + "\t" + Line.TrimmedLine(lines[i]); Split.Remove(ref lines, i); Split.InsertInsteadOf(i - 1, ref lines, parts); i++; int IF_Without_ELSE = 0; Word[] words = Split.SeparateLine(Line.TrimmedLine(lines[i])); while (Word.IsBlock(words)) { if (Word.FirstNotEmptyWord(words).Text == Data.IF.Text) { IF_Without_ELSE++; } if (IsSingleLineBlock(i)) { i++; } else { i = Brackets.GetCloseCurveBracketIndex(lines, i + 1); } words = Split.SeparateLine(Line.TrimmedLine(lines[i])); } bool wasSingleLine_ELSE = false; for (; IF_Without_ELSE > 0; IF_Without_ELSE--) { if (Line.TrimmedLine(lines[i + 1]) == Data.ELSE.Text) { if (IsSingleLineBlock(i)) { i++; wasSingleLine_ELSE = true; } else { i = Brackets.GetCloseCurveBracketIndex(lines, i + 1); wasSingleLine_ELSE = false; } } } if (wasSingleLine_ELSE) { i++; } parts[0] = lines[i]; parts[1] = offset + "}"; parts[2] = lines[i + 1]; Split.Remove(ref lines, i + 1); Split.InsertInsteadOf(i, ref lines, parts); i = start; }