Mono.TextEditor.LineSplitter.Initalize C# (CSharp) Method

Initalize() public method

public Initalize ( string text ) : void
text string
return void
		public void Initalize (string text)
		{
			LineEndingMismatch = false;
			Clear ();
			if (string.IsNullOrEmpty (text))
				return;
			var nodes = new List<TreeNode> ();

			var delimiterType = UnicodeNewline.Unknown;
			int offset = 0;
			while (true) {
				var delimiter = NextDelimiter (text, offset);
				if (delimiter.IsInvalid)
					break;
				int delimiterEndOffset = delimiter.Offset + delimiter.Length;
				var newLine = new TreeNode (delimiterEndOffset - offset, delimiter.Length);
				nodes.Add (newLine);
				if (offset > 0) {
					LineEndingMismatch |= delimiterType != delimiter.UnicodeNewline;
				} else {
					delimiterType = delimiter.UnicodeNewline;
				}
				offset = delimiterEndOffset;
			}
			var lastLine = new TreeNode (text.Length - offset, 0);
			nodes.Add (lastLine);
			
			int height = GetTreeHeight (nodes.Count);

			var newRoot = BuildTree (nodes, 0, nodes.Count, height);
			if (newRoot != null) {
				tree.Root = newRoot;
				tree.Root.Color = RedBlackColor.Black;
				tree.Count = nodes.Count;
			}
		}