Fazer a aplicação vitória C # console para mostrar comando posibile quando o usuário atingiu TAB

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

  •  10-07-2019
  •  | 
  •  

Pergunta

Estou desenvolvendo aplicativo de console em C # com muitos parâmetros e em algum momento eu como programador não consegue se lembrar combinação de parâmetros para aplicação chamada no caminho certo, eu não posso mesmo e pensar como os usuários irão fazê-lo. Então eu perguntar Você está lá e qual será a maneira correta (escolástica) para fazer meu ato aplicativo como aqueles UNIX OS. Sabe o que eu tentando fazer é que quando aplicativo de chamada do usuário e, depois disso, quando atingiu um TAB, em seguida, obter a lista de comandos possíveis, depois escolha um dos comandos novamente bateu um guia e obter a lista referente de parâmetros e outros comandos.

Foi útil?

Solução

Desenvolva a sua aplicação como um PowerShell cmdlet . Powershell já tem infra-estrutura de guia-conclusão embutido. Por exemplo, se você faz o seguinte para a dir cmdlet:

dir - Tab

, em seguida, bater Tab repetidamente, percorrerá as opções possíveis para o comando dir:

  • dir -Path
  • dir -LiteralPath
  • dir -Filter
  • dir -Include

Etcetera.

Outras dicas

Eu acho que a maneira mais fácil de fazer isso é usar o método Console.ReadKey . Isto irá permitir que você obtenha a tecla tab, logo que ele é pressionado pelo usuário. Você pode, então, lidar com isso keystroke e se é um guia, determinar o contexto atual e imprimir os comandos conforme o caso.

Se eu estou entendendo corretamente, você quer imitar a conclusão da linha de comando programável em zsh (shell Z).

Infelizmente, esta funcionalidade está integrada no shell, embora também é programável; a conclusão que acontece lá está realmente acontecendo antes que o programa foi iniciado.

Se você estava executando zsh no Windows, que deve ser possível com Cygwin, você pode programá-lo para ajudar na conclusão de comando.

Caso contrário, eu acho que sua única opção é começar uma espécie de sessão interativa uma vez que o programa foi iniciado; por exemplo, imprimir todas as opções quando o programa é iniciado, e aguardar que o usuário digite um dos parâmetros, em seguida, mostrar todas as seguintes combinações de parâmetros possíveis.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top