Skip to content

stdio

Built-in standard input / output & utility functions

local stdio = require("@lune/stdio")
-- Prompting the user for basic input
local text: string = stdio.prompt("text", "Please write some text")
local confirmed: boolean = stdio.prompt("confirm", "Please confirm this action")
-- Writing directly to stdout or stderr, without the auto-formatting of print/warn/error
stdio.write("Hello, ")
stdio.write("World! ")
stdio.write("All on the same line")
stdio.ewrite("\nAnd some error text, too")
-- Reading a single line from stdin
local line = stdio.readLine()
-- Reading the entire input from stdin
local input = stdio.readToEnd()

must_use

Prompts for user input using the wanted kind of prompt:

  • "text" - Prompts for a plain text string from the user
  • "confirm" - Prompts the user to confirm with y / n (yes / no)
  • "select" - Prompts the user to select one value from a list
  • "multiselect" - Prompts the user to select one or more values from a list
  • nil - Equivalent to "text" with no extra arguments

Parameters

  • kind - The kind of prompt to use
  • message - The message to show the user
  • defaultOrOptions - The default value for the prompt, or options to choose from for selection prompts
function stdio.color(color: Color): string

must_use

Return an ANSI string that can be used to modify the persistent output color.

Pass "reset" to get a string that can reset the persistent output color.

Example usage

stdio.write(stdio.color("red"))
print("This text will be red")
stdio.write(stdio.color("reset"))
print("This text will be normal")

Parameters

  • color - The color to use

Returns

  • A printable ANSI string
function stdio.style(style: Style): string

must_use

Return an ANSI string that can be used to modify the persistent output style.

Pass "reset" to get a string that can reset the persistent output style.

Example usage

stdio.write(stdio.style("bold"))
print("This text will be bold")
stdio.write(stdio.style("reset"))
print("This text will be normal")

Parameters

  • style - The style to use

Returns

  • A printable ANSI string
function stdio.format(...: any): string

must_use

Formats arguments into a human-readable string with syntax highlighting for tables.

Parameters

  • ... - The values to format

Returns

  • The formatted string
function stdio.write(s: string) end

Writes a string directly to stdout, without any newline.

Parameters

  • s - The string to write to stdout
function stdio.ewrite(s: string) end

Writes a string directly to stderr, without any newline.

Parameters

  • s - The string to write to stderr
function stdio.readLine(): string

must_use

Reads a single line from stdin.

If stdin is closed, returns all input up until its closure.

Returns

  • The input from stdin
function stdio.readToEnd(): string

must_use

Reads the entire input from stdin.

Returns

  • The input from stdin