Browse Source

Scroll to end of console when any text is output.

pull/15/head
Matt Ward 15 years ago
parent
commit
bf9e815a0f
  1. 2
      src/AddIns/BackendBindings/Scripting/Project/Src/IScriptingConsole.cs
  2. 12
      src/AddIns/BackendBindings/Scripting/Project/Src/ScriptingConsole.cs
  3. 7
      src/AddIns/BackendBindings/Scripting/Project/Src/ThreadSafeScriptingConsole.cs
  4. 18
      src/AddIns/BackendBindings/Scripting/Test/Console/ScriptingConsoleWriteTests.cs
  5. 12
      src/AddIns/BackendBindings/Scripting/Test/Console/ThreadSafeScriptingConsoleTests.cs
  6. 2
      src/AddIns/BackendBindings/Scripting/Test/Utils/FakeScriptingConsole.cs
  7. 1
      src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PackageManagementConsole.cs

2
src/AddIns/BackendBindings/Scripting/Project/Src/IScriptingConsole.cs

@ -9,7 +9,7 @@ namespace ICSharpCode.Scripting
{ {
event EventHandler LineReceived; event EventHandler LineReceived;
bool ScrollToEndWhenPromptWritten { get; set; } bool ScrollToEndWhenTextWritten { get; set; }
void SendLine(string line); void SendLine(string line);
void SendText(string text); void SendText(string text);

12
src/AddIns/BackendBindings/Scripting/Project/Src/ScriptingConsole.cs

@ -34,7 +34,7 @@ namespace ICSharpCode.Scripting
{ {
this.textEditor = textEditor; this.textEditor = textEditor;
this.unreadLines = unreadLines; this.unreadLines = unreadLines;
this.ScrollToEndWhenPromptWritten = true; this.ScrollToEndWhenTextWritten = true;
textEditor.PreviewKeyDown += ProcessPreviewKeyDown; textEditor.PreviewKeyDown += ProcessPreviewKeyDown;
} }
@ -78,10 +78,10 @@ namespace ICSharpCode.Scripting
WriteFirstLineOfSentText(); WriteFirstLineOfSentText();
textEditor.MakeCurrentContentReadOnly(); textEditor.MakeCurrentContentReadOnly();
}
if (ScrollToEndWhenPromptWritten) {
ScrollToEnd(); if (ScrollToEndWhenTextWritten) {
} ScrollToEnd();
} }
} }
@ -346,7 +346,7 @@ namespace ICSharpCode.Scripting
return unreadLines.RemoveFirstLine(); return unreadLines.RemoveFirstLine();
} }
public bool ScrollToEndWhenPromptWritten { get; set; } public bool ScrollToEndWhenTextWritten { get; set; }
void ScrollToEnd() void ScrollToEnd()
{ {

7
src/AddIns/BackendBindings/Scripting/Project/Src/ThreadSafeScriptingConsole.cs

@ -35,10 +35,9 @@ namespace ICSharpCode.Scripting
consoleEvents.SetLineReceivedEvent(); consoleEvents.SetLineReceivedEvent();
} }
public bool ScrollToEndWhenTextWritten {
public bool ScrollToEndWhenPromptWritten { get { return nonThreadSafeScriptingConsole.ScrollToEndWhenTextWritten; }
get { return nonThreadSafeScriptingConsole.ScrollToEndWhenPromptWritten; } set { nonThreadSafeScriptingConsole.ScrollToEndWhenTextWritten = value; }
set { nonThreadSafeScriptingConsole.ScrollToEndWhenPromptWritten = value; }
} }
public void WriteLine() public void WriteLine()

18
src/AddIns/BackendBindings/Scripting/Test/Console/ScriptingConsoleWriteTests.cs

@ -52,36 +52,36 @@ namespace ICSharpCode.Scripting.Tests.Console
} }
[Test] [Test]
public void Write_WritePromptWhenScrollToPromptIsTrue_TextEditorIsScrolled() public void Write_WritePromptWhenScrollToEndWhenTextWritten_TextEditorIsScrolled()
{ {
TestableScriptingConsole.ScrollToEndWhenPromptWritten = true; TestableScriptingConsole.ScrollToEndWhenTextWritten = true;
TestableScriptingConsole.Write("a", ScriptingStyle.Prompt); TestableScriptingConsole.Write("a", ScriptingStyle.Prompt);
Assert.IsTrue(FakeConsoleTextEditor.IsScrollToEndCalled); Assert.IsTrue(FakeConsoleTextEditor.IsScrollToEndCalled);
} }
[Test] [Test]
public void Write_WritePromptWhenScrollToPromptIsFalse_TextEditorIsNotScrolled() public void Write_WritePromptWhenScrollToEndWhenTextWrittenIsFalse_TextEditorIsNotScrolled()
{ {
TestableScriptingConsole.ScrollToEndWhenPromptWritten = false; TestableScriptingConsole.ScrollToEndWhenTextWritten = false;
TestableScriptingConsole.Write("a", ScriptingStyle.Prompt); TestableScriptingConsole.Write("a", ScriptingStyle.Prompt);
Assert.IsFalse(FakeConsoleTextEditor.IsScrollToEndCalled); Assert.IsFalse(FakeConsoleTextEditor.IsScrollToEndCalled);
} }
[Test] [Test]
public void Write_WriteErrorWhenScrollToPromptIsTrue_TextEditorIsNotScrolled() public void Write_WriteErrorWhenScrollToEndWhenTextWrittenIsTrue_TextEditorIsScrolled()
{ {
TestableScriptingConsole.ScrollToEndWhenPromptWritten = true; TestableScriptingConsole.ScrollToEndWhenTextWritten = true;
TestableScriptingConsole.Write("a", ScriptingStyle.Error); TestableScriptingConsole.Write("a", ScriptingStyle.Error);
Assert.IsFalse(FakeConsoleTextEditor.IsScrollToEndCalled); Assert.IsTrue(FakeConsoleTextEditor.IsScrollToEndCalled);
} }
[Test] [Test]
public void ScrollToEndWhenPromptWritten_NewInstance_IsTrue() public void ScrollToEndWhenTextWritten_NewInstance_IsTrue()
{ {
Assert.IsTrue(TestableScriptingConsole.ScrollToEndWhenPromptWritten); Assert.IsTrue(TestableScriptingConsole.ScrollToEndWhenTextWritten);
} }
} }
} }

12
src/AddIns/BackendBindings/Scripting/Test/Console/ThreadSafeScriptingConsoleTests.cs

@ -355,21 +355,21 @@ namespace ICSharpCode.Scripting.Tests.Console
} }
[Test] [Test]
public void ScrollToEndWhenPromptWritten_NonThreadSafeConsoleScrollToEndWhenPromptWrittenIsTrue_ReturnsTrue() public void ScrollToEndWhenTextWritten_NonThreadSafeConsoleScrollToEndWhenTextWrittenIsTrue_ReturnsTrue()
{ {
CreateThreadSafeScriptingConsole(); CreateThreadSafeScriptingConsole();
nonThreadSafeScriptingConsole.ScrollToEndWhenPromptWritten = true; nonThreadSafeScriptingConsole.ScrollToEndWhenTextWritten = true;
Assert.IsTrue(threadSafeConsole.ScrollToEndWhenPromptWritten); Assert.IsTrue(threadSafeConsole.ScrollToEndWhenTextWritten);
} }
[Test] [Test]
public void ScrollToEndWhenPromptWritten_NonThreadSafeConsoleScrollToEndWhenPromptWrittenIsFalse_ReturnsFalse() public void ScrollToEndWhenTextWritten_NonThreadSafeConsoleScrollToEndWhenTextWrittenIsFalse_ReturnsFalse()
{ {
CreateThreadSafeScriptingConsole(); CreateThreadSafeScriptingConsole();
nonThreadSafeScriptingConsole.ScrollToEndWhenPromptWritten = false; nonThreadSafeScriptingConsole.ScrollToEndWhenTextWritten = false;
Assert.IsFalse(threadSafeConsole.ScrollToEndWhenPromptWritten); Assert.IsFalse(threadSafeConsole.ScrollToEndWhenTextWritten);
} }
} }
} }

2
src/AddIns/BackendBindings/Scripting/Test/Utils/FakeScriptingConsole.cs

@ -23,7 +23,7 @@ namespace ICSharpCode.Scripting.Tests.Utils
public string TextToReturnFromReadFirstUnreadLine; public string TextToReturnFromReadFirstUnreadLine;
public bool IsReadLineCalled; public bool IsReadLineCalled;
public bool IsDisposeCalled; public bool IsDisposeCalled;
public bool ScrollToEndWhenPromptWritten { get; set; } public bool ScrollToEndWhenTextWritten { get; set; }
public void SendLine(string text) public void SendLine(string text)
{ {

1
src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PackageManagementConsole.cs

@ -17,7 +17,6 @@ namespace ICSharpCode.PackageManagement.Scripting
{ {
} }
public PackageManagementConsole(TextEditor textEditor) public PackageManagementConsole(TextEditor textEditor)
: this(new ScriptingConsoleTextEditor(textEditor), new ControlDispatcher(textEditor)) : this(new ScriptingConsoleTextEditor(textEditor), new ControlDispatcher(textEditor))
{ {

Loading…
Cancel
Save