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

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

@ -19,7 +19,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
/// <summary> /// <summary>
/// Wraps the CodeEditor class to provide the ITextEditor interface. /// Wraps the CodeEditor class to provide the ITextEditor interface.
/// </summary> /// </summary>
public class CodeEditorAdapter : AvalonEditTextEditorAdapter sealed class CodeEditorAdapter : AvalonEditTextEditorAdapter
{ {
readonly CodeEditor codeEditor; readonly CodeEditor codeEditor;
@ -88,5 +88,9 @@ namespace ICSharpCode.AvalonEdit.AddIn
public override IInsightWindow ActiveInsightWindow { public override IInsightWindow ActiveInsightWindow {
get { return codeEditor.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 @@
<?xml version="1.0" encoding="utf-8"?> <?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> <PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@ -10,7 +10,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder> <AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ICSharpCode.TreeView.Demo</RootNamespace> <RootNamespace>ICSharpCode.TreeView.Demo</RootNamespace>
<AssemblyName>ICSharpCode.TreeView.Demo</AssemblyName> <AssemblyName>ICSharpCode.TreeView.Demo</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion> <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment> <FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>

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

@ -223,5 +223,11 @@ namespace ICSharpCode.SharpDevelop.Editor.AvalonEdit
{ {
return null; 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
/// </summary> /// </summary>
public interface ITextEditor : IServiceProvider 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; } IDocument Document { get; }
/// <summary>
/// Gets an object that represents the caret inside this text editor.
/// </summary>
ITextEditorCaret Caret { get; } ITextEditorCaret Caret { get; }
/// <summary>
/// Gets the set of options used in the text editor.
/// </summary>
ITextEditorOptions Options { get; } ITextEditorOptions Options { get; }
ILanguageBinding Language { get; } ILanguageBinding Language { get; }

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

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

Loading…
Cancel
Save