Сделайте консольное приложение win C # таким, чтобы оно показывало команду posibile, когда пользователь нажимает TAB

StackOverflow https://stackoverflow.com/questions/1821042

  •  10-07-2019
  •  | 
  •  

Вопрос

Я разрабатываю консольное приложение на C # с большим количеством параметров, и иногда я, как разработчик, не могу вспомнить комбинацию параметров для правильного вызова приложения, я даже не могу и подумать, как пользователи будут это делать.Итак, я спрашиваю Вас, есть ли и каков будет правильный (схоластический) способ заставить мое приложение действовать подобно этим ОС UNIX.Вы знаете, чего я пытаюсь добиться, так это того, что когда пользователь вызывает приложение и после этого нажимает на вкладку, то получает список возможных команд, после выбора одной из команд снова нажимает на вкладку и получает ссылочный список параметров и других команд.

Это было полезно?

Решение

Разработайте свое приложение как Командлет PowerShell.В Powershell уже встроена инфраструктура завершения работы с вкладками.Например, если вы выполните следующие действия для командлета dir:

dir -Вкладка

затем ударяю Вкладка неоднократно будет перебирать возможные варианты для dir команда:

  • dir -Путь
  • dir -Буквальный путь
  • реж -Фильтр
  • реж -Включить

И так далее.

Другие советы

Я думаю, что самый простой способ сделать это - использовать Метод Console.ReadKey . Это позволит вам получить клавишу табуляции, как только она нажата пользователем. Затем вы можете обработать это нажатие клавиши и, если это вкладка, определить текущий контекст и распечатать соответствующие команды.

Если я правильно понимаю, вы хотите имитировать программируемое завершение командной строки в zsh (оболочка Z).

К сожалению, эта функциональность встроена в оболочку, хотя она также является программируемой; завершение, которое происходит там, на самом деле происходит до запуска программы.

Если вы работали с zsh в Windows, что должно быть возможно в Cygwin, вы можете запрограммировать его, чтобы помочь с завершением командной строки.

В противном случае, я думаю, что ваш единственный вариант - запустить своего рода интерактивный сеанс после запуска программы; например, распечатать все параметры при запуске программы и подождать, пока пользователь введет один из параметров, а затем показать все следующие возможные комбинации параметров.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top