impure/rdstdin

  Source   Edit

This module contains code for reading from stdin. On UNIX the linenoise library is wrapped and set up to provide default key bindings (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.

Example: cmd: -r:off

import impure/rdstdin
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"

Procs

proc readLineFromStdin(prompt: string): string {.inline, ...raises: [IOError],
    tags: [ReadIOEffect, WriteIOEffect].}
  Source   Edit
proc readLineFromStdin(prompt: string; line: var string): bool {.
    ...tags: [ReadIOEffect, WriteIOEffect], raises: [].}
  Source   Edit