// // // // // $Revision$ // using System; using System.Collections.Generic; namespace ICSharpCode.TextEditor.Document { /// /// A simple folding strategy which calculates the folding level /// using the indent level of the line. /// public class IndentFoldingStrategy : IFoldingStrategy { public List GenerateFoldMarkers(IDocument document, string fileName, object parseInformation) { List l = new List(); Stack offsetStack = new Stack(); Stack textStack = new Stack(); //int level = 0; //foreach (LineSegment segment in document.LineSegmentCollection) { // //} return l; } int GetLevel(IDocument document, int offset) { int level = 0; int spaces = 0; for (int i = offset; i < document.TextLength; ++i) { char c = document.GetCharAt(i); if (c == '\t' || (c == ' ' && ++spaces == 4)) { spaces = 0; ++level; } else { break; } } return level; } } }