Private/ReadInputPrompt.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using namespace Microsoft.PowerShell.EditorServices.Protocol.MessageProtocol
using namespace Microsoft.PowerShell.EditorServices.Protocol.Messages

function ReadInputPrompt {
    param([string]$Prompt)
    end {
        $result = $psEditor.
            Components.
            Get([IMessageSender]).SendRequest(
                [ShowInputPromptRequest]::Type,
                [ShowInputPromptRequest]@{
                    Name  = $Prompt
                    Label = $Prompt
                },
                $true).
            Result

        if (-not $result.PromptCanceled) {
            $result.ResponseText
        }
    }
}