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")
|
2024-06-17 12:40:13 +01:00
|
|
|
|
|
|
|
-- 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
|
|
|
|
|
|
|
|
---
|
2024-06-17 12:40:13 +01:00
|
|
|
|
|
|
|
### readToEnd
|
|
|
|
|
|
|
|
Reads the entire input from stdin.
|
|
|
|
|
|
|
|
#### Returns
|
|
|
|
|
|
|
|
- The input from stdin
|
|
|
|
|
|
|
|
---
|