Browse Source

Rename IConsoleTextEditor to IScriptingConsoleTextEditor and move it to the Scripting Tests project.

pull/1/head
mrward 15 years ago
parent
commit
cbefb3dc43
  1. 3
      src/AddIns/BackendBindings/Python/PythonBinding/Project/PythonBinding.csproj
  2. 3
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/IPythonConsolePad.cs
  3. 6
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonConsole.cs
  4. 5
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonConsoleHost.cs
  5. 3
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonConsolePad.cs
  6. 4
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonConsoleTextEditor.cs
  7. 6
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonOutputStream.cs
  8. 10
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/ThreadSafePythonConsoleTextEditor.cs
  9. 9
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Console/BuiltinCodeCompletionTestFixture.cs
  10. 10
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Console/PythonConsoleCodeCompletionTestFixture.cs
  11. 4
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Console/PythonConsoleCurrentLineTestFixture.cs
  12. 4
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Console/PythonConsoleHostTests.cs
  13. 1
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Console/PythonConsoleReadTestFixture.cs
  14. 1
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Console/PythonConsoleTestsBase.cs
  15. 8
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Console/PythonConsoleTextEditorTests.cs
  16. 1
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Console/PythonOutputStreamTestFixture.cs
  17. 8
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Console/ThreadSafePythonConsoleTextEditorTests.cs
  18. 6
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Console/TwoPythonConsoleLinesWaitingTestFixture.cs
  19. 4
      src/AddIns/BackendBindings/Python/PythonBinding/Test/PythonBinding.Tests.csproj
  20. 4
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Utils/DerivedPythonConsoleHost.cs
  21. 205
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Utils/MockConsoleTextEditor.cs
  22. 4
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Utils/MockPythonConsolePad.cs
  23. 2
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Utils/TestablePythonConsole.cs
  24. 3
      src/AddIns/BackendBindings/Ruby/RubyBinding/Project/RubyBinding.csproj
  25. 84
      src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/IConsoleTextEditor.cs
  26. 3
      src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/IRubyConsolePad.cs
  27. 6
      src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/RubyConsole.cs
  28. 50
      src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/RubyConsoleCompletionData.cs
  29. 65
      src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/RubyConsoleCompletionDataProvider.cs
  30. 6
      src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/RubyConsoleHost.cs
  31. 5
      src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/RubyConsolePad.cs
  32. 4
      src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/RubyConsoleTextEditor.cs
  33. 6
      src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/RubyOutputStream.cs
  34. 10
      src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/ThreadSafeRubyConsoleTextEditor.cs
  35. 66
      src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Console/CodeCompletionTests.cs
  36. 47
      src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Console/InsertConsoleCompletionDataTestFixture.cs
  37. 10
      src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Console/RubyConsoleCodeCompletionTestFixture.cs
  38. 4
      src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Console/RubyConsoleCurrentLineTestFixture.cs
  39. 4
      src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Console/RubyConsoleHostTests.cs
  40. 1
      src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Console/RubyConsoleReadTestFixture.cs
  41. 1
      src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Console/RubyConsoleTestsBase.cs
  42. 8
      src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Console/RubyConsoleTextEditorTests.cs
  43. 1
      src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Console/RubyOutputStreamTestFixture.cs
  44. 1
      src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Console/ThreadSafeRubyConsoleTextEditorTests.cs
  45. 6
      src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Console/TwoRubyConsoleLinesWaitingTestFixture.cs
  46. 4
      src/AddIns/BackendBindings/Ruby/RubyBinding/Test/RubyBinding.Tests.csproj
  47. 4
      src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Utils/DerivedRubyConsoleHost.cs
  48. 4
      src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Utils/MockRubyConsolePad.cs
  49. 2
      src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Utils/TestableRubyConsole.cs
  50. 351
      src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Utils/Tests/MockConsoleTextEditorTestFixture.cs
  51. 27
      src/AddIns/BackendBindings/Scripting/Project/ICSharpCode.Scripting.csproj
  52. 9
      src/AddIns/BackendBindings/Scripting/Project/Src/IScriptingConsoleTextEditor.cs
  53. 6
      src/AddIns/BackendBindings/Scripting/Project/Src/ScriptingConsoleCompletionData.cs
  54. 15
      src/AddIns/BackendBindings/Scripting/Project/Src/ScriptingConsoleCompletionDataProvider.cs
  55. 11
      src/AddIns/BackendBindings/Scripting/Test/Console/EmptyStringCodeCompletionTests.cs
  56. 8
      src/AddIns/BackendBindings/Scripting/Test/Console/InsertConsoleCompletionDataTestFixture.cs
  57. 7
      src/AddIns/BackendBindings/Scripting/Test/ICSharpCode.Scripting.Tests.csproj
  58. 10
      src/AddIns/BackendBindings/Scripting/Test/Utils/MockConsoleTextEditor.cs
  59. 6
      src/AddIns/BackendBindings/Scripting/Test/Utils/Tests/MockConsoleTextEditorTests.cs
  60. 14
      src/AddIns/BackendBindings/Scripting/Test/app.config

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

@ -96,7 +96,6 @@ @@ -96,7 +96,6 @@
<Compile Include="Src\MemberName.cs" />
<Compile Include="Src\PythonBuiltInModuleMemberName.cs" />
<Compile Include="Src\PythonClassResolver.cs" />
<Compile Include="Src\PythonConsoleCompletionData.cs" />
<Compile Include="Src\PythonConsoleApplication.cs" />
<Compile Include="Src\PythonConsoleTextEditorKeyEventArgs.cs" />
<Compile Include="Src\PythonDotNetMethodResolver.cs" />
@ -129,7 +128,6 @@ @@ -129,7 +128,6 @@
<Compile Include="Src\PythonWorkbench.cs" />
<Compile Include="Src\SendLineToPythonConsoleCommand.cs" />
<Compile Include="Src\SysModuleCompletionItems.cs" />
<Compile Include="Src\IConsoleTextEditor.cs" />
<Compile Include="Src\NRefactoryToPythonConverter.cs" />
<Compile Include="Src\PythonAstWalker.cs" />
<Compile Include="Src\PythonCodeCompletionBinding.cs" />
@ -139,7 +137,6 @@ @@ -139,7 +137,6 @@
<Compile Include="Src\PythonCompilerError.cs" />
<Compile Include="Src\PythonCompilerSink.cs" />
<Compile Include="Src\PythonConsole.cs" />
<Compile Include="Src\PythonConsoleCompletionDataProvider.cs" />
<Compile Include="Src\PythonConsoleHost.cs" />
<Compile Include="Src\PythonConsolePad.cs" />
<Compile Include="Src\PythonControlFieldExpression.cs">

3
src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/IPythonConsolePad.cs

@ -6,13 +6,14 @@ @@ -6,13 +6,14 @@
// </file>
using System;
using ICSharpCode.Scripting;
namespace ICSharpCode.PythonBinding
{
public interface IPythonConsolePad
{
void BringToFront();
IConsoleTextEditor ConsoleTextEditor { get; }
IScriptingConsoleTextEditor ConsoleTextEditor { get; }
IPythonConsole PythonConsole { get; }
}
}

6
src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonConsole.cs

@ -21,7 +21,7 @@ namespace ICSharpCode.PythonBinding @@ -21,7 +21,7 @@ namespace ICSharpCode.PythonBinding
{
public class PythonConsole : IConsole, IDisposable, IMemberProvider, IPythonConsole
{
IConsoleTextEditor textEditor;
IScriptingConsoleTextEditor textEditor;
int lineReceivedEventIndex = 0; // The index into the waitHandles array where the lineReceivedEvent is stored.
ManualResetEvent lineReceivedEvent = new ManualResetEvent(false);
ManualResetEvent disposedEvent = new ManualResetEvent(false);
@ -33,7 +33,7 @@ namespace ICSharpCode.PythonBinding @@ -33,7 +33,7 @@ namespace ICSharpCode.PythonBinding
protected List<string> unreadLines = new List<string>();
public PythonConsole(IConsoleTextEditor textEditor)
public PythonConsole(IScriptingConsoleTextEditor textEditor)
{
waitHandles = new WaitHandle[] {lineReceivedEvent, disposedEvent};
@ -282,7 +282,7 @@ namespace ICSharpCode.PythonBinding @@ -282,7 +282,7 @@ namespace ICSharpCode.PythonBinding
void ShowCompletionWindow()
{
PythonConsoleCompletionDataProvider completionProvider = new PythonConsoleCompletionDataProvider(this);
ScriptingConsoleCompletionDataProvider completionProvider = new ScriptingConsoleCompletionDataProvider(this);
textEditor.ShowCompletionWindow(completionProvider);
}

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

@ -9,6 +9,7 @@ using System; @@ -9,6 +9,7 @@ using System;
using System.Text;
using System.Threading;
using ICSharpCode.Scripting;
using IronPython.Hosting;
using IronPython.Runtime;
using Microsoft.Scripting.Hosting;
@ -19,10 +20,10 @@ namespace ICSharpCode.PythonBinding @@ -19,10 +20,10 @@ namespace ICSharpCode.PythonBinding
public class PythonConsoleHost : ConsoleHost, IDisposable
{
Thread thread;
IConsoleTextEditor textEditor;
IScriptingConsoleTextEditor textEditor;
PythonConsole pythonConsole;
public PythonConsoleHost(IConsoleTextEditor textEditor)
public PythonConsoleHost(IScriptingConsoleTextEditor textEditor)
{
this.textEditor = textEditor;
pythonConsole = new PythonConsole(textEditor);

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

@ -6,6 +6,7 @@ @@ -6,6 +6,7 @@
// </file>
using System;
using ICSharpCode.Scripting;
using ICSharpCode.SharpDevelop.Gui;
using AvalonEdit = ICSharpCode.AvalonEdit;
@ -25,7 +26,7 @@ namespace ICSharpCode.PythonBinding @@ -25,7 +26,7 @@ namespace ICSharpCode.PythonBinding
host.Run();
}
public IConsoleTextEditor ConsoleTextEditor {
public IScriptingConsoleTextEditor ConsoleTextEditor {
get { return consoleTextEditor; }
}

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

@ -18,7 +18,7 @@ using ICSharpCode.SharpDevelop.Gui; @@ -18,7 +18,7 @@ using ICSharpCode.SharpDevelop.Gui;
namespace ICSharpCode.PythonBinding
{
public class PythonConsoleTextEditor : IConsoleTextEditor
public class PythonConsoleTextEditor : IScriptingConsoleTextEditor
{
TextEditor textEditor;
Color customLineColour = Color.LightGray;
@ -115,7 +115,7 @@ namespace ICSharpCode.PythonBinding @@ -115,7 +115,7 @@ namespace ICSharpCode.PythonBinding
readOnlyRegion.EndOffset = textEditor.Document.TextLength;
}
public void ShowCompletionWindow(PythonConsoleCompletionDataProvider completionDataProvider)
public void ShowCompletionWindow(ScriptingConsoleCompletionDataProvider completionDataProvider)
{
ICompletionData[] items = completionDataProvider.GenerateCompletionData(this);
if (items.Length > 0) {

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

@ -9,13 +9,15 @@ using System; @@ -9,13 +9,15 @@ using System;
using System.IO;
using System.Text;
using ICSharpCode.Scripting;
namespace ICSharpCode.PythonBinding
{
public class PythonOutputStream : Stream
{
IConsoleTextEditor textEditor;
IScriptingConsoleTextEditor textEditor;
public PythonOutputStream(IConsoleTextEditor textEditor)
public PythonOutputStream(IScriptingConsoleTextEditor textEditor)
{
this.textEditor = textEditor;
}

10
src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/ThreadSafePythonConsoleTextEditor.cs

@ -11,11 +11,11 @@ using ICSharpCode.Scripting; @@ -11,11 +11,11 @@ using ICSharpCode.Scripting;
namespace ICSharpCode.PythonBinding
{
public class ThreadSafePythonConsoleTextEditor : IConsoleTextEditor
public class ThreadSafePythonConsoleTextEditor : IScriptingConsoleTextEditor
{
delegate string GetLineInvoker(int index);
IConsoleTextEditor consoleTextEditor;
IScriptingConsoleTextEditor consoleTextEditor;
IControlDispatcher dispatcher;
public ThreadSafePythonConsoleTextEditor(TextEditor textEditor)
@ -23,7 +23,7 @@ namespace ICSharpCode.PythonBinding @@ -23,7 +23,7 @@ namespace ICSharpCode.PythonBinding
{
}
public ThreadSafePythonConsoleTextEditor(IConsoleTextEditor consoleTextEditor, IControlDispatcher dispatcher)
public ThreadSafePythonConsoleTextEditor(IScriptingConsoleTextEditor consoleTextEditor, IControlDispatcher dispatcher)
{
this.consoleTextEditor = consoleTextEditor;
this.dispatcher = dispatcher;
@ -95,12 +95,12 @@ namespace ICSharpCode.PythonBinding @@ -95,12 +95,12 @@ namespace ICSharpCode.PythonBinding
}
}
public void ShowCompletionWindow(PythonConsoleCompletionDataProvider completionDataProvider)
public void ShowCompletionWindow(ScriptingConsoleCompletionDataProvider completionDataProvider)
{
if (dispatcher.CheckAccess()) {
consoleTextEditor.ShowCompletionWindow(completionDataProvider);
} else {
Action<PythonConsoleCompletionDataProvider> action = ShowCompletionWindow;
Action<ScriptingConsoleCompletionDataProvider> action = ShowCompletionWindow;
dispatcher.Invoke(action, completionDataProvider);
}
}

9
src/AddIns/BackendBindings/Python/PythonBinding/Test/Console/BuiltinCodeCompletionTestFixture.cs

@ -10,6 +10,7 @@ using System.Collections.Generic; @@ -10,6 +10,7 @@ using System.Collections.Generic;
using ICSharpCode.AvalonEdit;
using ICSharpCode.AvalonEdit.CodeCompletion;
using ICSharpCode.PythonBinding;
using ICSharpCode.Scripting;
using ICSharpCode.Scripting.Tests.Console;
using Microsoft.Scripting.Hosting;
using NUnit.Framework;
@ -24,7 +25,7 @@ namespace PythonBinding.Tests.Console @@ -24,7 +25,7 @@ namespace PythonBinding.Tests.Console
{
ICompletionData[] completionItems;
ICompletionData[] expectedCompletionItems;
PythonConsoleCompletionDataProvider provider;
ScriptingConsoleCompletionDataProvider provider;
MockMemberProvider memberProvider;
[TestFixtureSetUp]
@ -38,7 +39,7 @@ namespace PythonBinding.Tests.Console @@ -38,7 +39,7 @@ namespace PythonBinding.Tests.Console
memberProvider.SetMemberNames(new string[] {"a", "b", "c"});
expectedCompletionItems = CreateCompletionItems(memberProvider.GetMemberNames("__builtins__"));
provider = new PythonConsoleCompletionDataProvider(memberProvider);
provider = new ScriptingConsoleCompletionDataProvider(memberProvider);
completionItems = provider.GenerateCompletionData(textEditor);
}
@ -70,9 +71,9 @@ namespace PythonBinding.Tests.Console @@ -70,9 +71,9 @@ namespace PythonBinding.Tests.Console
ICompletionData[] CreateCompletionItems(IList<string> memberNames)
{
List<PythonConsoleCompletionData> items = new List<PythonConsoleCompletionData>();
List<ScriptingConsoleCompletionData> items = new List<ScriptingConsoleCompletionData>();
foreach (string memberName in memberNames) {
items.Add(new PythonConsoleCompletionData(memberName));
items.Add(new ScriptingConsoleCompletionData(memberName));
}
return items.ToArray();
}

10
src/AddIns/BackendBindings/Python/PythonBinding/Test/Console/PythonConsoleCodeCompletionTestFixture.cs

@ -7,10 +7,12 @@ @@ -7,10 +7,12 @@
using System;
using System.Collections.Generic;
using System.Windows.Input;
using System.Threading;
using Microsoft.Scripting.Hosting.Shell;
using System.Windows.Input;
using ICSharpCode.PythonBinding;
using ICSharpCode.Scripting;
using Microsoft.Scripting.Hosting.Shell;
using NUnit.Framework;
using PythonBinding.Tests.Utils;
@ -49,9 +51,9 @@ namespace PythonBinding.Tests.Console @@ -49,9 +51,9 @@ namespace PythonBinding.Tests.Console
}
[Test]
public void PythonConsoleCompletionDataProviderPassedToShowCompletionWindowMethod()
public void ScriptingConsoleCompletionDataProviderPassedToShowCompletionWindowMethod()
{
Assert.IsInstanceOf(typeof(PythonConsoleCompletionDataProvider), MockConsoleTextEditor.CompletionProviderPassedToShowCompletionWindow);
Assert.IsInstanceOf(typeof(ScriptingConsoleCompletionDataProvider), MockConsoleTextEditor.CompletionProviderPassedToShowCompletionWindow);
}
}
}

4
src/AddIns/BackendBindings/Python/PythonBinding/Test/Console/PythonConsoleCurrentLineTestFixture.cs

@ -7,11 +7,11 @@ @@ -7,11 +7,11 @@
using System;
using System.Windows.Input;
using ICSharpCode.PythonBinding;
using ICSharpCode.Scripting.Tests.Utils;
using Microsoft.Scripting;
using Microsoft.Scripting.Hosting;
using Microsoft.Scripting.Hosting.Shell;
using ICSharpCode.PythonBinding;
using NUnit.Framework;
using PythonBinding.Tests.Utils;

4
src/AddIns/BackendBindings/Python/PythonBinding/Test/Console/PythonConsoleHostTests.cs

@ -6,15 +6,15 @@ @@ -6,15 +6,15 @@
// </file>
using System;
using ICSharpCode.AvalonEdit;
using ICSharpCode.PythonBinding;
using ICSharpCode.Scripting.Tests.Utils;
using IronPython.Hosting;
using IronPython.Runtime;
using NUnit.Framework;
using Microsoft.Scripting;
using Microsoft.Scripting.Hosting;
using Microsoft.Scripting.Hosting.Shell;
using NUnit.Framework;
using PythonBinding.Tests.Utils;
namespace PythonBinding.Tests.Console

1
src/AddIns/BackendBindings/Python/PythonBinding/Test/Console/PythonConsoleReadTestFixture.cs

@ -10,6 +10,7 @@ using System.Threading; @@ -10,6 +10,7 @@ using System.Threading;
using System.Windows.Input;
using ICSharpCode.PythonBinding;
using ICSharpCode.Scripting.Tests.Utils;
using NUnit.Framework;
using PythonBinding.Tests.Utils;

1
src/AddIns/BackendBindings/Python/PythonBinding/Test/Console/PythonConsoleTestsBase.cs

@ -7,6 +7,7 @@ @@ -7,6 +7,7 @@
using System;
using ICSharpCode.PythonBinding;
using ICSharpCode.Scripting.Tests.Utils;
using PythonBinding.Tests.Utils;
namespace PythonBinding.Tests.Console

8
src/AddIns/BackendBindings/Python/PythonBinding/Test/Console/PythonConsoleTextEditorTests.cs

@ -9,9 +9,11 @@ using System; @@ -9,9 +9,11 @@ using System;
using System.Collections.Generic;
using System.Threading;
using System.Windows.Input;
using ICSharpCode.AvalonEdit;
using ICSharpCode.AvalonEdit.Editing;
using ICSharpCode.PythonBinding;
using ICSharpCode.Scripting;
using NUnit.Framework;
using PythonBinding.Tests.Utils;
@ -31,9 +33,9 @@ namespace PythonBinding.Tests.Console @@ -31,9 +33,9 @@ namespace PythonBinding.Tests.Console
}
[Test]
public void InterfaceImplemented_NewInstance_ImplementsIConsoleTextEditorInterface()
public void InterfaceImplemented_NewInstance_ImplementsIScriptingConsoleTextEditorInterface()
{
Assert.IsNotNull(consoleTextEditor as IConsoleTextEditor);
Assert.IsNotNull(consoleTextEditor as IScriptingConsoleTextEditor);
}
[Test]
@ -101,7 +103,7 @@ namespace PythonBinding.Tests.Console @@ -101,7 +103,7 @@ namespace PythonBinding.Tests.Console
AssertSelectionsAreEqual(expectedSelection, consoleTextEditor);
}
void AssertSelectionsAreEqual(SimpleSelection expectedSelection, IConsoleTextEditor consoleTextEditor)
void AssertSelectionsAreEqual(SimpleSelection expectedSelection, IScriptingConsoleTextEditor consoleTextEditor)
{
int selectionLength = consoleTextEditor.SelectionStart + consoleTextEditor.SelectionLength;
SimpleSelection actualSelection = new SimpleSelection(consoleTextEditor.SelectionStart, selectionLength);

1
src/AddIns/BackendBindings/Python/PythonBinding/Test/Console/PythonOutputStreamTestFixture.cs

@ -10,6 +10,7 @@ using System.IO; @@ -10,6 +10,7 @@ using System.IO;
using System.Text;
using ICSharpCode.PythonBinding;
using ICSharpCode.Scripting.Tests.Utils;
using NUnit.Framework;
using PythonBinding.Tests.Utils;

8
src/AddIns/BackendBindings/Python/PythonBinding/Test/Console/ThreadSafePythonConsoleTextEditorTests.cs

@ -166,10 +166,10 @@ namespace PythonBinding.Tests.Console @@ -166,10 +166,10 @@ namespace PythonBinding.Tests.Console
[Test]
public void ShowCompletionWindow_WrappedConsoleTextEditor_CallsWrappedConsoleTextEditorMethod()
{
PythonConsoleCompletionDataProvider expectedProvider = new PythonConsoleCompletionDataProvider(null);
ScriptingConsoleCompletionDataProvider expectedProvider = new ScriptingConsoleCompletionDataProvider(null);
threadSafeConsoleTextEditor.ShowCompletionWindow(expectedProvider);
PythonConsoleCompletionDataProvider provider = fakeConsoleTextEditor.CompletionProviderPassedToShowCompletionWindow;
ScriptingConsoleCompletionDataProvider provider = fakeConsoleTextEditor.CompletionProviderPassedToShowCompletionWindow;
Assert.AreEqual(expectedProvider, provider);
}
@ -311,7 +311,7 @@ namespace PythonBinding.Tests.Console @@ -311,7 +311,7 @@ namespace PythonBinding.Tests.Console
dispatcher.CheckAccessReturnValue = false;
dispatcher.MethodInvoked = null;
PythonConsoleCompletionDataProvider provider = new PythonConsoleCompletionDataProvider(null);
ScriptingConsoleCompletionDataProvider provider = new ScriptingConsoleCompletionDataProvider(null);
threadSafeConsoleTextEditor.ShowCompletionWindow(provider);
Assert.IsNotNull(dispatcher.MethodInvoked);
}
@ -322,7 +322,7 @@ namespace PythonBinding.Tests.Console @@ -322,7 +322,7 @@ namespace PythonBinding.Tests.Console
dispatcher.CheckAccessReturnValue = false;
dispatcher.MethodInvoked = null;
PythonConsoleCompletionDataProvider provider = new PythonConsoleCompletionDataProvider(null);
ScriptingConsoleCompletionDataProvider provider = new ScriptingConsoleCompletionDataProvider(null);
threadSafeConsoleTextEditor.ShowCompletionWindow(provider);
object[] expectedArgs = new object[] { provider };

6
src/AddIns/BackendBindings/Python/PythonBinding/Test/Console/TwoPythonConsoleLinesWaitingTestFixture.cs

@ -7,16 +7,16 @@ @@ -7,16 +7,16 @@
using System;
using System.Threading;
using Input = System.Windows.Input;
using ICSharpCode.PythonBinding;
using ICSharpCode.Scripting.Tests.Utils;
using IronPython.Hosting;
using IronPython.Runtime;
using NUnit.Framework;
using Microsoft.Scripting;
using Microsoft.Scripting.Hosting;
using Microsoft.Scripting.Hosting.Shell;
using NUnit.Framework;
using PythonBinding.Tests.Utils;
using Input = System.Windows.Input;
namespace PythonBinding.Tests.Console
{

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

@ -105,10 +105,8 @@ @@ -105,10 +105,8 @@
<Compile Include="Console\PythonConsoleSendLineTests.cs" />
<Compile Include="Console\PythonConsoleTestsBase.cs" />
<Compile Include="Console\ThreadSafePythonConsoleTextEditorTests.cs" />
<Compile Include="Console\InsertConsoleCompletionDataTestFixture.cs" />
<Compile Include="Console\KeysPressedWhenCompletionWindowOpenTestFixture.cs" />
<Compile Include="Console\DisposedPythonConsoleTestFixture.cs" />
<Compile Include="Console\CodeCompletionTests.cs" />
<Compile Include="Console\PythonConsoleCommandLineHistoryTestFixture.cs" />
<Compile Include="Console\PythonConsoleHomeKeyTestFixture.cs" />
<Compile Include="Console\PythonConsoleCodeCompletionTestFixture.cs" />
@ -440,7 +438,6 @@ @@ -440,7 +438,6 @@
<Compile Include="Utils\DerivedPythonDesignerGenerator.cs" />
<Compile Include="Utils\DerivedPythonDesignerLoader.cs" />
<Compile Include="Utils\DerivedPythonFormsDesignerDisplayBinding.cs" />
<Compile Include="Utils\MockConsoleTextEditor.cs" />
<Compile Include="Utils\MockDesignerGenerator.cs" />
<Compile Include="Utils\MockPythonConsole.cs" />
<Compile Include="Utils\MockPythonConsolePad.cs" />
@ -457,7 +454,6 @@ @@ -457,7 +454,6 @@
<Compile Include="Utils\PythonBindingAddInFile.cs" />
<Compile Include="Utils\PythonCompletionItemsHelper.cs" />
<Compile Include="Utils\PythonParserHelper.cs" />
<Compile Include="Utils\Tests\MockConsoleTextEditorTestFixture.cs" />
<Compile Include="Utils\Tests\MockPythonFileServiceTestFixture.cs" />
<Compile Include="Utils\Tests\PythonCompletionItemsHelperTests.cs" />
<Compile Include="Utils\Tests\PythonParserHelperTests.cs" />

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

@ -7,8 +7,8 @@ @@ -7,8 +7,8 @@
using System;
using System.IO;
using ICSharpCode.PythonBinding;
using ICSharpCode.Scripting;
using Microsoft.Scripting;
using Microsoft.Scripting.Hosting;
using Microsoft.Scripting.Hosting.Shell;
@ -19,7 +19,7 @@ namespace PythonBinding.Tests.Console @@ -19,7 +19,7 @@ namespace PythonBinding.Tests.Console
{
PythonOutputStream outputStream;
public DerivedPythonConsoleHost(IConsoleTextEditor textEditor) : base(textEditor)
public DerivedPythonConsoleHost(IScriptingConsoleTextEditor textEditor) : base(textEditor)
{
}

205
src/AddIns/BackendBindings/Python/PythonBinding/Test/Utils/MockConsoleTextEditor.cs

@ -1,205 +0,0 @@ @@ -1,205 +0,0 @@
// <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;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows.Input;
using ICSharpCode.NRefactory;
using ICSharpCode.PythonBinding;
using ICSharpCode.Scripting;
using ICSharpCode.Scripting.Tests.Utils;
namespace PythonBinding.Tests.Utils
{
public class MockConsoleTextEditor : IConsoleTextEditor
{
public bool IsDisposed;
public bool IsWriteCalled;
public bool IsShowCompletionWindowCalled;
public bool IsMakeCurrentContentReadOnlyCalled;
public PythonConsoleCompletionDataProvider CompletionProviderPassedToShowCompletionWindow;
public string TextPassedToWrite;
public string TextPassedToReplace;
public int LengthPassedToReplace = -1;
public int IndexPassedToReplace = -1;
public Location CursorLocationWhenWriteTextCalled;
public bool IsColumnChangedBeforeTextWritten;
public StringBuilder PreviousLines = new StringBuilder();
public StringBuilder LineBuilder = new StringBuilder();
public event ConsoleTextEditorKeyEventHandler PreviewKeyDown;
public MockConsoleTextEditor()
{
TotalLines = 1;
}
public void Dispose()
{
IsDisposed = true;
}
public void Write(string text)
{
TextPassedToWrite = text;
CursorLocationWhenWriteTextCalled = new Location(Column, Line);
IsWriteCalled = true;
LineBuilder.Append(text);
Column += text.Length;
}
public string Text {
get { return PreviousLines.ToString() + LineBuilder.ToString(); }
set {
PreviousLines = new StringBuilder();
LineBuilder = new StringBuilder();
TotalLines = 1;
foreach (char ch in value) {
LineBuilder.Append(ch);
if (ch == '\n') {
TotalLines++;
PreviousLines.Append(LineBuilder.ToString());
LineBuilder = new StringBuilder();
}
}
Column = LineBuilder.Length;
SelectionStart = Column;
}
}
public bool RaisePreviewKeyDownEvent(Key key)
{
MockConsoleTextEditorKeyEventArgs e = new MockConsoleTextEditorKeyEventArgs(key);
OnPreviewKeyDown(e);
if (!e.Handled) {
KeyConverter converter = new KeyConverter();
string text = converter.ConvertToString(key);
if (IsCursorAtEnd) {
LineBuilder.Append(text);
} else {
LineBuilder.Insert(Column, text);
}
Column++;
SelectionStart = Column;
}
return e.Handled;
}
void OnPreviewKeyDown(MockConsoleTextEditorKeyEventArgs e)
{
if (PreviewKeyDown != null) {
PreviewKeyDown(this, e);
}
}
public void RaisePreviewKeyDownEvent(MockConsoleTextEditorKeyEventArgs e)
{
OnPreviewKeyDown(e);
}
public bool RaisePreviewKeyDownEventForDialogKey(Key key)
{
MockConsoleTextEditorKeyEventArgs e = new MockConsoleTextEditorKeyEventArgs(key);
OnPreviewKeyDown(e);
if (!e.Handled) {
switch (key) {
case Key.Enter: {
if (IsCursorAtEnd) {
LineBuilder.Append(Environment.NewLine);
PreviousLines.Append(LineBuilder.ToString());
LineBuilder = new StringBuilder();
Column = 0;
SelectionStart = Column;
} else {
int length = LineBuilder.Length;
string currentLine = LineBuilder.ToString();
PreviousLines.Append(currentLine.Substring(0, Column) + Environment.NewLine);
LineBuilder = new StringBuilder();
LineBuilder.Append(currentLine.Substring(Column));
Column = length - Column;
SelectionStart = Column;
}
TotalLines++;
Line++;
}
break;
case Key.Back: {
OnBackspaceKeyPressed();
}
break;
case Key.Left: {
Column--;
SelectionStart = Column;
}
break;
case Key.Right: {
Column++;
SelectionStart = Column;
}
break;
}
}
return e.Handled;
}
public bool IsCompletionWindowDisplayed { get; set; }
public int Column { get; set; }
public int SelectionStart { get; set; }
public int SelectionLength { get; set; }
public int Line { get; set; }
public int TotalLines { get; set; }
public string GetLine(int index)
{
if (index == TotalLines - 1) {
return LineBuilder.ToString();
}
return "aaaa";
}
public void Replace(int index, int length, string text)
{
TextPassedToReplace = text;
IndexPassedToReplace = index;
LengthPassedToReplace = length;
LineBuilder.Remove(index, length);
LineBuilder.Insert(index, text);
}
public void ShowCompletionWindow(PythonConsoleCompletionDataProvider completionDataProvider)
{
IsShowCompletionWindowCalled = true;
IsCompletionWindowDisplayed = true;
this.CompletionProviderPassedToShowCompletionWindow = completionDataProvider;
}
public void MakeCurrentContentReadOnly()
{
IsMakeCurrentContentReadOnlyCalled = true;
}
bool IsCursorAtEnd {
get { return Column == LineBuilder.ToString().Length; }
}
void OnBackspaceKeyPressed()
{
if (SelectionLength == 0) {
// Remove a single character to the left of the cursor position.
LineBuilder.Remove(Column - 1, 1);
} else {
LineBuilder.Remove(SelectionStart, SelectionLength);
}
}
}
}

4
src/AddIns/BackendBindings/Python/PythonBinding/Test/Utils/MockPythonConsolePad.cs

@ -7,6 +7,8 @@ @@ -7,6 +7,8 @@
using System;
using ICSharpCode.PythonBinding;
using ICSharpCode.Scripting;
using ICSharpCode.Scripting.Tests.Utils;
namespace PythonBinding.Tests.Utils
{
@ -22,7 +24,7 @@ namespace PythonBinding.Tests.Utils @@ -22,7 +24,7 @@ namespace PythonBinding.Tests.Utils
BringToFrontCalled = true;
}
public IConsoleTextEditor ConsoleTextEditor {
public IScriptingConsoleTextEditor ConsoleTextEditor {
get { return MockConsoleTextEditor; }
}

2
src/AddIns/BackendBindings/Python/PythonBinding/Test/Utils/TestablePythonConsole.cs

@ -26,7 +26,7 @@ namespace PythonBinding.Tests.Utils @@ -26,7 +26,7 @@ namespace PythonBinding.Tests.Utils
{
}
TestablePythonConsole(IConsoleTextEditor consoleTextEditor, PythonCommandLine commandLine)
TestablePythonConsole(IScriptingConsoleTextEditor consoleTextEditor, PythonCommandLine commandLine)
: base(consoleTextEditor)
{
CommandLine = commandLine;

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

@ -91,10 +91,8 @@ @@ -91,10 +91,8 @@
<Compile Include="Src\IRubyFileService.cs" />
<Compile Include="Src\IRubyWorkbench.cs" />
<Compile Include="Src\RubyConsoleApplication.cs" />
<Compile Include="Src\RubyConsoleCompletionData.cs" />
<Compile Include="Src\ConvertProjectToRubyProjectCommand.cs" />
<Compile Include="Src\ConvertToRubyMenuCommand.cs" />
<Compile Include="Src\IConsoleTextEditor.cs" />
<Compile Include="Src\NRefactoryToRubyConverter.cs" />
<Compile Include="Src\RubyAddInOptions.cs" />
<Compile Include="Src\RubyAstWalker.cs" />
@ -105,7 +103,6 @@ @@ -105,7 +103,6 @@
<Compile Include="Src\RubyComponentWalker.cs" />
<Compile Include="Src\RubyComponentWalkerException.cs" />
<Compile Include="Src\RubyConsole.cs" />
<Compile Include="Src\RubyConsoleCompletionDataProvider.cs" />
<Compile Include="Src\RubyConsoleHost.cs" />
<Compile Include="Src\RubyConsolePad.cs" />
<Compile Include="Src\RubyConsoleTextEditorKeyEventArgs.cs" />

84
src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/IConsoleTextEditor.cs

@ -1,84 +0,0 @@ @@ -1,84 +0,0 @@
// <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;
using ICSharpCode.Scripting;
namespace ICSharpCode.RubyBinding
{
/// <summary>
/// The interface that the text editor used by the RubyConsole needs to be implement. Note that
/// all the methods will be called on another thread not the main UI thread and will therefore need to
/// be invoked.
/// </summary>
public interface IConsoleTextEditor : IDisposable
{
/// <summary>
/// Fired when a key is pressed but before any text has been added to the text editor.
/// </summary>
/// <remarks>
/// The handler should set the ConsoleTextEditorKeyEventArgs.Handled to true if the text editor should not
/// process the key and not insert any text.
/// </remarks>
event ConsoleTextEditorKeyEventHandler PreviewKeyDown;
/// <summary>
/// Inserts text at the current cursor location.
/// </summary>
void Write(string text);
/// <summary>
/// Replaces the text at the specified index on the current line with the specified text.
/// </summary>
void Replace(int index, int length, string text);
/// <summary>
/// Gets or sets the current column position of the cursor on the current line. This is zero based.
/// </summary>
int Column {get; set;}
/// <summary>
/// Gets the length of the currently selected text.
/// </summary>
int SelectionLength {get;}
/// <summary>
/// Gets the start position of the currently selected text.
/// </summary>
int SelectionStart {get;}
/// <summary>
/// Gets the current line the cursor is on. This is zero based.
/// </summary>
int Line {get; set;}
/// <summary>
/// Gets the total number of lines in the text editor.
/// </summary>
int TotalLines {get;}
/// <summary>
/// Gets the text for the specified line.
/// </summary>
string GetLine(int index);
/// <summary>
/// Shows the code completion window.
/// </summary>
void ShowCompletionWindow(RubyConsoleCompletionDataProvider completionDataProvider);
/// <summary>
/// Indicates whether the completion window is currently being displayed.
/// </summary>
bool IsCompletionWindowDisplayed {get;}
/// <summary>
/// Makes the current text content read only. Text can be entered at the end.
/// </summary>
void MakeCurrentContentReadOnly();
}
}

3
src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/IRubyConsolePad.cs

@ -6,13 +6,14 @@ @@ -6,13 +6,14 @@
// </file>
using System;
using ICSharpCode.Scripting;
namespace ICSharpCode.RubyBinding
{
public interface IRubyConsolePad
{
void BringToFront();
IConsoleTextEditor ConsoleTextEditor { get; }
IScriptingConsoleTextEditor ConsoleTextEditor { get; }
IRubyConsole RubyConsole { get; }
}
}

6
src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/RubyConsole.cs

@ -19,7 +19,7 @@ namespace ICSharpCode.RubyBinding @@ -19,7 +19,7 @@ namespace ICSharpCode.RubyBinding
{
public class RubyConsole : IConsole, IDisposable, IMemberProvider, IRubyConsole
{
IConsoleTextEditor textEditor;
IScriptingConsoleTextEditor textEditor;
int lineReceivedEventIndex = 0; // The index into the waitHandles array where the lineReceivedEvent is stored.
ManualResetEvent lineReceivedEvent = new ManualResetEvent(false);
ManualResetEvent disposedEvent = new ManualResetEvent(false);
@ -31,7 +31,7 @@ namespace ICSharpCode.RubyBinding @@ -31,7 +31,7 @@ namespace ICSharpCode.RubyBinding
protected List<string> unreadLines = new List<string>();
public RubyConsole(IConsoleTextEditor textEditor)
public RubyConsole(IScriptingConsoleTextEditor textEditor)
{
waitHandles = new WaitHandle[] {lineReceivedEvent, disposedEvent};
@ -314,7 +314,7 @@ namespace ICSharpCode.RubyBinding @@ -314,7 +314,7 @@ namespace ICSharpCode.RubyBinding
void ShowCompletionWindow()
{
RubyConsoleCompletionDataProvider completionProvider = new RubyConsoleCompletionDataProvider(this);
ScriptingConsoleCompletionDataProvider completionProvider = new ScriptingConsoleCompletionDataProvider(this);
textEditor.ShowCompletionWindow(completionProvider);
}

50
src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/RubyConsoleCompletionData.cs

@ -1,50 +0,0 @@ @@ -1,50 +0,0 @@
// <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;
using System.Windows.Media;
using ICSharpCode.AvalonEdit.CodeCompletion;
using ICSharpCode.AvalonEdit.Document;
using ICSharpCode.AvalonEdit.Editing;
namespace ICSharpCode.RubyBinding
{
public class RubyConsoleCompletionData : ICompletionData
{
string text = String.Empty;
public RubyConsoleCompletionData(string text)
{
this.text = text;
}
public ImageSource Image {
get { return null; }
}
public string Text {
get { return text; }
}
public object Content {
get { return text; }
}
public object Description {
get { return null; }
}
public double Priority {
get { return 0; }
}
public void Complete(TextArea textArea, ISegment completionSegment, EventArgs insertionRequestEventArgs)
{
textArea.Document.Replace(completionSegment, text);
}
}
}

65
src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/RubyConsoleCompletionDataProvider.cs

@ -1,65 +0,0 @@ @@ -1,65 +0,0 @@
// <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;
using System.Collections.Generic;
using ICSharpCode.AvalonEdit.CodeCompletion;
using ICSharpCode.Core;
using ICSharpCode.Scripting;
using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Editor.CodeCompletion;
namespace ICSharpCode.RubyBinding
{
/// <summary>
/// Provides code completion for the Ruby Console window.
/// </summary>
public class RubyConsoleCompletionDataProvider
{
IMemberProvider memberProvider;
public RubyConsoleCompletionDataProvider(IMemberProvider memberProvider)
{
this.memberProvider = memberProvider;
//DefaultIndex = 0;
}
public ICompletionData[] GenerateCompletionData(IConsoleTextEditor textEditor)
{
string line = textEditor.GetLine(textEditor.TotalLines - 1);
return GenerateCompletionData(line);
}
/// <summary>
/// Generates completion data for the specified text. The text should be everything before
/// the dot character that triggered the completion. The text can contain the command line prompt
/// '>>>' as this will be ignored.
/// </summary>
public ICompletionData[] GenerateCompletionData(string line)
{
List<RubyConsoleCompletionData> items = new List<RubyConsoleCompletionData>();
string name = GetName(line);
if (!String.IsNullOrEmpty(name)) {
try {
foreach (string member in memberProvider.GetMemberNames(name)) {
items.Add(new RubyConsoleCompletionData(member));
}
} catch {
// Do nothing.
}
}
return items.ToArray();
}
string GetName(string text)
{
int startIndex = text.LastIndexOf(' ');
return text.Substring(startIndex + 1);
}
}
}

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

@ -8,6 +8,8 @@ @@ -8,6 +8,8 @@
using System;
using System.Text;
using System.Threading;
using ICSharpCode.Scripting;
using IronRuby;
using IronRuby.Hosting;
using IronRuby.Runtime;
@ -19,10 +21,10 @@ namespace ICSharpCode.RubyBinding @@ -19,10 +21,10 @@ namespace ICSharpCode.RubyBinding
public class RubyConsoleHost : ConsoleHost, IDisposable
{
Thread thread;
IConsoleTextEditor textEditor;
IScriptingConsoleTextEditor textEditor;
RubyConsole rubyConsole;
public RubyConsoleHost(IConsoleTextEditor textEditor)
public RubyConsoleHost(IScriptingConsoleTextEditor textEditor)
{
this.textEditor = textEditor;
rubyConsole = new RubyConsole(textEditor);

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

@ -6,8 +6,9 @@ @@ -6,8 +6,9 @@
// </file>
using System;
using AvalonEdit = ICSharpCode.AvalonEdit;
using ICSharpCode.Scripting;
using ICSharpCode.SharpDevelop.Gui;
using AvalonEdit = ICSharpCode.AvalonEdit;
namespace ICSharpCode.RubyBinding
{
@ -25,7 +26,7 @@ namespace ICSharpCode.RubyBinding @@ -25,7 +26,7 @@ namespace ICSharpCode.RubyBinding
host.Run();
}
public IConsoleTextEditor ConsoleTextEditor {
public IScriptingConsoleTextEditor ConsoleTextEditor {
get { return consoleTextEditor; }
}

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

@ -19,7 +19,7 @@ using ICSharpCode.SharpDevelop.Gui; @@ -19,7 +19,7 @@ using ICSharpCode.SharpDevelop.Gui;
namespace ICSharpCode.RubyBinding
{
public class RubyConsoleTextEditor : IConsoleTextEditor
public class RubyConsoleTextEditor : IScriptingConsoleTextEditor
{
TextEditor textEditor;
Color customLineColour = Color.LightGray;
@ -116,7 +116,7 @@ namespace ICSharpCode.RubyBinding @@ -116,7 +116,7 @@ namespace ICSharpCode.RubyBinding
readOnlyRegion.EndOffset = textEditor.Document.TextLength;
}
public void ShowCompletionWindow(RubyConsoleCompletionDataProvider completionDataProvider)
public void ShowCompletionWindow(ScriptingConsoleCompletionDataProvider completionDataProvider)
{
ICompletionData[] items = completionDataProvider.GenerateCompletionData(this);
if (items.Length > 0) {

6
src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/RubyOutputStream.cs

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

10
src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/ThreadSafeRubyConsoleTextEditor.cs

@ -11,11 +11,11 @@ using ICSharpCode.Scripting; @@ -11,11 +11,11 @@ using ICSharpCode.Scripting;
namespace ICSharpCode.RubyBinding
{
public class ThreadSafeRubyConsoleTextEditor : IConsoleTextEditor
public class ThreadSafeRubyConsoleTextEditor : IScriptingConsoleTextEditor
{
delegate string GetLineInvoker(int index);
IConsoleTextEditor consoleTextEditor;
IScriptingConsoleTextEditor consoleTextEditor;
IControlDispatcher dispatcher;
public ThreadSafeRubyConsoleTextEditor(TextEditor textEditor)
@ -23,7 +23,7 @@ namespace ICSharpCode.RubyBinding @@ -23,7 +23,7 @@ namespace ICSharpCode.RubyBinding
{
}
public ThreadSafeRubyConsoleTextEditor(IConsoleTextEditor consoleTextEditor, IControlDispatcher dispatcher)
public ThreadSafeRubyConsoleTextEditor(IScriptingConsoleTextEditor consoleTextEditor, IControlDispatcher dispatcher)
{
this.consoleTextEditor = consoleTextEditor;
this.dispatcher = dispatcher;
@ -95,12 +95,12 @@ namespace ICSharpCode.RubyBinding @@ -95,12 +95,12 @@ namespace ICSharpCode.RubyBinding
}
}
public void ShowCompletionWindow(RubyConsoleCompletionDataProvider completionDataProvider)
public void ShowCompletionWindow(ScriptingConsoleCompletionDataProvider completionDataProvider)
{
if (dispatcher.CheckAccess()) {
consoleTextEditor.ShowCompletionWindow(completionDataProvider);
} else {
Action<RubyConsoleCompletionDataProvider> action = ShowCompletionWindow;
Action<ScriptingConsoleCompletionDataProvider> action = ShowCompletionWindow;
dispatcher.Invoke(action, completionDataProvider);
}
}

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

@ -1,66 +0,0 @@ @@ -1,66 +0,0 @@
// <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;
using ICSharpCode.AvalonEdit.CodeCompletion;
using ICSharpCode.RubyBinding;
using ICSharpCode.Scripting.Tests.Console;
using ICSharpCode.SharpDevelop;
using NUnit.Framework;
namespace RubyBinding.Tests.Console
{
[TestFixture]
public class EmptyStringCodeCompletionTestFixture
{
MockMemberProvider memberProvider;
RubyConsoleCompletionDataProvider completionProvider;
[SetUp]
public void Init()
{
memberProvider = new MockMemberProvider();
completionProvider = new RubyConsoleCompletionDataProvider(memberProvider);
}
/// <summary>
/// If the user presses the dot character without having any text in the command line then
/// a SyntaxException occurs if the code calls IronRuby's CommandLine.GetMemberNames. So this
/// tests ensures that if the string is empty then this method is not called.
/// </summary>
[Test]
public void NoCompletionItemsGeneratedForEmptyString()
{
memberProvider.SetMemberNames(new string[] {"a"});
memberProvider.SetGlobals(new string[] {"a"});
Assert.AreEqual(0, completionProvider.GenerateCompletionData(">>> ").Length);
}
/// <summary>
/// Checks that the GenerateCompletionData method catches any exceptions thrown by the
/// IMemberProvider implementation. This can occur when an invalid name is passed to
/// IronRuby's CommandLine.GetMemberNames or GetGlobals. For example, an UnboundNameException is
/// thrown if an unknown name is used.
/// </summary>
[Test]
public void NoCompletionItemsGeneratedWhenExceptionThrown()
{
memberProvider.ExceptionToThrow = new ApplicationException("Should not be thrown");
Assert.AreEqual(0, completionProvider.GenerateCompletionData(">>> a").Length);
}
[Test]
public void UnderscoresPassedToGetMemberNames()
{
completionProvider.GenerateCompletionData(">>> __builtins__");
Assert.AreEqual("__builtins__", memberProvider.GetMemberNamesParameter);
}
}
}

47
src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Console/InsertConsoleCompletionDataTestFixture.cs

@ -1,47 +0,0 @@ @@ -1,47 +0,0 @@
// <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;
using ICSharpCode.AvalonEdit;
using ICSharpCode.AvalonEdit.Editing;
using ICSharpCode.RubyBinding;
using NUnit.Framework;
namespace RubyBinding.Tests.Console
{
[TestFixture]
public class InsertConsoleCompletionDataTestFixture
{
RubyConsoleCompletionData completionData;
TextEditor textEditor;
[SetUp]
public void Init()
{
textEditor = new TextEditor();
}
[Test]
public void TextInsertedAtCursor()
{
textEditor.Text = "abc.n";
textEditor.CaretOffset = 4;
int startOffset = 4;
int endOffset = 5;
SimpleSelection selection = new SimpleSelection(startOffset, endOffset);
completionData = new RubyConsoleCompletionData("new");
completionData.Complete(textEditor.TextArea, selection, null);
string expectedText =
"abc.new";
Assert.AreEqual(expectedText, textEditor.Text);
}
}
}

10
src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Console/RubyConsoleCodeCompletionTestFixture.cs

@ -7,10 +7,12 @@ @@ -7,10 +7,12 @@
using System;
using System.Collections.Generic;
using System.Windows.Input;
using System.Threading;
using Microsoft.Scripting.Hosting.Shell;
using System.Windows.Input;
using ICSharpCode.RubyBinding;
using ICSharpCode.Scripting;
using Microsoft.Scripting.Hosting.Shell;
using NUnit.Framework;
using RubyBinding.Tests.Utils;
@ -49,9 +51,9 @@ namespace RubyBinding.Tests.Console @@ -49,9 +51,9 @@ namespace RubyBinding.Tests.Console
}
[Test]
public void RubyConsoleCompletionDataProviderPassedToShowCompletionWindowMethod()
public void ScriptingConsoleCompletionDataProviderPassedToShowCompletionWindowMethod()
{
Assert.IsInstanceOf(typeof(RubyConsoleCompletionDataProvider), MockConsoleTextEditor.CompletionProviderPassedToShowCompletionWindow);
Assert.IsInstanceOf(typeof(ScriptingConsoleCompletionDataProvider), MockConsoleTextEditor.CompletionProviderPassedToShowCompletionWindow);
}
}
}

4
src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Console/RubyConsoleCurrentLineTestFixture.cs

@ -7,11 +7,11 @@ @@ -7,11 +7,11 @@
using System;
using System.Windows.Input;
using ICSharpCode.RubyBinding;
using ICSharpCode.Scripting.Tests.Utils;
using Microsoft.Scripting;
using Microsoft.Scripting.Hosting;
using Microsoft.Scripting.Hosting.Shell;
using ICSharpCode.RubyBinding;
using NUnit.Framework;
using RubyBinding.Tests.Utils;

4
src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Console/RubyConsoleHostTests.cs

@ -6,15 +6,15 @@ @@ -6,15 +6,15 @@
// </file>
using System;
using ICSharpCode.AvalonEdit;
using ICSharpCode.RubyBinding;
using ICSharpCode.Scripting.Tests.Utils;
using IronRuby.Hosting;
using IronRuby.Runtime;
using NUnit.Framework;
using Microsoft.Scripting;
using Microsoft.Scripting.Hosting;
using Microsoft.Scripting.Hosting.Shell;
using NUnit.Framework;
using RubyBinding.Tests.Utils;
namespace RubyBinding.Tests.Console

1
src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Console/RubyConsoleReadTestFixture.cs

@ -10,6 +10,7 @@ using System.Threading; @@ -10,6 +10,7 @@ using System.Threading;
using System.Windows.Input;
using ICSharpCode.RubyBinding;
using ICSharpCode.Scripting.Tests.Utils;
using NUnit.Framework;
using RubyBinding.Tests.Utils;

1
src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Console/RubyConsoleTestsBase.cs

@ -7,6 +7,7 @@ @@ -7,6 +7,7 @@
using System;
using ICSharpCode.RubyBinding;
using ICSharpCode.Scripting.Tests.Utils;
using RubyBinding.Tests.Utils;
namespace RubyBinding.Tests.Console

8
src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Console/RubyConsoleTextEditorTests.cs

@ -9,9 +9,11 @@ using System; @@ -9,9 +9,11 @@ using System;
using System.Collections.Generic;
using System.Threading;
using System.Windows.Input;
using ICSharpCode.AvalonEdit;
using ICSharpCode.AvalonEdit.Editing;
using ICSharpCode.RubyBinding;
using ICSharpCode.Scripting;
using NUnit.Framework;
using RubyBinding.Tests.Utils;
@ -31,9 +33,9 @@ namespace RubyBinding.Tests.Console @@ -31,9 +33,9 @@ namespace RubyBinding.Tests.Console
}
[Test]
public void RubyConsoleTextEditorImplementsIConsoleTextEditorInterface()
public void RubyConsoleTextEditorImplementsIScriptingConsoleTextEditorInterface()
{
Assert.IsNotNull(consoleTextEditor as IConsoleTextEditor);
Assert.IsNotNull(consoleTextEditor as IScriptingConsoleTextEditor);
}
[Test]
@ -90,7 +92,7 @@ namespace RubyBinding.Tests.Console @@ -90,7 +92,7 @@ namespace RubyBinding.Tests.Console
AssertSelectionsAreEqual(expectedSelection, consoleTextEditor);
}
void AssertSelectionsAreEqual(SimpleSelection expectedSelection, IConsoleTextEditor consoleTextEditor)
void AssertSelectionsAreEqual(SimpleSelection expectedSelection, IScriptingConsoleTextEditor consoleTextEditor)
{
int selectionLength = consoleTextEditor.SelectionStart + consoleTextEditor.SelectionLength;
SimpleSelection actualSelection = new SimpleSelection(consoleTextEditor.SelectionStart, selectionLength);

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

@ -10,6 +10,7 @@ using System.IO; @@ -10,6 +10,7 @@ using System.IO;
using System.Text;
using ICSharpCode.RubyBinding;
using ICSharpCode.Scripting.Tests.Utils;
using NUnit.Framework;
using RubyBinding.Tests.Utils;

1
src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Console/ThreadSafeRubyConsoleTextEditorTests.cs

@ -13,6 +13,7 @@ using System.Windows.Input; @@ -13,6 +13,7 @@ using System.Windows.Input;
using ICSharpCode.AvalonEdit;
using ICSharpCode.AvalonEdit.Editing;
using ICSharpCode.RubyBinding;
using ICSharpCode.Scripting.Tests.Utils;
using ICSharpCode.Scripting.Tests.Utils.Tests;
using NUnit.Framework;
using RubyBinding.Tests.Utils;

6
src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Console/TwoRubyConsoleLinesWaitingTestFixture.cs

@ -7,16 +7,16 @@ @@ -7,16 +7,16 @@
using System;
using System.Threading;
using Input = System.Windows.Input;
using ICSharpCode.RubyBinding;
using ICSharpCode.Scripting.Tests.Utils;
using IronRuby.Hosting;
using IronRuby.Runtime;
using NUnit.Framework;
using Microsoft.Scripting;
using Microsoft.Scripting.Hosting;
using Microsoft.Scripting.Hosting.Shell;
using NUnit.Framework;
using RubyBinding.Tests.Utils;
using Input = System.Windows.Input;
namespace RubyBinding.Tests.Console
{

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

@ -72,9 +72,7 @@ @@ -72,9 +72,7 @@
<ItemGroup>
<Compile Include="AssemblyInfo.cs" />
<Compile Include="Configuration\RubyAddInOptionsTestFixture.cs" />
<Compile Include="Console\CodeCompletionTests.cs" />
<Compile Include="Console\DisposedRubyConsoleTestFixture.cs" />
<Compile Include="Console\InsertConsoleCompletionDataTestFixture.cs" />
<Compile Include="Console\KeysPressedWhenCompletionWindowOpenTestFixture.cs" />
<Compile Include="Console\RubyConsoleCodeCompletionTestFixture.cs" />
<Compile Include="Console\RubyConsoleCommandLineHistoryTestFixture.cs" />
@ -338,7 +336,6 @@ @@ -338,7 +336,6 @@
<Compile Include="Utils\MockRubyConsole.cs" />
<Compile Include="Utils\MockRubyConsolePad.cs" />
<Compile Include="Utils\MockRubyFileService.cs" />
<Compile Include="Utils\MockConsoleTextEditor.cs" />
<Compile Include="Utils\MockWorkbench.cs" />
<Compile Include="Utils\RubyBindingAddInFile.cs" />
<Compile Include="Utils\RubyMSBuildEngineHelper.cs" />
@ -346,7 +343,6 @@ @@ -346,7 +343,6 @@
<Compile Include="Utils\RubySelectedTestsHelper.cs" />
<Compile Include="Utils\TestableRubyConsole.cs" />
<Compile Include="Utils\Tests\AddInPathHelperTestFixture.cs" />
<Compile Include="Utils\Tests\MockConsoleTextEditorTestFixture.cs" />
<Compile Include="Utils\Tests\MockRubyFileServiceTestFixture.cs" />
<EmbeddedResource Include="..\Project\RubyBinding.addin">
<Link>RubyBinding.addin</Link>

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

@ -7,8 +7,8 @@ @@ -7,8 +7,8 @@
using System;
using System.IO;
using ICSharpCode.RubyBinding;
using ICSharpCode.Scripting;
using Microsoft.Scripting;
using Microsoft.Scripting.Hosting;
using Microsoft.Scripting.Hosting.Shell;
@ -19,7 +19,7 @@ namespace RubyBinding.Tests.Console @@ -19,7 +19,7 @@ namespace RubyBinding.Tests.Console
{
RubyOutputStream outputStream;
public DerivedRubyConsoleHost(IConsoleTextEditor textEditor) : base(textEditor)
public DerivedRubyConsoleHost(IScriptingConsoleTextEditor textEditor) : base(textEditor)
{
}

4
src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Utils/MockRubyConsolePad.cs

@ -7,6 +7,8 @@ @@ -7,6 +7,8 @@
using System;
using ICSharpCode.RubyBinding;
using ICSharpCode.Scripting;
using ICSharpCode.Scripting.Tests.Utils;
namespace RubyBinding.Tests.Utils
{
@ -22,7 +24,7 @@ namespace RubyBinding.Tests.Utils @@ -22,7 +24,7 @@ namespace RubyBinding.Tests.Utils
BringToFrontCalled = true;
}
public IConsoleTextEditor ConsoleTextEditor {
public IScriptingConsoleTextEditor ConsoleTextEditor {
get { return MockConsoleTextEditor; }
}

2
src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Utils/TestableRubyConsole.cs

@ -26,7 +26,7 @@ namespace RubyBinding.Tests.Utils @@ -26,7 +26,7 @@ namespace RubyBinding.Tests.Utils
{
}
TestableRubyConsole(IConsoleTextEditor consoleTextEditor, RubyCommandLine commandLine)
TestableRubyConsole(IScriptingConsoleTextEditor consoleTextEditor, RubyCommandLine commandLine)
: base(consoleTextEditor)
{
CommandLine = commandLine;

351
src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Utils/Tests/MockConsoleTextEditorTestFixture.cs

@ -1,351 +0,0 @@ @@ -1,351 +0,0 @@
// <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;
using System.Windows.Input;
using ICSharpCode.RubyBinding;
using ICSharpCode.Scripting;
using NUnit.Framework;
using RubyBinding.Tests.Console;
using RubyBinding.Tests.Utils;
namespace RubyBinding.Tests.Utils.Tests
{
[TestFixture]
public class MockConsoleTextEditorTestFixture
{
MockConsoleTextEditor textEditor;
[SetUp]
public void Init()
{
textEditor = new MockConsoleTextEditor();
}
[Test]
public void TextReturnsEmptyStringByDefault()
{
Assert.AreEqual(String.Empty, textEditor.Text);
}
[Test]
public void TextReturnsTextWritten()
{
textEditor.Write("abc");
Assert.AreEqual("abc", textEditor.Text);
}
[Test]
public void ColumnReturnsPositionAfterTextWritten()
{
textEditor.Write("ab");
Assert.AreEqual(2, textEditor.Column);
}
[Test]
public void TextReturnsAllTextWritten()
{
textEditor.Write("a");
textEditor.Write("b");
Assert.AreEqual("ab", textEditor.Text);
}
[Test]
public void ColumnReturnsPositionAfterTextWhenWriteCalledTwice()
{
textEditor.Write("a");
textEditor.Write("bb");
Assert.AreEqual(3, textEditor.Column);
}
[Test]
public void IsWriteCalledReturnsTrueAfterWriteMethodCalled()
{
textEditor.Write("a");
Assert.IsTrue(textEditor.IsWriteCalled);
}
[Test]
public void SettingTextSetsColumnToPositionAfterText()
{
textEditor.Text = "abc";
Assert.AreEqual(3, textEditor.Column);
}
[Test]
public void SettingTextSetsSelectionStartToPositionAfterText()
{
textEditor.Text = "abc";
Assert.AreEqual(3, textEditor.SelectionStart);
}
[Test]
public void TotalLinesEqualsOneByDefault()
{
Assert.AreEqual(1, textEditor.TotalLines);
}
[Test]
public void TotalLinesReturnsTwoWhenTextSetWithTwoLines()
{
textEditor.Text =
"ab\n" +
"cd";
Assert.AreEqual(2, textEditor.TotalLines);
}
[Test]
public void ColumnReturnsPositionAfterLastCharacterOnLastLineWhenTextSetWithTwoLines()
{
textEditor.Text =
"ab\n" +
"c";
Assert.AreEqual(1, textEditor.Column);
}
[Test]
public void SelectionStartReturnsPositionAfterLastCharacterOnLastLineWhenTextSetWithTwoLines()
{
textEditor.Text =
"ab\n" +
"c";
Assert.AreEqual(1, textEditor.SelectionStart);
}
[Test]
public void NoTextAddedWhenPreviewKeyDownEventHandlerReturnsTrue()
{
textEditor.PreviewKeyDown += delegate(object source, ConsoleTextEditorKeyEventArgs e) {
e.Handled = true;
};
textEditor.RaisePreviewKeyDownEvent(Key.A);
Assert.AreEqual(String.Empty, textEditor.Text);
}
[Test]
public void RaisePreviewKeyDownEventReturnsTrueWhenPreviewDownHandlerReturnsTrue()
{
textEditor.PreviewKeyDown += delegate(object source, ConsoleTextEditorKeyEventArgs e) {
e.Handled = true;
};
Assert.IsTrue(textEditor.RaisePreviewKeyDownEvent(System.Windows.Input.Key.A));
}
[Test]
public void KeyPressWhenCursorInsideTextInsertsTextAtCursor()
{
textEditor.Text = "abcdef";
textEditor.Column = 3;
textEditor.RaisePreviewKeyDownEvent(Key.X);
Assert.AreEqual("abcXdef", textEditor.Text);
}
[Test]
public void GetLineWithIndex2ReturnsLastLineForThreeLinesOfText()
{
textEditor.Text =
"abc\n" +
"def\n" +
"ghi";
Assert.AreEqual("ghi", textEditor.GetLine(2));
}
[Test]
public void ReplaceMethodReplacesTextOnLastLine()
{
textEditor.Text =
"1\n" +
"2\n" +
"abcdef";
int index = 1;
int lengthToRemove = 4;
string newText = "123";
textEditor.Replace(index, lengthToRemove, newText);
string expectedText =
"1\n" +
"2\n" +
"a123f";
Assert.AreEqual(expectedText, textEditor.Text);
}
[Test]
public void LeftCursorDialogKeyPressMovesSelectionStartToLeft()
{
textEditor.Text = "abc";
textEditor.SelectionStart = 3;
textEditor.RaisePreviewKeyDownEventForDialogKey(Key.Left);
Assert.AreEqual(2, textEditor.SelectionStart);
}
[Test]
public void LeftCursorDialogKeyPressMovesCursorToLeft()
{
textEditor.Text = "abc";
textEditor.SelectionStart = 3;
textEditor.RaisePreviewKeyDownEventForDialogKey(Key.Left);
Assert.AreEqual(2, textEditor.Column);
}
[Test]
public void CursorPositionUnchangedWhenDialogKeyPressEventHandlerReturnsTrue()
{
textEditor.Text = "abc";
textEditor.Column = 3;
textEditor.PreviewKeyDown += delegate(object source, ConsoleTextEditorKeyEventArgs e) {
e.Handled = true;
};
textEditor.RaisePreviewKeyDownEventForDialogKey(Key.Left);
Assert.AreEqual(3, textEditor.Column);
}
[Test]
public void RaiseDialogKeyPressEventReturnsTruedWhenDialogKeyPressEventHandlerReturnsTrue()
{
textEditor.Text = "abc";
textEditor.Column = 3;
textEditor.PreviewKeyDown += delegate(object source, ConsoleTextEditorKeyEventArgs e) {
e.Handled = true;
};
Assert.IsTrue(textEditor.RaisePreviewKeyDownEventForDialogKey(Key.Left));
}
[Test]
public void RightCursorDialogKeyPressMovesCursorToRight()
{
textEditor.Text = "abc";
textEditor.Column = 0;
textEditor.SelectionStart = 0;
textEditor.RaisePreviewKeyDownEventForDialogKey(Key.Right);
Assert.AreEqual(1, textEditor.Column);
}
[Test]
public void RightCursorDialogKeyPressMovesSelectionStartToRight()
{
textEditor.Text = "abc";
textEditor.Column = 0;
textEditor.SelectionStart = 0;
textEditor.RaisePreviewKeyDownEventForDialogKey(Key.Right);
Assert.AreEqual(1, textEditor.SelectionStart);
}
[Test]
public void BackspaceDialogKeyPressRemovesLastCharacterFromLine()
{
textEditor.Text = "abc";
textEditor.RaisePreviewKeyDownEventForDialogKey(Key.Back);
Assert.AreEqual("ab", textEditor.Text);
}
[Test]
public void BackspaceDialogKeyPressRemovesSelectedTextFromLine()
{
textEditor.Text = "abcd";
textEditor.SelectionStart = 1;
textEditor.SelectionLength = 2;
textEditor.RaisePreviewKeyDownEventForDialogKey(Key.Back);
Assert.AreEqual("ad", textEditor.Text);
}
[Test]
public void EnterDialogKeyPressCreatesNewLine()
{
textEditor.Text = "abc";
textEditor.RaisePreviewKeyDownEventForDialogKey(Key.Enter);
string expectedText = "abc\r\n";
Assert.AreEqual(expectedText, textEditor.Text);
}
[Test]
public void ColumnResetToZeroAfterEnterDialogKeyPress()
{
textEditor.Text = "abc";
textEditor.Column = 3;
textEditor.RaisePreviewKeyDownEventForDialogKey(Key.Enter);
Assert.AreEqual(0, textEditor.Column);
}
[Test]
public void SelectionStartResetToZeroAfterEnterDialogKeyPress()
{
textEditor.Text = "abc";
textEditor.SelectionStart = 3;
textEditor.RaisePreviewKeyDownEventForDialogKey(Key.Enter);
Assert.AreEqual(0, textEditor.Column);
}
[Test]
public void EnterDialogKeyPressDoesNothingWhenKeyPressEventHandlerReturnsTrue()
{
textEditor.Text = "abc";
textEditor.PreviewKeyDown += delegate(object source, ConsoleTextEditorKeyEventArgs e) {
if (e.Key == Key.Enter) {
e.Handled = true;
} else {
e.Handled = false;
}
};
textEditor.RaisePreviewKeyDownEventForDialogKey(Key.Enter);
Assert.AreEqual("abc", textEditor.Text);
}
[Test]
public void EnterDialogKeyPressIncreasesTotalLineCountByOne()
{
textEditor.Text = "abc";
textEditor.RaisePreviewKeyDownEventForDialogKey(Key.Enter);
Assert.AreEqual(2, textEditor.TotalLines);
}
[Test]
public void EnterDialogKeyPressIncreasesCurrentLineByOne()
{
textEditor.Text = "abc";
textEditor.RaisePreviewKeyDownEventForDialogKey(Key.Enter);
Assert.AreEqual(1, textEditor.Line);
}
[Test]
public void EnterDialogKeyPressInMiddleOfLinePutsTextAfterCursorOnNewLine()
{
textEditor.Text = "abcd";
textEditor.Column = 2;
textEditor.RaisePreviewKeyDownEventForDialogKey(Key.Enter);
string expectedText =
"ab\r\n" +
"cd";
Assert.AreEqual(expectedText, textEditor.Text);
}
[Test]
public void EnterDialogKeyPressInMiddleOfLinePutsSelectionStartAtEndOfNewLineGenerated()
{
textEditor.Text = "abcd";
textEditor.Column = 3;
textEditor.RaisePreviewKeyDownEventForDialogKey(Key.Enter);
Assert.AreEqual(1, textEditor.SelectionStart);
}
[Test]
public void EnterDialogKeyPressInMiddleOfLinePutsCursorAtEndOfNewLineGenerated()
{
textEditor.Text = "abcd";
textEditor.Column = 3;
textEditor.RaisePreviewKeyDownEventForDialogKey(Key.Enter);
Assert.AreEqual(1, textEditor.Column);
}
}
}

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

@ -39,7 +39,14 @@ @@ -39,7 +39,14 @@
<Reference Include="PresentationCore">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="PresentationFramework">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="System" />
<Reference Include="System.Drawing" />
<Reference Include="System.Xaml">
<RequiredTargetFramework>4.0</RequiredTargetFramework>
</Reference>
<Reference Include="System.Xml" />
<Reference Include="WindowsBase">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
@ -62,7 +69,27 @@ @@ -62,7 +69,27 @@
<Compile Include="Src\IControlDispatcher.cs" />
<Compile Include="Src\ILock.cs" />
<Compile Include="Src\IMemberProvider.cs" />
<Compile Include="Src\IScriptingConsoleTextEditor.cs" />
<Compile Include="Src\ScriptingConsoleCompletionData.cs" />
<Compile Include="Src\ScriptingConsoleCompletionDataProvider.cs" />
<Compile Include="Src\StringListLock.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\..\Libraries\AvalonEdit\ICSharpCode.AvalonEdit\ICSharpCode.AvalonEdit.csproj">
<Project>{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}</Project>
<Name>ICSharpCode.AvalonEdit</Name>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Main\Base\Project\ICSharpCode.SharpDevelop.csproj">
<Project>{2748AD25-9C63-4E12-877B-4DCE96FBED54}</Project>
<Name>ICSharpCode.SharpDevelop</Name>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Main\Core\Project\ICSharpCode.Core.csproj">
<Project>{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}</Project>
<Name>ICSharpCode.Core</Name>
<Private>False</Private>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
</Project>

9
src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/IConsoleTextEditor.cs → src/AddIns/BackendBindings/Scripting/Project/Src/IScriptingConsoleTextEditor.cs

@ -8,16 +8,15 @@ @@ -8,16 +8,15 @@
using System;
using System.Drawing;
using System.Windows.Input;
using ICSharpCode.Scripting;
namespace ICSharpCode.PythonBinding
namespace ICSharpCode.Scripting
{
/// <summary>
/// The interface that the text editor used by the PythonConsole needs to be implement. Note that
/// The interface that the text editor used by the Python and Ruby Consoles needs to be implement. Note that
/// all the methods will be called on another thread not the main UI thread and will therefore need to
/// be invoked.
/// </summary>
public interface IConsoleTextEditor : IDisposable
public interface IScriptingConsoleTextEditor : IDisposable
{
/// <summary>
/// Fired when a key is pressed but before any text has been added to the text editor.
@ -71,7 +70,7 @@ namespace ICSharpCode.PythonBinding @@ -71,7 +70,7 @@ namespace ICSharpCode.PythonBinding
/// <summary>
/// Shows the code completion window.
/// </summary>
void ShowCompletionWindow(PythonConsoleCompletionDataProvider completionDataProvider);
void ShowCompletionWindow(ScriptingConsoleCompletionDataProvider completionDataProvider);
/// <summary>
/// Indicates whether the completion window is currently being displayed.

6
src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonConsoleCompletionData.cs → src/AddIns/BackendBindings/Scripting/Project/Src/ScriptingConsoleCompletionData.cs

@ -11,13 +11,13 @@ using ICSharpCode.AvalonEdit.CodeCompletion; @@ -11,13 +11,13 @@ using ICSharpCode.AvalonEdit.CodeCompletion;
using ICSharpCode.AvalonEdit.Document;
using ICSharpCode.AvalonEdit.Editing;
namespace ICSharpCode.PythonBinding
namespace ICSharpCode.Scripting
{
public class PythonConsoleCompletionData : ICompletionData
public class ScriptingConsoleCompletionData : ICompletionData
{
string text = String.Empty;
public PythonConsoleCompletionData(string text)
public ScriptingConsoleCompletionData(string text)
{
this.text = text;
}

15
src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonConsoleCompletionDataProvider.cs → src/AddIns/BackendBindings/Scripting/Project/Src/ScriptingConsoleCompletionDataProvider.cs

@ -9,25 +9,24 @@ using System; @@ -9,25 +9,24 @@ using System;
using System.Collections.Generic;
using ICSharpCode.AvalonEdit.CodeCompletion;
using ICSharpCode.Core;
using ICSharpCode.Scripting;
using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Editor.CodeCompletion;
namespace ICSharpCode.PythonBinding
namespace ICSharpCode.Scripting
{
/// <summary>
/// Provides code completion for the Python Console window.
/// Provides code completion for the Scripting Console window.
/// </summary>
public class PythonConsoleCompletionDataProvider
public class ScriptingConsoleCompletionDataProvider
{
IMemberProvider memberProvider;
public PythonConsoleCompletionDataProvider(IMemberProvider memberProvider)
public ScriptingConsoleCompletionDataProvider(IMemberProvider memberProvider)
{
this.memberProvider = memberProvider;
}
public ICompletionData[] GenerateCompletionData(IConsoleTextEditor textEditor)
public ICompletionData[] GenerateCompletionData(IScriptingConsoleTextEditor textEditor)
{
string line = textEditor.GetLine(textEditor.TotalLines - 1);
return GenerateCompletionData(line);
@ -40,13 +39,13 @@ namespace ICSharpCode.PythonBinding @@ -40,13 +39,13 @@ namespace ICSharpCode.PythonBinding
/// </summary>
public ICompletionData[] GenerateCompletionData(string line)
{
List<PythonConsoleCompletionData> items = new List<PythonConsoleCompletionData>();
List<ScriptingConsoleCompletionData> items = new List<ScriptingConsoleCompletionData>();
string name = GetName(line);
if (!String.IsNullOrEmpty(name)) {
try {
foreach (string member in memberProvider.GetMemberNames(name)) {
items.Add(new PythonConsoleCompletionData(member));
items.Add(new ScriptingConsoleCompletionData(member));
}
} catch {
// Do nothing.

11
src/AddIns/BackendBindings/Python/PythonBinding/Test/Console/CodeCompletionTests.cs → src/AddIns/BackendBindings/Scripting/Test/Console/EmptyStringCodeCompletionTests.cs

@ -7,24 +7,23 @@ @@ -7,24 +7,23 @@
using System;
using ICSharpCode.AvalonEdit.CodeCompletion;
using ICSharpCode.PythonBinding;
using ICSharpCode.Scripting.Tests.Console;
using ICSharpCode.Scripting;
using ICSharpCode.SharpDevelop;
using NUnit.Framework;
namespace PythonBinding.Tests.Console
namespace ICSharpCode.Scripting.Tests.Console
{
[TestFixture]
public class EmptyStringCodeCompletionTestFixture
public class EmptyStringCodeCompletionTests
{
MockMemberProvider memberProvider;
PythonConsoleCompletionDataProvider completionProvider;
ScriptingConsoleCompletionDataProvider completionProvider;
[SetUp]
public void Init()
{
memberProvider = new MockMemberProvider();
completionProvider = new PythonConsoleCompletionDataProvider(memberProvider);
completionProvider = new ScriptingConsoleCompletionDataProvider(memberProvider);
}
/// <summary>

8
src/AddIns/BackendBindings/Python/PythonBinding/Test/Console/InsertConsoleCompletionDataTestFixture.cs → src/AddIns/BackendBindings/Scripting/Test/Console/InsertConsoleCompletionDataTestFixture.cs

@ -8,15 +8,15 @@ @@ -8,15 +8,15 @@
using System;
using ICSharpCode.AvalonEdit;
using ICSharpCode.AvalonEdit.Editing;
using ICSharpCode.PythonBinding;
using ICSharpCode.Scripting;
using NUnit.Framework;
namespace PythonBinding.Tests.Console
namespace ICSharpCode.Scripting.Tests.Console
{
[TestFixture]
public class InsertConsoleCompletionDataTestFixture
{
PythonConsoleCompletionData completionData;
ScriptingConsoleCompletionData completionData;
TextEditor textEditor;
[SetUp]
@ -35,7 +35,7 @@ namespace PythonBinding.Tests.Console @@ -35,7 +35,7 @@ namespace PythonBinding.Tests.Console
int endOffset = 5;
SimpleSelection selection = new SimpleSelection(startOffset, endOffset);
completionData = new PythonConsoleCompletionData("new");
completionData = new ScriptingConsoleCompletionData("new");
completionData.Complete(textEditor.TextArea, selection, null);
string expectedText =

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

@ -69,6 +69,8 @@ @@ -69,6 +69,8 @@
<Compile Include="Configuration\AssemblyInfo.cs" />
<Compile Include="Console\CommandLineHistoryTestFixture.cs" />
<Compile Include="Console\EmptyCommandLineHistoryTestFixture.cs" />
<Compile Include="Console\EmptyStringCodeCompletionTests.cs" />
<Compile Include="Console\InsertConsoleCompletionDataTestFixture.cs" />
<Compile Include="Console\OneItemCommandLineHistoryTestFixture.cs" />
<Compile Include="Testing\CreateTextWriterFromCreateTextWriterInfoTestFixture.cs" />
<Compile Include="Testing\CreateTextWriterInfoEqualsTestFixture.cs" />
@ -88,6 +90,7 @@ @@ -88,6 +90,7 @@
<Compile Include="Utils\FakeLock.cs" />
<Compile Include="Utils\FooItemCollection.cs" />
<Compile Include="Utils\MockComponentCreator.cs" />
<Compile Include="Utils\MockConsoleTextEditor.cs" />
<Compile Include="Utils\MockConsoleTextEditorKeyEventArgs.cs" />
<Compile Include="Utils\MockControlDispatcher.cs" />
<Compile Include="Utils\MockDebugger.cs" />
@ -114,6 +117,7 @@ @@ -114,6 +117,7 @@
<Compile Include="Utils\NullPropertyUserControl.cs" />
<Compile Include="Utils\SupportInitCustomControl.cs" />
<Compile Include="Utils\Tests\MockComponentCreatorTests.cs" />
<Compile Include="Utils\Tests\MockConsoleTextEditorTests.cs" />
<Compile Include="Utils\Tests\MockControlDispatcherTestFixture.cs" />
<Compile Include="Utils\Tests\MockEditableViewContentTestFixture.cs" />
<Compile Include="Utils\Tests\MockProjectContentTests.cs" />
@ -152,5 +156,8 @@ @@ -152,5 +156,8 @@
<Name>ICSharpCode.Scripting</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
</Project>

10
src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Utils/MockConsoleTextEditor.cs → src/AddIns/BackendBindings/Scripting/Test/Utils/MockConsoleTextEditor.cs

@ -12,20 +12,18 @@ using System.Text; @@ -12,20 +12,18 @@ using System.Text;
using System.Windows.Input;
using ICSharpCode.NRefactory;
using ICSharpCode.RubyBinding;
using ICSharpCode.Scripting;
using ICSharpCode.Scripting.Tests.Utils;
namespace RubyBinding.Tests.Utils
namespace ICSharpCode.Scripting.Tests.Utils
{
public class MockConsoleTextEditor : IConsoleTextEditor
public class MockConsoleTextEditor : IScriptingConsoleTextEditor
{
public bool IsDisposed;
public bool IsWriteCalled;
public bool IsShowCompletionWindowCalled;
public bool IsMakeCurrentContentReadOnlyCalled;
public RubyConsoleCompletionDataProvider CompletionProviderPassedToShowCompletionWindow;
public ScriptingConsoleCompletionDataProvider CompletionProviderPassedToShowCompletionWindow;
public string TextPassedToWrite;
public string TextPassedToReplace;
public int LengthPassedToReplace = -1;
@ -176,7 +174,7 @@ namespace RubyBinding.Tests.Utils @@ -176,7 +174,7 @@ namespace RubyBinding.Tests.Utils
LineBuilder.Insert(index, text);
}
public void ShowCompletionWindow(RubyConsoleCompletionDataProvider completionDataProvider)
public void ShowCompletionWindow(ScriptingConsoleCompletionDataProvider completionDataProvider)
{
IsShowCompletionWindowCalled = true;
IsCompletionWindowDisplayed = true;

6
src/AddIns/BackendBindings/Python/PythonBinding/Test/Utils/Tests/MockConsoleTextEditorTestFixture.cs → src/AddIns/BackendBindings/Scripting/Test/Utils/Tests/MockConsoleTextEditorTests.cs

@ -7,15 +7,13 @@ @@ -7,15 +7,13 @@
using System;
using System.Windows.Input;
using ICSharpCode.PythonBinding;
using ICSharpCode.Scripting;
using NUnit.Framework;
using PythonBinding.Tests.Utils;
namespace PythonBinding.Tests.Utils.Tests
namespace ICSharpCode.Scripting.Tests.Utils.Tests
{
[TestFixture]
public class MockConsoleTextEditorTestFixture
public class MockConsoleTextEditorTests
{
MockConsoleTextEditor textEditor;

14
src/AddIns/BackendBindings/Scripting/Test/app.config

@ -0,0 +1,14 @@ @@ -0,0 +1,14 @@
<configuration>
<configSections>
<sectionGroup name="NUnit">
<section name="TestRunner"
type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</configSections>
<NUnit>
<TestRunner>
<!-- Valid values are STA,MTA. Others ignored. -->
<add key="ApartmentState" value="STA" />
</TestRunner>
</NUnit>
</configuration>
Loading…
Cancel
Save