public override void Initialize ()
		{
			base.Initialize ();
			IStateMachineIndentEngine indentEngine;
			indentEngine = new JSonIndentEngine (document.Editor);
			stateTracker = new CacheIndentEngine (indentEngine);
			document.Editor.IndentationTracker = new JSonIndentationTracker (document.Editor, stateTracker);
		}
        public override void Initialize()
        {
            base.Initialize();
            IStateMachineIndentEngine indentEngine;

            indentEngine = new JSonIndentEngine(document.Editor);
            stateTracker = new CacheIndentEngine(indentEngine);
            document.Editor.IndentationTracker = new JSonIndentationTracker(document.Editor, stateTracker);
        }
        public static IDocumentIndentEngine CreateEngine(string text)
        {
            var sb = new StringBuilder ();
            int offset = 0;
            for (int i = 0; i < text.Length; i++) {
                var ch = text [i];
                if (ch == '$') {
                    offset = i;
                    continue;
                }
                sb.Append (ch);
            }

            var data = new TextEditorData ();
            data.Text = sb.ToString ();
            var csi = new JSonIndentEngine (data);
            var result = new CacheIndentEngine (csi);
            result.Update (offset);
            return result;
        }