Browse Source

Move IronPython and IronRuby output stream class to common Scripting project.

pull/1/head
mrward 15 years ago
parent
commit
0f74012096
  1. 1
      src/AddIns/BackendBindings/Python/PythonBinding/Project/PythonBinding.csproj
  2. 4
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonConsoleHost.cs
  3. 69
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonOutputStream.cs
  4. 1
      src/AddIns/BackendBindings/Python/PythonBinding/Test/PythonBinding.Tests.csproj
  5. 6
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Utils/DerivedPythonConsoleHost.cs
  6. 1
      src/AddIns/BackendBindings/Ruby/RubyBinding/Project/RubyBinding.csproj
  7. 4
      src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/RubyConsoleHost.cs
  8. 66
      src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Console/RubyOutputStreamTestFixture.cs
  9. 1
      src/AddIns/BackendBindings/Ruby/RubyBinding/Test/RubyBinding.Tests.csproj
  10. 6
      src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Utils/DerivedRubyConsoleHost.cs
  11. 1
      src/AddIns/BackendBindings/Scripting/Project/ICSharpCode.Scripting.csproj
  12. 8
      src/AddIns/BackendBindings/Scripting/Project/Src/ScriptingConsoleOutputStream.cs
  13. 11
      src/AddIns/BackendBindings/Scripting/Test/Console/ScriptingConsoleOutputStreamTests.cs
  14. 1
      src/AddIns/BackendBindings/Scripting/Test/ICSharpCode.Scripting.Tests.csproj

1
src/AddIns/BackendBindings/Python/PythonBinding/Project/PythonBinding.csproj

@ -149,7 +149,6 @@
<Compile Include="Src\PythonLanguageProperties.cs" /> <Compile Include="Src\PythonLanguageProperties.cs" />
<Compile Include="Src\PythonImportModuleResolveResult.cs" /> <Compile Include="Src\PythonImportModuleResolveResult.cs" />
<Compile Include="Src\PythonOptionsPanel.cs" /> <Compile Include="Src\PythonOptionsPanel.cs" />
<Compile Include="Src\PythonOutputStream.cs" />
<Compile Include="Src\PythonParser.cs" /> <Compile Include="Src\PythonParser.cs" />
<Compile Include="Src\PythonProject.cs" /> <Compile Include="Src\PythonProject.cs" />
<Compile Include="Src\PythonPropertyValueAssignment.cs" /> <Compile Include="Src\PythonPropertyValueAssignment.cs" />

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

@ -71,12 +71,12 @@ namespace ICSharpCode.PythonBinding
/// </remarks> /// </remarks>
protected override IConsole CreateConsole(ScriptEngine engine, CommandLine commandLine, ConsoleOptions options) protected override IConsole CreateConsole(ScriptEngine engine, CommandLine commandLine, ConsoleOptions options)
{ {
SetOutput(new PythonOutputStream(textEditor)); SetOutput(new ScriptingConsoleOutputStream(textEditor));
pythonConsole.CommandLine = commandLine; pythonConsole.CommandLine = commandLine;
return pythonConsole; return pythonConsole;
} }
protected virtual void SetOutput(PythonOutputStream stream) protected virtual void SetOutput(ScriptingConsoleOutputStream stream)
{ {
Runtime.IO.SetOutput(stream, Encoding.UTF8); Runtime.IO.SetOutput(stream, Encoding.UTF8);
} }

69
src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonOutputStream.cs

@ -1,69 +0,0 @@
// 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 System.IO;
using System.Text;
using ICSharpCode.Scripting;
namespace ICSharpCode.PythonBinding
{
public class PythonOutputStream : Stream
{
IScriptingConsoleTextEditor textEditor;
public PythonOutputStream(IScriptingConsoleTextEditor textEditor)
{
this.textEditor = textEditor;
}
public override bool CanRead {
get { return false; }
}
public override bool CanSeek {
get { return false; }
}
public override bool CanWrite {
get { return true; }
}
public override long Length {
get { return 0; }
}
public override long Position {
get { return 0; }
set { }
}
public override void Flush()
{
}
public override long Seek(long offset, SeekOrigin origin)
{
return 0;
}
public override void SetLength(long value)
{
}
public override int Read(byte[] buffer, int offset, int count)
{
return 0;
}
/// <summary>
/// Assumes the bytes are UTF8 and writes them to the text editor.
/// </summary>
public override void Write(byte[] buffer, int offset, int count)
{
string text = UTF8Encoding.UTF8.GetString(buffer, offset, count);
textEditor.Write(text);
}
}
}

1
src/AddIns/BackendBindings/Python/PythonBinding/Test/PythonBinding.Tests.csproj

@ -116,7 +116,6 @@
<Compile Include="Console\PythonConsoleReadTestFixture.cs" /> <Compile Include="Console\PythonConsoleReadTestFixture.cs" />
<Compile Include="Console\PythonConsoleUnreadLinesTestFixture.cs" /> <Compile Include="Console\PythonConsoleUnreadLinesTestFixture.cs" />
<Compile Include="Console\PythonConsoleWriteTestFixture.cs" /> <Compile Include="Console\PythonConsoleWriteTestFixture.cs" />
<Compile Include="Console\PythonOutputStreamTestFixture.cs" />
<Compile Include="Console\TwoPythonConsoleLinesWaitingTestFixture.cs" /> <Compile Include="Console\TwoPythonConsoleLinesWaitingTestFixture.cs" />
<Compile Include="Converter\AddHandlerConversionTestFixture.cs" /> <Compile Include="Converter\AddHandlerConversionTestFixture.cs" />
<Compile Include="Converter\ArrayCastConversionTestFixture.cs" /> <Compile Include="Converter\ArrayCastConversionTestFixture.cs" />

6
src/AddIns/BackendBindings/Python/PythonBinding/Test/Utils/DerivedPythonConsoleHost.cs

@ -13,7 +13,7 @@ namespace PythonBinding.Tests.Console
{ {
public class DerivedPythonConsoleHost : PythonConsoleHost public class DerivedPythonConsoleHost : PythonConsoleHost
{ {
PythonOutputStream outputStream; ScriptingConsoleOutputStream outputStream;
public DerivedPythonConsoleHost(IScriptingConsoleTextEditor textEditor) : base(textEditor) public DerivedPythonConsoleHost(IScriptingConsoleTextEditor textEditor) : base(textEditor)
{ {
@ -42,11 +42,11 @@ namespace PythonBinding.Tests.Console
/// <summary> /// <summary>
/// Gets the output stream class passed to SetOutput method. /// Gets the output stream class passed to SetOutput method.
/// </summary> /// </summary>
public PythonOutputStream OutputStream { public ScriptingConsoleOutputStream OutputStream {
get { return outputStream; } get { return outputStream; }
} }
protected override void SetOutput(PythonOutputStream stream) protected override void SetOutput(ScriptingConsoleOutputStream stream)
{ {
outputStream = stream; outputStream = stream;
} }

1
src/AddIns/BackendBindings/Ruby/RubyBinding/Project/RubyBinding.csproj

@ -112,7 +112,6 @@
<Compile Include="Src\RubyProjectBinding.cs" /> <Compile Include="Src\RubyProjectBinding.cs" />
<Compile Include="Src\RubyLanguageProperties.cs" /> <Compile Include="Src\RubyLanguageProperties.cs" />
<Compile Include="Src\RubyOptionsPanel.cs" /> <Compile Include="Src\RubyOptionsPanel.cs" />
<Compile Include="Src\RubyOutputStream.cs" />
<Compile Include="Src\RubyParser.cs" /> <Compile Include="Src\RubyParser.cs" />
<Compile Include="Src\RubyProject.cs" /> <Compile Include="Src\RubyProject.cs" />
<Compile Include="Src\RubyPropertyValueAssignment.cs" /> <Compile Include="Src\RubyPropertyValueAssignment.cs" />

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

@ -55,7 +55,7 @@ namespace ICSharpCode.RubyBinding
Run(new string[0]); Run(new string[0]);
} }
protected virtual void SetOutput(RubyOutputStream stream) protected virtual void SetOutput(ScriptingConsoleOutputStream stream)
{ {
Runtime.IO.SetOutput(stream, Encoding.UTF8); Runtime.IO.SetOutput(stream, Encoding.UTF8);
} }
@ -87,7 +87,7 @@ namespace ICSharpCode.RubyBinding
/// </remarks> /// </remarks>
protected override IConsole CreateConsole(ScriptEngine engine, CommandLine commandLine, ConsoleOptions options) protected override IConsole CreateConsole(ScriptEngine engine, CommandLine commandLine, ConsoleOptions options)
{ {
SetOutput(new RubyOutputStream(textEditor)); SetOutput(new ScriptingConsoleOutputStream(textEditor));
rubyConsole.CommandLine = commandLine; rubyConsole.CommandLine = commandLine;
return rubyConsole; return rubyConsole;
} }

66
src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Console/RubyOutputStreamTestFixture.cs

@ -1,66 +0,0 @@
// 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 System.IO;
using System.Text;
using ICSharpCode.RubyBinding;
using ICSharpCode.Scripting.Tests.Utils;
using NUnit.Framework;
using RubyBinding.Tests.Utils;
namespace RubyBinding.Tests.Console
{
[TestFixture]
public class RubyOutputStreamTestFixture
{
RubyOutputStream stream;
MockConsoleTextEditor textEditor;
[TestFixtureSetUp]
public void SetUpFixture()
{
textEditor = new MockConsoleTextEditor();
stream = new RubyOutputStream(textEditor);
}
[Test]
public void CanReadIsFalse()
{
Assert.IsFalse(stream.CanRead);
}
[Test]
public void CanSeekIsFalse()
{
Assert.IsFalse(stream.CanSeek);
}
[Test]
public void CanWriteIsTrue()
{
Assert.IsTrue(stream.CanWrite);
}
[Test]
public void WriteAddsTextToTextEditor()
{
textEditor.Text = String.Empty;
byte[] bytes = UTF8Encoding.UTF8.GetBytes("test");
stream.Write(bytes, 0, bytes.Length);
Assert.AreEqual("test", textEditor.Text);
}
[Test]
public void OffsetAndLengthUsedInWriteMethod()
{
textEditor.Text = String.Empty;
byte[] bytes = UTF8Encoding.UTF8.GetBytes("0output1");
stream.Write(bytes, 1, bytes.Length - 2);
Assert.AreEqual("output", textEditor.Text);
}
}
}

1
src/AddIns/BackendBindings/Ruby/RubyBinding/Test/RubyBinding.Tests.csproj

@ -86,7 +86,6 @@
<Compile Include="Console\RubyConsoleTestsBase.cs" /> <Compile Include="Console\RubyConsoleTestsBase.cs" />
<Compile Include="Console\RubyConsoleUnreadLinesTestFixture.cs" /> <Compile Include="Console\RubyConsoleUnreadLinesTestFixture.cs" />
<Compile Include="Console\RubyConsoleWriteTestFixture.cs" /> <Compile Include="Console\RubyConsoleWriteTestFixture.cs" />
<Compile Include="Console\RubyOutputStreamTestFixture.cs" />
<Compile Include="Console\TwoRubyConsoleLinesWaitingTestFixture.cs" /> <Compile Include="Console\TwoRubyConsoleLinesWaitingTestFixture.cs" />
<Compile Include="Converter\AddHandlerConversionTestFixture.cs" /> <Compile Include="Converter\AddHandlerConversionTestFixture.cs" />
<Compile Include="Converter\ArrayCastConversionTestFixture.cs" /> <Compile Include="Converter\ArrayCastConversionTestFixture.cs" />

6
src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Utils/DerivedRubyConsoleHost.cs

@ -13,7 +13,7 @@ namespace RubyBinding.Tests.Console
{ {
public class DerivedRubyConsoleHost : RubyConsoleHost public class DerivedRubyConsoleHost : RubyConsoleHost
{ {
RubyOutputStream outputStream; ScriptingConsoleOutputStream outputStream;
public DerivedRubyConsoleHost(IScriptingConsoleTextEditor textEditor) : base(textEditor) public DerivedRubyConsoleHost(IScriptingConsoleTextEditor textEditor) : base(textEditor)
{ {
@ -47,11 +47,11 @@ namespace RubyBinding.Tests.Console
/// <summary> /// <summary>
/// Gets the output stream class passed to SetOutput method. /// Gets the output stream class passed to SetOutput method.
/// </summary> /// </summary>
public RubyOutputStream OutputStream { public ScriptingConsoleOutputStream OutputStream {
get { return outputStream; } get { return outputStream; }
} }
protected override void SetOutput(RubyOutputStream stream) protected override void SetOutput(ScriptingConsoleOutputStream stream)
{ {
outputStream = stream; outputStream = stream;
} }

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

@ -78,6 +78,7 @@
<Compile Include="Src\ScriptingCodeBuilder.cs" /> <Compile Include="Src\ScriptingCodeBuilder.cs" />
<Compile Include="Src\ScriptingConsoleCompletionData.cs" /> <Compile Include="Src\ScriptingConsoleCompletionData.cs" />
<Compile Include="Src\ScriptingConsoleCompletionDataProvider.cs" /> <Compile Include="Src\ScriptingConsoleCompletionDataProvider.cs" />
<Compile Include="Src\ScriptingConsoleOutputStream.cs" />
<Compile Include="Src\ScriptingConsoleTextEditor.cs" /> <Compile Include="Src\ScriptingConsoleTextEditor.cs" />
<Compile Include="Src\ScriptingConsoleTextEditorKeyEventArgs.cs" /> <Compile Include="Src\ScriptingConsoleTextEditorKeyEventArgs.cs" />
<Compile Include="Src\ScriptingFileService.cs" /> <Compile Include="Src\ScriptingFileService.cs" />

8
src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/RubyOutputStream.cs → src/AddIns/BackendBindings/Scripting/Project/Src/ScriptingConsoleOutputStream.cs

@ -5,15 +5,13 @@ using System;
using System.IO; using System.IO;
using System.Text; using System.Text;
using ICSharpCode.Scripting; namespace ICSharpCode.Scripting
namespace ICSharpCode.RubyBinding
{ {
public class RubyOutputStream : Stream public class ScriptingConsoleOutputStream : Stream
{ {
IScriptingConsoleTextEditor textEditor; IScriptingConsoleTextEditor textEditor;
public RubyOutputStream(IScriptingConsoleTextEditor textEditor) public ScriptingConsoleOutputStream(IScriptingConsoleTextEditor textEditor)
{ {
this.textEditor = textEditor; this.textEditor = textEditor;
} }

11
src/AddIns/BackendBindings/Python/PythonBinding/Test/Console/PythonOutputStreamTestFixture.cs → src/AddIns/BackendBindings/Scripting/Test/Console/ScriptingConsoleOutputStreamTests.cs

@ -5,24 +5,23 @@ using System;
using System.IO; using System.IO;
using System.Text; using System.Text;
using ICSharpCode.PythonBinding; using ICSharpCode.Scripting;
using ICSharpCode.Scripting.Tests.Utils; using ICSharpCode.Scripting.Tests.Utils;
using NUnit.Framework; using NUnit.Framework;
using PythonBinding.Tests.Utils;
namespace PythonBinding.Tests.Console namespace ICSharpCode.Scripting.Tests.Console
{ {
[TestFixture] [TestFixture]
public class PythonOutputStreamTestFixture public class ScriptingConsoleOutputStreamTestFixture
{ {
PythonOutputStream stream; ScriptingConsoleOutputStream stream;
MockConsoleTextEditor textEditor; MockConsoleTextEditor textEditor;
[TestFixtureSetUp] [TestFixtureSetUp]
public void SetUpFixture() public void SetUpFixture()
{ {
textEditor = new MockConsoleTextEditor(); textEditor = new MockConsoleTextEditor();
stream = new PythonOutputStream(textEditor); stream = new ScriptingConsoleOutputStream(textEditor);
} }
[Test] [Test]

1
src/AddIns/BackendBindings/Scripting/Test/ICSharpCode.Scripting.Tests.csproj

@ -73,6 +73,7 @@
<Compile Include="Console\EmptyStringCodeCompletionTests.cs" /> <Compile Include="Console\EmptyStringCodeCompletionTests.cs" />
<Compile Include="Console\InsertConsoleCompletionDataTestFixture.cs" /> <Compile Include="Console\InsertConsoleCompletionDataTestFixture.cs" />
<Compile Include="Console\OneItemCommandLineHistoryTestFixture.cs" /> <Compile Include="Console\OneItemCommandLineHistoryTestFixture.cs" />
<Compile Include="Console\ScriptingConsoleOutputStreamTests.cs" />
<Compile Include="Console\ScriptingConsoleTextEditorTests.cs" /> <Compile Include="Console\ScriptingConsoleTextEditorTests.cs" />
<Compile Include="Console\ThreadSafeScriptingConsoleTextEditorTests.cs" /> <Compile Include="Console\ThreadSafeScriptingConsoleTextEditorTests.cs" />
<Compile Include="Designer\NameCreationServiceTests.cs" /> <Compile Include="Designer\NameCreationServiceTests.cs" />

Loading…
Cancel
Save