Ответ 1
Взгляните на этот код из проекта Mono http://tirania.org/blog/archive/2008/Aug-26.html На днях я играл с ним. Он выполняет много команд редактирования команд, но я не думаю, что это завершение линии.
Любые идеи о том, как реализовать завершение вкладки для консольного приложения .NET(С#)? И я имею в виду в приложении, которое запускается, а затем петли для ввода пользователя (например, если вы запускаете ftp.exe без каких-либо аргументов), например:
string line = string.Empty;
while (line != "exit")
{
//do something here
Console.ReadLine();
}
Я знаю, что я, вероятно, не мог использовать readline, но я хотел бы иметь возможность делать вкладку в той же точке, где вы извлекаете входные данные от пользователя.
Взгляните на этот код из проекта Mono http://tirania.org/blog/archive/2008/Aug-26.html На днях я играл с ним. Он выполняет много команд редактирования команд, но я не думаю, что это завершение линии.
Сделайте консоль .ReadKey().
Если вы получаете вкладку, посмотрите, что у вас есть в буфере команд, и пропустите доступные команды. Если someCommand.Name.BeginsWith(currentinput)
, у вас есть победитель, и вы можете написать для отображения списка возможных команд.
Если есть только одна (TM), вы можете заменить ее тем, что пользователь набрал:)
Я создал небольшую библиотеку, чтобы добавить эту функциональность в приложение, которое я сделал:
https://github.com/fjunqueira/hinter
Это может не соответствовать вашим потребностям, но вы можете свободно редактировать его.
https://github.com/tonerdo/readline - это то, что вам нужно. отличная библиотека, доступная как нюгет от талантливого разработчика.