예제 #1
0
파일: stdio.cs 프로젝트: fjiang2/sqlcon
        public static string ReadTabLine(ITabCompletion completion)
        {
            ConsoleKeyInfo keyInfo = Console.ReadKey(true);
            StringBuilder builder = new StringBuilder();

            while (keyInfo.Key != ConsoleKey.Enter)
            {
                char ch = keyInfo.KeyChar;

                switch (keyInfo.Key)
                {
                    case ConsoleKey.Spacebar:
                        break;

                    case ConsoleKey.Tab:
                        completion.TabCandidates(builder.ToString());
                        break;

                    case ConsoleKey.LeftArrow:
                    case ConsoleKey.RightArrow:
                        break;

                    case ConsoleKey.Insert:
                        break;

                    case ConsoleKey.Backspace:
                    case ConsoleKey.Delete:
                        break;
                }

                builder.Append(ch);
                if (writer != null)
                {
                    writer.Write(ch);
                    writer.Flush();
                }

                keyInfo = Console.ReadKey();
            };

            if (writer != null)
            {
                writer.WriteLine();
                writer.Flush();
            }

            return builder.ToString();
        }