public virtual void OnAfterEdit(LanguageProvider.TextPosition start, LanguageProvider.TextPosition oldEnd, LanguageProvider.TextPosition newEnd)
        {
            this.AnalyzingId = this.Analyzer.Analyze(this.Callback.TextEditorBox.Text);
            if (this.EditingNode != null)
            {
                this.IsTemporaryEditingNode = true;
                TextPosition editingStart  = CodePositionToEditing(start);
                TextPosition editingOldEnd = CodePositionToEditing(oldEnd);
                TextPosition editingNewEnd = CodePositionToEditing(newEnd);
                if (this.EditingNodeCode.Contains(editingStart) && this.EditingNodeCode.Contains(editingOldEnd))
                {
                    string editingText = this.Callback.TextEditorBox.TextProvider.GetString(start, newEnd);
                    this.EditingNodeCode.Edit(editingStart, editingOldEnd, editingText);

                    TEditingNodeContainer editingNodeContainer = this.Provider.ParseEditingNodeContainer(this.EditingNodeCode.Text);
                    if (editingNodeContainer != null)
                    {
                        editingNodeContainer.BuildScope(this.EditingNodeScope);
                        this.EditingNode = this.Provider.GetEditingNode(editingNodeContainer, editingNewEnd);
                    }
                    else
                    {
                        this.EditingNode = null;
                    }
                }
                else
                {
                    this.EditingNode          = null;
                    this.EditingNodeCode.Text = "";
                }
                this.Provider.TemporaryResultUpdated();
            }
        }
 public virtual void OnBeforeEdit(LanguageProvider.TextPosition start, LanguageProvider.TextPosition end, ref string[] lines)
 {
 }