关于如何为.NET(C#)控制台应用程序实现制表符完成的任何想法?我的意思是在一个运行的应用程序中然后循环用户输入(如果你运行没有任何参数的ftp.exe),如下所示:
string line = string.Empty; while (line != "exit") { //do something here Console.ReadLine(); }
我知道我可能实际上不能使用readline,但我希望能够在您从用户检索输入的同一点完成制表符.
做一个Console.ReadKey().
如果您获得了Tab,请查看命令缓冲区中的内容,并循环使用可用命令.如果someCommand.Name.BeginsWith(currentinput)
,您有一个胜利者,您可以写入屏幕上的可能命令列表.
如果只有一个(TM),您可以用用户键入的内容替换它:)
看一下Mono项目中的代码 http://tirania.org/blog/archive/2008/Aug-26.html 我前几天玩过它.它做了很多命令行编辑,但我不认为它完成了行.
我创建了一个小型lib来将此功能添加到我制作的应用程序中:
https://github.com/fjunqueira/hinter
它可能不适合您的需求,但您可以随意编辑它.