Browse Source

Add "ITextEditor.PrimaryView" property to allow language bindings to detect split-views.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@4546 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 16 years ago
parent
commit
871e875ad0
  1. 8
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs
  2. 6
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditorAdapter.cs
  3. 4
      src/Libraries/SharpTreeView/ICSharpCode.TreeView.Demo/ICSharpCode.TreeView.Demo.csproj
  4. 6
      src/Main/Base/Project/Src/Editor/AvalonEdit/AvalonEditTextEditorAdapter.cs
  5. 18
      src/Main/Base/Project/Src/Editor/ITextEditor.cs
  6. 6
      src/Main/Base/Project/Src/TextEditor/Gui/TextEditorAdapter.cs

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

@ -35,6 +35,7 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -35,6 +35,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
{
/// <summary>
/// Integrates AvalonEdit with SharpDevelop.
/// Also provides support for Split-View (showing two AvalonEdit instances using the same TextDocument)
/// </summary>
public class CodeEditor : Grid
{
@ -85,8 +86,11 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -85,8 +86,11 @@ namespace ICSharpCode.AvalonEdit.AddIn
get { return primaryTextEditorAdapter.Document; }
}
public ITextEditor PrimaryTextEditorAdapter {
get { return primaryTextEditorAdapter; }
}
public CodeEditorAdapter ActiveTextEditorAdapter {
public ITextEditor ActiveTextEditorAdapter {
get { return GetAdapter(this.ActiveTextEditor); }
}
@ -234,8 +238,6 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -234,8 +238,6 @@ namespace ICSharpCode.AvalonEdit.AddIn
secondaryTextEditor.SetBinding(TextEditor.DocumentProperty,
new Binding(TextEditor.DocumentProperty.Name) { Source = primaryTextEditor });
secondaryTextEditor.TextArea.SetBinding(TextArea.IndentationStrategyProperty,
new Binding(TextArea.IndentationStrategyProperty.Name) { Source = primaryTextEditor.TextArea });
secondaryTextEditor.SyntaxHighlighting = primaryTextEditor.SyntaxHighlighting;
SetRow(secondaryTextEditor, 2);

6
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditorAdapter.cs

@ -19,7 +19,7 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -19,7 +19,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
/// <summary>
/// Wraps the CodeEditor class to provide the ITextEditor interface.
/// </summary>
public class CodeEditorAdapter : AvalonEditTextEditorAdapter
sealed class CodeEditorAdapter : AvalonEditTextEditorAdapter
{
readonly CodeEditor codeEditor;
@ -88,5 +88,9 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -88,5 +88,9 @@ namespace ICSharpCode.AvalonEdit.AddIn
public override IInsightWindow ActiveInsightWindow {
get { return codeEditor.ActiveInsightWindow; }
}
public override ITextEditor PrimaryView {
get { return codeEditor.PrimaryTextEditorAdapter; }
}
}
}

4
src/Libraries/SharpTreeView/ICSharpCode.TreeView.Demo/ICSharpCode.TreeView.Demo.csproj

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@ -10,7 +10,7 @@ @@ -10,7 +10,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ICSharpCode.TreeView.Demo</RootNamespace>
<AssemblyName>ICSharpCode.TreeView.Demo</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<WarningLevel>4</WarningLevel>

6
src/Main/Base/Project/Src/Editor/AvalonEdit/AvalonEditTextEditorAdapter.cs

@ -223,5 +223,11 @@ namespace ICSharpCode.SharpDevelop.Editor.AvalonEdit @@ -223,5 +223,11 @@ namespace ICSharpCode.SharpDevelop.Editor.AvalonEdit
{
return null;
}
public virtual ITextEditor PrimaryView {
get {
return this;
}
}
}
}

18
src/Main/Base/Project/Src/Editor/ITextEditor.cs

@ -26,8 +26,26 @@ namespace ICSharpCode.SharpDevelop.Editor @@ -26,8 +26,26 @@ namespace ICSharpCode.SharpDevelop.Editor
/// </summary>
public interface ITextEditor : IServiceProvider
{
/// <summary>
/// Gets the primary view if split-view is active.
/// If split-view is disabled, the current ITextEditor instance is returned.
/// </summary>
/// <example>bool isSecondaryView = (editor != editor.PrimaryView);</example>
ITextEditor PrimaryView { get; }
/// <summary>
/// Gets the document that is being edited.
/// </summary>
IDocument Document { get; }
/// <summary>
/// Gets an object that represents the caret inside this text editor.
/// </summary>
ITextEditorCaret Caret { get; }
/// <summary>
/// Gets the set of options used in the text editor.
/// </summary>
ITextEditorOptions Options { get; }
ILanguageBinding Language { get; }

6
src/Main/Base/Project/Src/TextEditor/Gui/TextEditorAdapter.cs

@ -250,6 +250,12 @@ namespace ICSharpCode.SharpDevelop @@ -250,6 +250,12 @@ namespace ICSharpCode.SharpDevelop
throw new NotImplementedException();
}
}
public ITextEditor PrimaryView {
get {
return this;
}
}
}
sealed class CompletionItemListAdapter : ICompletionDataProvider

Loading…
Cancel
Save