add linenoise.readLineStatus to get status (eg: ctrl-D or ctrl-C) (#16977)

* add linenoise.readLineStatus to get status (eg: ctrl-D or ctrl-C)

* changelog
This commit is contained in:
Timothee Cour 2021-02-09 05:25:38 -08:00 • committed by GitHub
commit 630f867bd7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 77 additions and 15 deletions

View file

@ -12,16 +12,18 @@
## (e.g. you can navigate with the arrow keys). On Windows ``system.readLine``
## is used. This suffices because Windows' console already provides the
## wanted functionality.
##
## **Examples:**
##
## .. code-block:: nim
## echo readLineFromStdin("Is Nim awesome? (Y/n):")
## var userResponse: string
## doAssert readLineFromStdin("How are you?:", line = userResponse)
## echo userResponse
when defined(Windows):
runnableExamples:
if false:
echo readLineFromStdin("Is Nim awesome? (Y/n): ")
var line: string
while true:
let ok = readLineFromStdin("How are you? ", line)
if not ok: break # ctrl-C or ctrl-D will cause a break
if line.len > 0: echo line
echo "exiting"
when defined(windows):
proc readLineFromStdin*(prompt: string): string {.
tags: [ReadIOEffect, WriteIOEffect].} =
## Reads a line from stdin.