Browse Source

Move common IronPython and IronRuby console pad code to Scripting project.

pull/1/head
mrward 15 years ago
parent
commit
c3a1ffd6d7
  1. 4
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonConsoleHost.cs
  2. 48
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonConsolePad.cs
  3. 4
      src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/RubyConsoleHost.cs
  4. 48
      src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/RubyConsolePad.cs
  5. 2
      src/AddIns/BackendBindings/Scripting/Project/ICSharpCode.Scripting.csproj
  6. 17
      src/AddIns/BackendBindings/Scripting/Project/Src/IScriptingConsoleHost.cs
  7. 66
      src/AddIns/BackendBindings/Scripting/Project/Src/ScriptingConsolePad.cs

4
src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonConsoleHost.cs

@ -13,7 +13,7 @@ using Microsoft.Scripting.Hosting.Shell; @@ -13,7 +13,7 @@ using Microsoft.Scripting.Hosting.Shell;
namespace ICSharpCode.PythonBinding
{
public class PythonConsoleHost : ConsoleHost, IDisposable
public class PythonConsoleHost : ConsoleHost, IScriptingConsoleHost
{
Thread thread;
IScriptingConsoleTextEditor textEditor;
@ -25,7 +25,7 @@ namespace ICSharpCode.PythonBinding @@ -25,7 +25,7 @@ namespace ICSharpCode.PythonBinding
pythonConsole = new PythonConsole(textEditor, dispatcher);
}
public PythonConsole PythonConsole {
public IScriptingConsole ScriptingConsole {
get { return pythonConsole; }
}

48
src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonConsolePad.cs

@ -3,53 +3,15 @@ @@ -3,53 +3,15 @@
using System;
using ICSharpCode.Scripting;
using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Gui;
using AvalonEdit = ICSharpCode.AvalonEdit;
namespace ICSharpCode.PythonBinding
{
public class PythonConsolePad : AbstractPadContent, IScriptingConsolePad
{
ScriptingConsoleTextEditor consoleTextEditor;
AvalonEdit.TextEditor textEditor;
PythonConsoleHost host;
public PythonConsolePad()
public class PythonConsolePad : ScriptingConsolePad
{
protected override IScriptingConsoleHost CreateConsoleHost(IScriptingConsoleTextEditor consoleTextEditor,
IControlDispatcher dispatcher)
{
textEditor = CreateTextEditor();
ControlDispatcher dispatcher = new ControlDispatcher(textEditor);
consoleTextEditor = new ScriptingConsoleTextEditor(textEditor);
host = new PythonConsoleHost(consoleTextEditor, dispatcher);
host.Run();
}
AvalonEdit.TextEditor CreateTextEditor()
{
object textEditor;
EditorControlService.CreateEditor(out textEditor);
return (AvalonEdit.TextEditor)textEditor;
}
public IScriptingConsoleTextEditor ScriptingConsoleTextEditor {
get { return consoleTextEditor; }
}
public IScriptingConsole ScriptingConsole {
get { return host.PythonConsole; }
}
public override object Control {
get { return textEditor; }
}
public override void Dispose()
{
host.Dispose();
}
public override object InitiallyFocusedControl {
get { return textEditor; }
return new PythonConsoleHost(consoleTextEditor, dispatcher);
}
}
}

4
src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/RubyConsoleHost.cs

@ -14,7 +14,7 @@ using Microsoft.Scripting.Hosting.Shell; @@ -14,7 +14,7 @@ using Microsoft.Scripting.Hosting.Shell;
namespace ICSharpCode.RubyBinding
{
public class RubyConsoleHost : ConsoleHost, IDisposable
public class RubyConsoleHost : ConsoleHost, IScriptingConsoleHost
{
Thread thread;
IScriptingConsoleTextEditor textEditor;
@ -26,7 +26,7 @@ namespace ICSharpCode.RubyBinding @@ -26,7 +26,7 @@ namespace ICSharpCode.RubyBinding
rubyConsole = new RubyConsole(textEditor, dispatcher);
}
public RubyConsole RubyConsole {
public IScriptingConsole ScriptingConsole {
get { return rubyConsole; }
}

48
src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/RubyConsolePad.cs

@ -3,53 +3,15 @@ @@ -3,53 +3,15 @@
using System;
using ICSharpCode.Scripting;
using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Gui;
using AvalonEdit = ICSharpCode.AvalonEdit;
namespace ICSharpCode.RubyBinding
{
public class RubyConsolePad : AbstractPadContent, IScriptingConsolePad
{
ScriptingConsoleTextEditor consoleTextEditor;
AvalonEdit.TextEditor textEditor;
RubyConsoleHost host;
public RubyConsolePad()
public class RubyConsolePad : ScriptingConsolePad
{
protected override IScriptingConsoleHost CreateConsoleHost(IScriptingConsoleTextEditor consoleTextEditor,
IControlDispatcher dispatcher)
{
textEditor = CreateTextEditor();
ControlDispatcher dispatcher = new ControlDispatcher(textEditor);
consoleTextEditor = new ScriptingConsoleTextEditor(textEditor);
host = new RubyConsoleHost(consoleTextEditor, dispatcher);
host.Run();
}
AvalonEdit.TextEditor CreateTextEditor()
{
object textEditor;
EditorControlService.CreateEditor(out textEditor);
return (AvalonEdit.TextEditor)textEditor;
}
public IScriptingConsoleTextEditor ScriptingConsoleTextEditor {
get { return consoleTextEditor; }
}
public IScriptingConsole ScriptingConsole {
get { return host.RubyConsole; }
}
public override object Control {
get { return textEditor; }
}
public override void Dispose()
{
host.Dispose();
}
public override object InitiallyFocusedControl {
get { return textEditor; }
return new RubyConsoleHost(consoleTextEditor, dispatcher);
}
}
}

2
src/AddIns/BackendBindings/Scripting/Project/ICSharpCode.Scripting.csproj

@ -73,6 +73,7 @@ @@ -73,6 +73,7 @@
<Compile Include="Src\IMemberProvider.cs" />
<Compile Include="Src\IScriptingCodeDomSerializer.cs" />
<Compile Include="Src\IScriptingConsole.cs" />
<Compile Include="Src\IScriptingConsoleHost.cs" />
<Compile Include="Src\IScriptingConsolePad.cs" />
<Compile Include="Src\IScriptingConsoleTextEditor.cs" />
<Compile Include="Src\IScriptingDesignerGenerator.cs" />
@ -83,6 +84,7 @@ @@ -83,6 +84,7 @@
<Compile Include="Src\ScriptingConsoleCompletionData.cs" />
<Compile Include="Src\ScriptingConsoleCompletionDataProvider.cs" />
<Compile Include="Src\ScriptingConsoleOutputStream.cs" />
<Compile Include="Src\ScriptingConsolePad.cs" />
<Compile Include="Src\ScriptingConsoleTextEditor.cs" />
<Compile Include="Src\ScriptingConsoleTextEditorKeyEventArgs.cs" />
<Compile Include="Src\ScriptingDesignerGenerator.cs" />

17
src/AddIns/BackendBindings/Scripting/Project/Src/IScriptingConsoleHost.cs

@ -0,0 +1,17 @@ @@ -0,0 +1,17 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Matthew Ward" email="mrward@users.sourceforge.net"/>
// <version>$Revision$</version>
// </file>
using System;
namespace ICSharpCode.Scripting
{
public interface IScriptingConsoleHost : IDisposable
{
IScriptingConsole ScriptingConsole { get; }
void Run();
}
}

66
src/AddIns/BackendBindings/Scripting/Project/Src/ScriptingConsolePad.cs

@ -0,0 +1,66 @@ @@ -0,0 +1,66 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Gui;
using AvalonEdit = ICSharpCode.AvalonEdit;
namespace ICSharpCode.Scripting
{
public abstract class ScriptingConsolePad : AbstractPadContent, IScriptingConsolePad
{
ScriptingConsoleTextEditor consoleTextEditor;
AvalonEdit.TextEditor textEditor;
IScriptingConsoleHost host;
public ScriptingConsolePad()
{
textEditor = CreateTextEditor();
CreateConsoleHost();
host.Run();
}
AvalonEdit.TextEditor CreateTextEditor()
{
object textEditor;
EditorControlService.CreateEditor(out textEditor);
return (AvalonEdit.TextEditor)textEditor;
}
void CreateConsoleHost()
{
ControlDispatcher dispatcher = new ControlDispatcher(textEditor);
consoleTextEditor = new ScriptingConsoleTextEditor(textEditor);
host = CreateConsoleHost(consoleTextEditor, dispatcher);
}
protected virtual IScriptingConsoleHost CreateConsoleHost(
IScriptingConsoleTextEditor consoleTextEditor,
IControlDispatcher dispatcher)
{
return null;
}
public IScriptingConsoleTextEditor ScriptingConsoleTextEditor {
get { return consoleTextEditor; }
}
public IScriptingConsole ScriptingConsole {
get { return host.ScriptingConsole; }
}
public override object Control {
get { return textEditor; }
}
public override void Dispose()
{
host.Dispose();
}
public override object InitiallyFocusedControl {
get { return textEditor; }
}
}
}
Loading…
Cancel
Save