<p dir="auto"><code class="notranslate">vscode.window.showInputBox()</code> lets me accept user input through the command palette, but it is a two step process.  I have to first execute a command and then i have to show the input box.  Ideally, I should be able to prompt and accept input in one command, much in the way the git branch prompt does:</p>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="https://cloud.githubusercontent.com/assets/1487073/13425898/37f9eae0-dfaa-11e5-920f-07caf0807a4d.png"><img src="https://cloud.githubusercontent.com/assets/1487073/13425898/37f9eae0-dfaa-11e5-920f-07caf0807a4d.png" alt="image" style="max-width: 100%;"></a></p>
<p dir="auto">here i'm prompted with "git checkout", if i have a set of branches they are shown in the list, and I can free form type in any text in order to create a new branch.</p>
<p dir="auto">As an extension author I would love to be able to have a similar model. For example, let's say I want to have a list of tasks and each task can take a parameter.</p>
<p dir="auto">myextension create thing1<br>
myextension create thing2</p>
<p dir="auto">in this case i don't want to select "myextension create thing1" and then have an input box.  What i want is to be able to say "myextension thing1 thing1's description".  This is also similar to the extension install experience where i can say <code class="notranslate">ext install myextension</code> where <code class="notranslate">myextension</code> is free form text.</p>
<p dir="auto">If I accept input using</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="window.showInputBox();"><pre class="notranslate"><code class="notranslate">window.showInputBox();
</code></pre></div>
<p dir="auto">Is there any way I can listen to key change events? I am writing an extension and I want to accept an input from the user and I want to autocomplete when the user hits <code class="notranslate">tab</code> like most terminals. If this is not possible inside the inputbox is there any other control I can use to achieve this?</p>