diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs index bbe07412da..b743be62ba 100644 --- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs @@ -33,20 +33,11 @@ using ICSharpCode.SharpDevelop.Widgets.MyersDiff; namespace ICSharpCode.AvalonEdit.AddIn { - public interface ICodeEditor - { - TextDocument Document { get; } - - void Redraw(ISegment segment, DispatcherPriority priority); - - event EventHandler DocumentChanged; - } - /// /// Integrates AvalonEdit with SharpDevelop. /// Also provides support for Split-View (showing two AvalonEdit instances using the same TextDocument) /// - public class CodeEditor : Grid, IDisposable, ICodeEditor + public class CodeEditor : Grid, IDisposable { const string contextMenuPath = "/SharpDevelop/ViewContent/AvalonEdit/ContextMenu"; @@ -153,9 +144,9 @@ namespace ICSharpCode.AvalonEdit.AddIn ParserService.ParseInformationUpdated += ParserServiceParseInformationUpdated; this.FlowDirection = FlowDirection.LeftToRight; // code editing is always left-to-right + this.document = new TextDocument(); this.CommandBindings.Add(new CommandBinding(SharpDevelopRoutedCommands.SplitView, OnSplitView)); - - textMarkerService = new TextMarkerService(this); + textMarkerService = new TextMarkerService(document); iconBarManager = new IconBarManager(); if (CodeEditorOptions.Instance.EnableChangeMarkerMargin) { changeWatcher = new DefaultChangeWatcher(); @@ -165,9 +156,6 @@ namespace ICSharpCode.AvalonEdit.AddIn Debug.Assert(primaryTextEditorAdapter != null); activeTextEditor = primaryTextEditor; - this.Document = primaryTextEditor.Document; - primaryTextEditor.SetBinding(TextEditor.DocumentProperty, new Binding("Document") { Source = this }); - this.ColumnDefinitions.Add(new ColumnDefinition()); this.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto }); this.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star), MinHeight = minRowHeight }); @@ -199,6 +187,7 @@ namespace ICSharpCode.AvalonEdit.AddIn CodeEditorView codeEditorView = new CodeEditorView(); CodeEditorAdapter adapter = new CodeEditorAdapter(this, codeEditorView); codeEditorView.Adapter = adapter; + codeEditorView.Document = document; TextView textView = codeEditorView.TextArea.TextView; textView.Services.AddService(typeof(ITextEditor), adapter); textView.Services.AddService(typeof(CodeEditor), this); @@ -340,8 +329,6 @@ namespace ICSharpCode.AvalonEdit.AddIn secondaryTextEditorAdapter = (CodeEditorAdapter)secondaryTextEditor.TextArea.GetService(typeof(ITextEditor)); Debug.Assert(primaryTextEditorAdapter != null); - secondaryTextEditor.SetBinding(TextEditor.DocumentProperty, - new Binding(TextEditor.DocumentProperty.Name) { Source = primaryTextEditor }); secondaryTextEditor.SetBinding(TextEditor.IsReadOnlyProperty, new Binding(TextEditor.IsReadOnlyProperty.Name) { Source = primaryTextEditor }); secondaryTextEditor.SyntaxHighlighting = primaryTextEditor.SyntaxHighlighting; diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Options/HighlightingOptions.xaml b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Options/HighlightingOptions.xaml index 6820ef027d..0fec4ce0d4 100644 --- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Options/HighlightingOptions.xaml +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Options/HighlightingOptions.xaml @@ -10,47 +10,53 @@ - - - - - - - - - - - - - -