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

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

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

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

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

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

@ -52,36 +52,36 @@ namespace ICSharpCode.Scripting.Tests.Console @@ -52,36 +52,36 @@ namespace ICSharpCode.Scripting.Tests.Console
}
[Test]
public void Write_WritePromptWhenScrollToPromptIsTrue_TextEditorIsScrolled()
public void Write_WritePromptWhenScrollToEndWhenTextWritten_TextEditorIsScrolled()
{
TestableScriptingConsole.ScrollToEndWhenPromptWritten = true;
TestableScriptingConsole.ScrollToEndWhenTextWritten = true;
TestableScriptingConsole.Write("a", ScriptingStyle.Prompt);
Assert.IsTrue(FakeConsoleTextEditor.IsScrollToEndCalled);
}
[Test]
public void Write_WritePromptWhenScrollToPromptIsFalse_TextEditorIsNotScrolled()
public void Write_WritePromptWhenScrollToEndWhenTextWrittenIsFalse_TextEditorIsNotScrolled()
{
TestableScriptingConsole.ScrollToEndWhenPromptWritten = false;
TestableScriptingConsole.ScrollToEndWhenTextWritten = false;
TestableScriptingConsole.Write("a", ScriptingStyle.Prompt);
Assert.IsFalse(FakeConsoleTextEditor.IsScrollToEndCalled);
}
[Test]
public void Write_WriteErrorWhenScrollToPromptIsTrue_TextEditorIsNotScrolled()
public void Write_WriteErrorWhenScrollToEndWhenTextWrittenIsTrue_TextEditorIsScrolled()
{
TestableScriptingConsole.ScrollToEndWhenPromptWritten = true;
TestableScriptingConsole.ScrollToEndWhenTextWritten = true;
TestableScriptingConsole.Write("a", ScriptingStyle.Error);
Assert.IsFalse(FakeConsoleTextEditor.IsScrollToEndCalled);
Assert.IsTrue(FakeConsoleTextEditor.IsScrollToEndCalled);
}
[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 @@ -355,21 +355,21 @@ namespace ICSharpCode.Scripting.Tests.Console
}
[Test]
public void ScrollToEndWhenPromptWritten_NonThreadSafeConsoleScrollToEndWhenPromptWrittenIsTrue_ReturnsTrue()
public void ScrollToEndWhenTextWritten_NonThreadSafeConsoleScrollToEndWhenTextWrittenIsTrue_ReturnsTrue()
{
CreateThreadSafeScriptingConsole();
nonThreadSafeScriptingConsole.ScrollToEndWhenPromptWritten = true;
nonThreadSafeScriptingConsole.ScrollToEndWhenTextWritten = true;
Assert.IsTrue(threadSafeConsole.ScrollToEndWhenPromptWritten);
Assert.IsTrue(threadSafeConsole.ScrollToEndWhenTextWritten);
}
[Test]
public void ScrollToEndWhenPromptWritten_NonThreadSafeConsoleScrollToEndWhenPromptWrittenIsFalse_ReturnsFalse()
public void ScrollToEndWhenTextWritten_NonThreadSafeConsoleScrollToEndWhenTextWrittenIsFalse_ReturnsFalse()
{
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 @@ -23,7 +23,7 @@ namespace ICSharpCode.Scripting.Tests.Utils
public string TextToReturnFromReadFirstUnreadLine;
public bool IsReadLineCalled;
public bool IsDisposeCalled;
public bool ScrollToEndWhenPromptWritten { get; set; }
public bool ScrollToEndWhenTextWritten { get; set; }
public void SendLine(string text)
{

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

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

Loading…
Cancel
Save