private IEnumerable <InlineItemLine> BreakToRunLines(IEnumerable <Run> runs) { var lines = new List <InlineItemLine>(); var currentLine = new InlineItemLine(); foreach (var run in runs) { if (run.Text.Contains(Environment.NewLine)) { var parts = run.Text.SplitToLines(); foreach (var part in parts) { if (!string.IsNullOrEmpty(part)) { currentLine.AddItem(CloneFormat(run, part)); } lines.Add(currentLine); currentLine = new InlineItemLine(); } } else { currentLine.AddItem(run); } } lines.Add(currentLine); return(lines.ToArray()); }
private IEnumerable <InlineItemLine> AddEmptyLines(List <InlineItemLine> lines, IEnumerable <int> emptyLineOffsets) { var indexes = emptyLineOffsets.OrderBy(o => o); foreach (var index in indexes) { var line = new InlineItemLine(); line.AddItem(CreateRun(String.Empty, regularWeight)); lines.Insert(index, line); } return(lines); }
public InlineItemLine RemoveHeadingWhiteSpace() { var newLine = new InlineItemLine(); var startIndex = items.FindIndex(i => !String.IsNullOrWhiteSpace(GetItemText(i))); if (startIndex < items.Count) { newLine.items.AddRange(items.GetRange(startIndex, items.Count - startIndex)); var first = newLine.items.First(); newLine.items.RemoveAt(0); newLine.items.Insert(0, CloneFormat((Run)first, GetItemText(first).TrimStart())); } return(newLine); }
public InlineItemLine RemoveHeadingWhiteSpace() { var newLine = new InlineItemLine(); var startIndex = items.FindIndex(i => !String.IsNullOrWhiteSpace(GetItemText(i))); if (startIndex < items.Count) { newLine.items.AddRange(items.GetRange(startIndex, items.Count - startIndex)); var first = newLine.items.First(); newLine.items.RemoveAt(0); newLine.items.Insert(0, CloneFormat((Run)first, GetItemText(first).TrimStart())); } return newLine; }
private IEnumerable<InlineItemLine> BreakToRunLines(IEnumerable<Run> runs) { var lines = new List<InlineItemLine>(); var currentLine = new InlineItemLine(); foreach (var run in runs) { if (run.Text.Contains(Environment.NewLine)) { var parts = run.Text.SplitToLines(); foreach (var part in parts) { if(!string.IsNullOrEmpty(part)) currentLine.AddItem(CloneFormat(run, part)); lines.Add(currentLine); currentLine = new InlineItemLine(); } } else { currentLine.AddItem(run); } } lines.Add(currentLine); return lines.ToArray(); }
private IEnumerable<InlineItemLine> AlignIndention(InlineItemLine[] lines, IHighlightRawInfo info) { if (lines.Any()) { var lastHead = lines.Last().GetHeadingWhiteSpace(); var firstHead = lines.First().GetHeadingWhiteSpace(); if (firstHead.Equals(string.Empty) && !lastHead.Equals(string.Empty)) { lines.First().AddBeginning(CreateRun(lastHead, regularWeight)); } } return lines; }
private void AddLineNumberHyperlinks(IHighlightRawInfo infor, int num, InlineItemLine line) { foreach (var item in line.GetItems()) { var run = item as Run; if (run != null) AddLineNumberHyperlink(run, num, infor); } }
private InlineItemLine[] AddLineNumber(IHighlightRawInfo infor, InlineItemLine[] lines) { var startLine = infor.StartLineNumber; int i = 0; var offsets = infor.Offsets ?? lines.Select(n => i ++).ToArray(); var offsetIndex = 0; int num = 0, preNum = 0; foreach (var line in lines) { if (offsets.Count() > offsetIndex) { num = startLine + offsets.ElementAt(offsetIndex++); preNum = num; } else { num = preNum + 1; preNum = num; } line.AddBeginning(CreateRun("\t", regularWeight)); line.AddBeginning(CreateRun(num.ToString(), regularWeight)); AddLineNumberHyperlinks(infor, num, line); } return lines; }
private IEnumerable<InlineItemLine> AddEmptyLines(List<InlineItemLine> lines, IEnumerable<int> emptyLineOffsets) { var indexes = emptyLineOffsets.OrderBy(o => o); foreach (var index in indexes) { var line = new InlineItemLine(); line.AddItem(CreateRun(String.Empty, regularWeight)); lines.Insert(index, line); } return lines; }