/// <summary> /// Breaks the lines. /// </summary> /// <param name="iLine">The i line.</param> /// <param name="pos">The position.</param> /// <param name="ts">The ts.</param> internal static void BreakLines(int iLine, int pos, TextSource ts) { Line newLine = ts.CreateLine(); for (int i = pos; i < ts[iLine].Count; i++) { newLine.Add(ts[iLine][i]); } ts[iLine].RemoveRange(pos, ts[iLine].Count - pos); // ts.InsertLine(iLine + 1, newLine); }
/// <summary> /// Inserts the line. /// </summary> /// <param name="ts">The ts.</param> internal static void InsertLine(TextSource ts) { var tb = ts.CurrentTB; if (!tb.Multiline && tb.LinesCount > 0) { return; } if (ts.Count == 0) { ts.InsertLine(0, ts.CreateLine()); } else { BreakLines(tb.Selection.Start.iLine, tb.Selection.Start.iChar, ts); } tb.Selection.Start = new Place(0, tb.Selection.Start.iLine + 1); ts.NeedRecalc(new TextSource.TextChangedEventArgs(0, 1)); }