private static int FindLastNewLineOffset(this IDocument document, int start, int end) { if (start >= end) { return(end); } if (document == null) { return(end); } var range = new TextRange(start, end); if (!range.ContainedIn(document.DocumentRange)) { return(0); } var text = document.GetText(range); if (text == null) { return(0); } var lastNewLine = text.LastIndexOfAny(StringUtil.NEW_LINE_CHARACTERS); return(lastNewLine == -1 ? end : start + lastNewLine); }
private static int CountNewLines(this IDocument document, TextRange range) { var result = 0; if (document == null) { return(0); } if (!range.ContainedIn(document.DocumentRange)) { return(0); } var text = document.GetText(range); if (text == null) { return(0); } foreach (var newLine in StringUtil.NEW_LINE_CHARACTERS) { result += StringUtil.Count(text, newLine); } return(result); }