Сделайте консольное приложение win C # таким, чтобы оно показывало команду posibile, когда пользователь нажимает TAB
-
10-07-2019 - |
Вопрос
Я разрабатываю консольное приложение на C # с большим количеством параметров, и иногда я, как разработчик, не могу вспомнить комбинацию параметров для правильного вызова приложения, я даже не могу и подумать, как пользователи будут это делать.Итак, я спрашиваю Вас, есть ли и каков будет правильный (схоластический) способ заставить мое приложение действовать подобно этим ОС UNIX.Вы знаете, чего я пытаюсь добиться, так это того, что когда пользователь вызывает приложение и после этого нажимает на вкладку, то получает список возможных команд, после выбора одной из команд снова нажимает на вкладку и получает ссылочный список параметров и других команд.
Решение
Разработайте свое приложение как Командлет PowerShell.В Powershell уже встроена инфраструктура завершения работы с вкладками.Например, если вы выполните следующие действия для командлета dir:
dir -
Вкладка
затем ударяю Вкладка неоднократно будет перебирать возможные варианты для dir
команда:
- dir -Путь
- dir -Буквальный путь
- реж -Фильтр
- реж -Включить
И так далее.
Другие советы
Я думаю, что самый простой способ сделать это - использовать Метод Console.ReadKey . Это позволит вам получить клавишу табуляции, как только она нажата пользователем. Затем вы можете обработать это нажатие клавиши и, если это вкладка, определить текущий контекст и распечатать соответствующие команды.
Если я правильно понимаю, вы хотите имитировать программируемое завершение командной строки в zsh (оболочка Z).
К сожалению, эта функциональность встроена в оболочку, хотя она также является программируемой; завершение, которое происходит там, на самом деле происходит до запуска программы.
Если вы работали с zsh в Windows, что должно быть возможно в Cygwin, вы можете запрограммировать его, чтобы помочь с завершением командной строки.
В противном случае, я думаю, что ваш единственный вариант - запустить своего рода интерактивный сеанс после запуска программы; например, распечатать все параметры при запуске программы и подождать, пока пользователь введет один из параметров, а затем показать все следующие возможные комбинации параметров.