Browse Source

remove SplitView functionality from CodeEditor

pull/48/merge
Siegfried Pammer 12 years ago
parent
commit
e85d13d875
  1. 88
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs
  2. 4
      src/Main/Base/Project/ICSharpCode.SharpDevelop.addin
  3. 2
      src/Main/Base/Project/Src/Commands/SharpDevelopRoutedCommands.cs

88
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs

@ -45,9 +45,6 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -45,9 +45,6 @@ namespace ICSharpCode.AvalonEdit.AddIn
QuickClassBrowser quickClassBrowser;
readonly CodeEditorView primaryTextEditor;
readonly CodeEditorAdapter primaryTextEditorAdapter;
CodeEditorView secondaryTextEditor;
CodeEditorView activeTextEditor;
CodeEditorAdapter secondaryTextEditorAdapter;
GridSplitter gridSplitter;
readonly IconBarManager iconBarManager;
readonly TextMarkerService textMarkerService;
@ -58,14 +55,9 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -58,14 +55,9 @@ namespace ICSharpCode.AvalonEdit.AddIn
get { return primaryTextEditor; }
}
[Obsolete()]
public CodeEditorView ActiveTextEditor {
get { return activeTextEditor; }
private set {
if (activeTextEditor != value) {
activeTextEditor = value;
HandleCaretPositionChange();
}
}
get { return primaryTextEditor; }
}
TextDocument document;
@ -114,8 +106,6 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -114,8 +106,6 @@ namespace ICSharpCode.AvalonEdit.AddIn
this.document.FileName = fileName;
primaryTextEditorAdapter.FileNameChanged();
if (secondaryTextEditorAdapter != null)
secondaryTextEditorAdapter.FileNameChanged();
if (this.errorPainter == null) {
this.errorPainter = new ErrorPainter(primaryTextEditorAdapter);
@ -143,12 +133,6 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -143,12 +133,6 @@ namespace ICSharpCode.AvalonEdit.AddIn
primaryTextEditor.TextArea.TextView.LineTransformers.Insert(0, new HighlightingColorizer(highlighter));
primaryTextEditor.UpdateCustomizedHighlighting();
if (secondaryTextEditor != null) {
secondaryTextEditor.SyntaxHighlighting = highlighting;
secondaryTextEditor.TextArea.TextView.LineTransformers.RemoveAll(t => t is HighlightingColorizer);
secondaryTextEditor.TextArea.TextView.LineTransformers.Insert(0, new HighlightingColorizer(highlighter));
secondaryTextEditor.UpdateCustomizedHighlighting();
}
// Dispose the old highlighter; necessary to avoid memory leaks as
// semantic highlighters might attach to global parser events.
if (oldHighlighter != null) {
@ -159,9 +143,6 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -159,9 +143,6 @@ namespace ICSharpCode.AvalonEdit.AddIn
public void Redraw(ISegment segment, DispatcherPriority priority)
{
primaryTextEditor.TextArea.TextView.Redraw(segment, priority);
if (secondaryTextEditor != null) {
secondaryTextEditor.TextArea.TextView.Redraw(segment, priority);
}
}
const double minRowHeight = 40;
@ -175,7 +156,6 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -175,7 +156,6 @@ namespace ICSharpCode.AvalonEdit.AddIn
this.FlowDirection = FlowDirection.LeftToRight; // code editing is always left-to-right
this.document = new TextDocument();
var documentServiceContainer = document.GetRequiredService<IServiceContainer>();
this.CommandBindings.Add(new CommandBinding(SharpDevelopRoutedCommands.SplitView, OnSplitView));
textMarkerService = new TextMarkerService(document);
documentServiceContainer.AddService(typeof(ITextMarkerService), textMarkerService);
@ -189,7 +169,6 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -189,7 +169,6 @@ namespace ICSharpCode.AvalonEdit.AddIn
primaryTextEditor = CreateTextEditor();
primaryTextEditorAdapter = (CodeEditorAdapter)primaryTextEditor.TextArea.GetService(typeof(ITextEditor));
Debug.Assert(primaryTextEditorAdapter != null);
activeTextEditor = primaryTextEditor;
this.ColumnDefinitions.Add(new ColumnDefinition());
this.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto });
@ -210,8 +189,6 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -210,8 +189,6 @@ namespace ICSharpCode.AvalonEdit.AddIn
// CustomizableHighlightingColorizer loads the new values automatically, we just need
// to force a refresh in AvalonEdit.
primaryTextEditor.UpdateCustomizedHighlighting();
if (secondaryTextEditor != null)
secondaryTextEditor.UpdateCustomizedHighlighting();
foreach (var bookmark in SD.BookmarkManager.GetBookmarks(fileName).OfType<SDMarkerBookmark>())
bookmark.SetMarker();
}
@ -251,7 +228,6 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -251,7 +228,6 @@ namespace ICSharpCode.AvalonEdit.AddIn
codeEditorView.TextArea.MouseRightButtonDown += TextAreaMouseRightButtonDown;
codeEditorView.TextArea.ContextMenuOpening += TextAreaContextMenuOpening;
codeEditorView.TextArea.TextCopied += textEditor_TextArea_TextCopied;
codeEditorView.GotFocus += textEditor_GotFocus;
return codeEditorView;
}
@ -275,12 +251,6 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -275,12 +251,6 @@ namespace ICSharpCode.AvalonEdit.AddIn
textEditor.Dispose();
}
void textEditor_GotFocus(object sender, RoutedEventArgs e)
{
Debug.Assert(sender is CodeEditorView);
this.ActiveTextEditor = (CodeEditorView)sender;
}
void TextAreaContextMenuOpening(object sender, ContextMenuEventArgs e)
{
ITextEditor adapter = GetAdapterFromSender(sender);
@ -376,48 +346,6 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -376,48 +346,6 @@ namespace ICSharpCode.AvalonEdit.AddIn
}
}
void OnSplitView(object sender, ExecutedRoutedEventArgs e)
{
if (secondaryTextEditor == null) {
// create secondary editor
this.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star), MinHeight = minRowHeight });
secondaryTextEditor = CreateTextEditor();
secondaryTextEditorAdapter = (CodeEditorAdapter)secondaryTextEditor.TextArea.GetService(typeof(ITextEditor));
Debug.Assert(primaryTextEditorAdapter != null);
secondaryTextEditor.SetBinding(TextEditor.IsReadOnlyProperty,
new Binding(TextEditor.IsReadOnlyProperty.Name) { Source = primaryTextEditor });
secondaryTextEditor.SyntaxHighlighting = primaryTextEditor.SyntaxHighlighting;
secondaryTextEditor.UpdateCustomizedHighlighting();
gridSplitter = new GridSplitter {
Height = 4,
HorizontalAlignment = HorizontalAlignment.Stretch,
VerticalAlignment = VerticalAlignment.Top
};
SetRow(gridSplitter, 2);
this.Children.Add(gridSplitter);
secondaryTextEditor.Margin = new Thickness(0, 4, 0, 0);
SetRow(secondaryTextEditor, 2);
this.Children.Add(secondaryTextEditor);
secondaryTextEditorAdapter.FileNameChanged();
FetchParseInformation();
} else {
// remove secondary editor
this.Children.Remove(secondaryTextEditor);
this.Children.Remove(gridSplitter);
secondaryTextEditorAdapter.DetachExtensions();
DisposeTextEditor(secondaryTextEditor);
secondaryTextEditor = null;
secondaryTextEditorAdapter = null;
gridSplitter = null;
this.RowDefinitions.RemoveAt(this.RowDefinitions.Count - 1);
this.ActiveTextEditor = primaryTextEditor;
}
}
public event EventHandler CaretPositionChanged;
void TextAreaCaretPositionChanged(object sender, EventArgs e)
@ -454,15 +382,13 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -454,15 +382,13 @@ namespace ICSharpCode.AvalonEdit.AddIn
SharpDevelopCompletionWindow CompletionWindow {
get {
return primaryTextEditor.ActiveCompletionWindow
?? (secondaryTextEditor == null ? null : secondaryTextEditor.ActiveCompletionWindow);
return primaryTextEditor.ActiveCompletionWindow;
}
}
SharpDevelopInsightWindow InsightWindow {
get {
return primaryTextEditor.ActiveInsightWindow
?? (secondaryTextEditor == null ? null : secondaryTextEditor.ActiveInsightWindow);
return primaryTextEditor.ActiveInsightWindow;
}
}
@ -635,8 +561,6 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -635,8 +561,6 @@ namespace ICSharpCode.AvalonEdit.AddIn
}
iconBarManager.UpdateClassMemberBookmarks(parseInfo != null ? parseInfo.UnresolvedFile : null, document);
primaryTextEditor.UpdateParseInformationForFolding(parseInfo);
if (secondaryTextEditor != null)
secondaryTextEditor.UpdateParseInformationForFolding(parseInfo);
}
public void Dispose()
@ -647,8 +571,6 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -647,8 +571,6 @@ namespace ICSharpCode.AvalonEdit.AddIn
if (primaryTextEditorAdapter.Language != null)
primaryTextEditorAdapter.DetachExtensions();
if (secondaryTextEditorAdapter != null && secondaryTextEditorAdapter.Language != null)
secondaryTextEditorAdapter.DetachExtensions();
if (errorPainter != null)
errorPainter.Dispose();
@ -656,8 +578,6 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -656,8 +578,6 @@ namespace ICSharpCode.AvalonEdit.AddIn
changeWatcher.Dispose();
this.Document = null;
DisposeTextEditor(primaryTextEditor);
if (secondaryTextEditor != null)
DisposeTextEditor(secondaryTextEditor);
}
}
}

4
src/Main/Base/Project/ICSharpCode.SharpDevelop.addin

@ -1905,10 +1905,6 @@ @@ -1905,10 +1905,6 @@
shortcut = "Shift|Control|Tab"
class = "ICSharpCode.SharpDevelop.Commands.SelectPrevWindow" />
<MenuItem id ="NxtPrvSeparator" type = "Separator" />
<MenuItem id = "SplitView"
label = "${res:XML.MainMenu.WindowMenu.Split}"
icon = "Icons.16x16.SplitWindow"
command = "ICSharpCode.SharpDevelop.SharpDevelopRoutedCommands.SplitView"/>
<MenuItem id = "CloseAll"
label = "${res:XML.MainMenu.FileMenu.CloseAll}"
icon = "Icons.16x16.CloseAllDocuments"

2
src/Main/Base/Project/Src/Commands/SharpDevelopRoutedCommands.cs

@ -11,7 +11,5 @@ namespace ICSharpCode.SharpDevelop @@ -11,7 +11,5 @@ namespace ICSharpCode.SharpDevelop
/// </summary>
public static class SharpDevelopRoutedCommands
{
public static readonly RoutedCommand SplitView = new RoutedCommand(
"SplitView", typeof(SharpDevelopRoutedCommands));
}
}

Loading…
Cancel
Save