docs/pages/api-reference/stdio.md

140 lines
2.6 KiB
Markdown
Raw Normal View History

2023-07-22 13:25:44 +01:00
# Stdio
Built-in standard input / output & utility functions
#### Example usage
```lua
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 the entire input from stdin
local input = stdio.readToEnd()
2023-07-22 13:25:44 +01:00
```
## Functions
### prompt
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
---
### color
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
```lua
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
---
### style
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
```lua
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
---
### format
Formats arguments into a human-readable string with syntax highlighting for tables.
#### Parameters
- `...` The values to format
#### Returns
- The formatted string
---
### write
Writes a string directly to stdout, without any newline.
#### Parameters
- `s` The string to write to stdout
---
### ewrite
Writes a string directly to stderr, without any newline.
#### Parameters
- `s` The string to write to stderr
---
### readToEnd
Reads the entire input from stdin.
#### Returns
- The input from stdin
---