From 4c2be048781246c4ec0ed5f408c49434e1a1dcc6 Mon Sep 17 00:00:00 2001 From: H_Faridmehr Date: Tue, 3 Apr 2018 15:06:00 +0430 Subject: [PATCH] Writing default parameter in console instead of being in background --- ReadLine.sln | 66 ++++++++++++++++++++------------------ src/ReadLine/KeyHandler.cs | 10 +++++- src/ReadLine/ReadLine.cs | 8 ++--- 3 files changed, 45 insertions(+), 39 deletions(-) diff --git a/ReadLine.sln b/ReadLine.sln index 90c6480..c2188e6 100755 --- a/ReadLine.sln +++ b/ReadLine.sln @@ -1,17 +1,16 @@ - Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 -VisualStudioVersion = 15.0.26124.0 +VisualStudioVersion = 15.0.27130.2024 MinimumVisualStudioVersion = 15.0.26124.0 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{06FC0E85-E73C-4DC1-B6FD-A583B7B1DFE4}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReadLine", "src\ReadLine\ReadLine.csproj", "{9EB290C9-BB52-4B24-9779-5A816AC75E18}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ReadLine", "src\ReadLine\ReadLine.csproj", "{9EB290C9-BB52-4B24-9779-5A816AC75E18}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReadLine.Demo", "src\ReadLine.Demo\ReadLine.Demo.csproj", "{4C512FD1-A0E8-4908-B0A4-B0D85947716A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ReadLine.Demo", "src\ReadLine.Demo\ReadLine.Demo.csproj", "{4C512FD1-A0E8-4908-B0A4-B0D85947716A}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{38C56AEB-DB08-4CBF-AAC0-EBFC2B0EE045}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReadLine.Tests", "test\ReadLine.Tests\ReadLine.Tests.csproj", "{631582D9-EEEA-4F9D-8069-71ECA24ED282}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ReadLine.Tests", "test\ReadLine.Tests\ReadLine.Tests.csproj", "{631582D9-EEEA-4F9D-8069-71ECA24ED282}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -22,50 +21,53 @@ Global Release|x64 = Release|x64 Release|x86 = Release|x86 EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {9EB290C9-BB52-4B24-9779-5A816AC75E18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9EB290C9-BB52-4B24-9779-5A816AC75E18}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9EB290C9-BB52-4B24-9779-5A816AC75E18}.Debug|x64.ActiveCfg = Debug|x64 - {9EB290C9-BB52-4B24-9779-5A816AC75E18}.Debug|x64.Build.0 = Debug|x64 - {9EB290C9-BB52-4B24-9779-5A816AC75E18}.Debug|x86.ActiveCfg = Debug|x86 - {9EB290C9-BB52-4B24-9779-5A816AC75E18}.Debug|x86.Build.0 = Debug|x86 + {9EB290C9-BB52-4B24-9779-5A816AC75E18}.Debug|x64.ActiveCfg = Debug|Any CPU + {9EB290C9-BB52-4B24-9779-5A816AC75E18}.Debug|x64.Build.0 = Debug|Any CPU + {9EB290C9-BB52-4B24-9779-5A816AC75E18}.Debug|x86.ActiveCfg = Debug|Any CPU + {9EB290C9-BB52-4B24-9779-5A816AC75E18}.Debug|x86.Build.0 = Debug|Any CPU {9EB290C9-BB52-4B24-9779-5A816AC75E18}.Release|Any CPU.ActiveCfg = Release|Any CPU {9EB290C9-BB52-4B24-9779-5A816AC75E18}.Release|Any CPU.Build.0 = Release|Any CPU - {9EB290C9-BB52-4B24-9779-5A816AC75E18}.Release|x64.ActiveCfg = Release|x64 - {9EB290C9-BB52-4B24-9779-5A816AC75E18}.Release|x64.Build.0 = Release|x64 - {9EB290C9-BB52-4B24-9779-5A816AC75E18}.Release|x86.ActiveCfg = Release|x86 - {9EB290C9-BB52-4B24-9779-5A816AC75E18}.Release|x86.Build.0 = Release|x86 + {9EB290C9-BB52-4B24-9779-5A816AC75E18}.Release|x64.ActiveCfg = Release|Any CPU + {9EB290C9-BB52-4B24-9779-5A816AC75E18}.Release|x64.Build.0 = Release|Any CPU + {9EB290C9-BB52-4B24-9779-5A816AC75E18}.Release|x86.ActiveCfg = Release|Any CPU + {9EB290C9-BB52-4B24-9779-5A816AC75E18}.Release|x86.Build.0 = Release|Any CPU {4C512FD1-A0E8-4908-B0A4-B0D85947716A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4C512FD1-A0E8-4908-B0A4-B0D85947716A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4C512FD1-A0E8-4908-B0A4-B0D85947716A}.Debug|x64.ActiveCfg = Debug|x64 - {4C512FD1-A0E8-4908-B0A4-B0D85947716A}.Debug|x64.Build.0 = Debug|x64 - {4C512FD1-A0E8-4908-B0A4-B0D85947716A}.Debug|x86.ActiveCfg = Debug|x86 - {4C512FD1-A0E8-4908-B0A4-B0D85947716A}.Debug|x86.Build.0 = Debug|x86 + {4C512FD1-A0E8-4908-B0A4-B0D85947716A}.Debug|x64.ActiveCfg = Debug|Any CPU + {4C512FD1-A0E8-4908-B0A4-B0D85947716A}.Debug|x64.Build.0 = Debug|Any CPU + {4C512FD1-A0E8-4908-B0A4-B0D85947716A}.Debug|x86.ActiveCfg = Debug|Any CPU + {4C512FD1-A0E8-4908-B0A4-B0D85947716A}.Debug|x86.Build.0 = Debug|Any CPU {4C512FD1-A0E8-4908-B0A4-B0D85947716A}.Release|Any CPU.ActiveCfg = Release|Any CPU {4C512FD1-A0E8-4908-B0A4-B0D85947716A}.Release|Any CPU.Build.0 = Release|Any CPU - {4C512FD1-A0E8-4908-B0A4-B0D85947716A}.Release|x64.ActiveCfg = Release|x64 - {4C512FD1-A0E8-4908-B0A4-B0D85947716A}.Release|x64.Build.0 = Release|x64 - {4C512FD1-A0E8-4908-B0A4-B0D85947716A}.Release|x86.ActiveCfg = Release|x86 - {4C512FD1-A0E8-4908-B0A4-B0D85947716A}.Release|x86.Build.0 = Release|x86 + {4C512FD1-A0E8-4908-B0A4-B0D85947716A}.Release|x64.ActiveCfg = Release|Any CPU + {4C512FD1-A0E8-4908-B0A4-B0D85947716A}.Release|x64.Build.0 = Release|Any CPU + {4C512FD1-A0E8-4908-B0A4-B0D85947716A}.Release|x86.ActiveCfg = Release|Any CPU + {4C512FD1-A0E8-4908-B0A4-B0D85947716A}.Release|x86.Build.0 = Release|Any CPU {631582D9-EEEA-4F9D-8069-71ECA24ED282}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {631582D9-EEEA-4F9D-8069-71ECA24ED282}.Debug|Any CPU.Build.0 = Debug|Any CPU - {631582D9-EEEA-4F9D-8069-71ECA24ED282}.Debug|x64.ActiveCfg = Debug|x64 - {631582D9-EEEA-4F9D-8069-71ECA24ED282}.Debug|x64.Build.0 = Debug|x64 - {631582D9-EEEA-4F9D-8069-71ECA24ED282}.Debug|x86.ActiveCfg = Debug|x86 - {631582D9-EEEA-4F9D-8069-71ECA24ED282}.Debug|x86.Build.0 = Debug|x86 + {631582D9-EEEA-4F9D-8069-71ECA24ED282}.Debug|x64.ActiveCfg = Debug|Any CPU + {631582D9-EEEA-4F9D-8069-71ECA24ED282}.Debug|x64.Build.0 = Debug|Any CPU + {631582D9-EEEA-4F9D-8069-71ECA24ED282}.Debug|x86.ActiveCfg = Debug|Any CPU + {631582D9-EEEA-4F9D-8069-71ECA24ED282}.Debug|x86.Build.0 = Debug|Any CPU {631582D9-EEEA-4F9D-8069-71ECA24ED282}.Release|Any CPU.ActiveCfg = Release|Any CPU {631582D9-EEEA-4F9D-8069-71ECA24ED282}.Release|Any CPU.Build.0 = Release|Any CPU - {631582D9-EEEA-4F9D-8069-71ECA24ED282}.Release|x64.ActiveCfg = Release|x64 - {631582D9-EEEA-4F9D-8069-71ECA24ED282}.Release|x64.Build.0 = Release|x64 - {631582D9-EEEA-4F9D-8069-71ECA24ED282}.Release|x86.ActiveCfg = Release|x86 - {631582D9-EEEA-4F9D-8069-71ECA24ED282}.Release|x86.Build.0 = Release|x86 + {631582D9-EEEA-4F9D-8069-71ECA24ED282}.Release|x64.ActiveCfg = Release|Any CPU + {631582D9-EEEA-4F9D-8069-71ECA24ED282}.Release|x64.Build.0 = Release|Any CPU + {631582D9-EEEA-4F9D-8069-71ECA24ED282}.Release|x86.ActiveCfg = Release|Any CPU + {631582D9-EEEA-4F9D-8069-71ECA24ED282}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution {9EB290C9-BB52-4B24-9779-5A816AC75E18} = {06FC0E85-E73C-4DC1-B6FD-A583B7B1DFE4} {4C512FD1-A0E8-4908-B0A4-B0D85947716A} = {06FC0E85-E73C-4DC1-B6FD-A583B7B1DFE4} {631582D9-EEEA-4F9D-8069-71ECA24ED282} = {38C56AEB-DB08-4CBF-AAC0-EBFC2B0EE045} EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {DF00049C-B9BC-4974-BB55-D79F676F006A} + EndGlobalSection EndGlobal diff --git a/src/ReadLine/KeyHandler.cs b/src/ReadLine/KeyHandler.cs index 41dd776..8b71eab 100644 --- a/src/ReadLine/KeyHandler.cs +++ b/src/ReadLine/KeyHandler.cs @@ -219,7 +219,7 @@ public string Text } } - public KeyHandler(IConsole console, List history, IAutoCompleteHandler autoCompleteHandler) + public KeyHandler(IConsole console, List history, IAutoCompleteHandler autoCompleteHandler, string @default) { Console2 = console; @@ -228,6 +228,8 @@ public KeyHandler(IConsole console, List history, IAutoCompleteHandler a _text = new StringBuilder(); _keyActions = new Dictionary(); + WriteNewString(@default); + _keyActions["LeftArrow"] = MoveCursorLeft; _keyActions["Home"] = MoveCursorHome; _keyActions["End"] = MoveCursorEnd; @@ -298,6 +300,12 @@ public KeyHandler(IConsole console, List history, IAutoCompleteHandler a }; } + public KeyHandler(IConsole console, List history, IAutoCompleteHandler autoCompleteHandler) + : this(console, history, autoCompleteHandler, string.Empty) + { + + } + public void Handle(ConsoleKeyInfo keyInfo) { _keyInfo = keyInfo; diff --git a/src/ReadLine/ReadLine.cs b/src/ReadLine/ReadLine.cs index 157cf66..92c81f2 100755 --- a/src/ReadLine/ReadLine.cs +++ b/src/ReadLine/ReadLine.cs @@ -23,14 +23,10 @@ static ReadLine() public static string Read(string prompt = "", string @default = "") { Console.Write(prompt); - KeyHandler keyHandler = new KeyHandler(new Console2(), _history, AutoCompletionHandler); + KeyHandler keyHandler = new KeyHandler(new Console2(), _history, AutoCompletionHandler, @default); string text = GetText(keyHandler); - if (String.IsNullOrWhiteSpace(text) && !String.IsNullOrWhiteSpace(@default)) - { - text = @default; - } - else + if (!String.IsNullOrWhiteSpace(text)) { if (HistoryEnabled) _history.Add(text);