private List <ICSharpCode.TextEditor.Document.FoldMarker> GetFoldingsByStartAfterColumn(int lineNumber, int column, bool forceFolded) { List <ICSharpCode.TextEditor.Document.FoldMarker> foldMarkers = new List <ICSharpCode.TextEditor.Document.FoldMarker>(); if (this.foldMarker != null) { int num = this.foldMarker.BinarySearch(new ICSharpCode.TextEditor.Document.FoldMarker(this.document, lineNumber, column, lineNumber, column), FoldingManager.StartComparer.Instance); if (num < 0) { num = ~num; } while (num < this.foldMarker.Count) { ICSharpCode.TextEditor.Document.FoldMarker item = this.foldMarker[num]; if (item.StartLine > lineNumber) { break; } if (item.StartColumn > column && (!forceFolded || item.IsFolded)) { foldMarkers.Add(item); } num++; } } return(foldMarkers); }
public List <ICSharpCode.TextEditor.Document.FoldMarker> GetFoldingsFromPosition(int line, int column) { List <ICSharpCode.TextEditor.Document.FoldMarker> foldMarkers = new List <ICSharpCode.TextEditor.Document.FoldMarker>(); if (this.foldMarker != null) { for (int i = 0; i < this.foldMarker.Count; i++) { ICSharpCode.TextEditor.Document.FoldMarker item = this.foldMarker[i]; if (item.StartLine == line && column > item.StartColumn && (item.EndLine != line || column < item.EndColumn) || item.EndLine == line && column < item.EndColumn && (item.StartLine != line || column > item.StartColumn) || line > item.StartLine && line < item.EndLine) { foldMarkers.Add(item); } } } return(foldMarkers); }