aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2024-09-04 15:03:54 -0400
committerBruce Hill <bruce@bruce-hill.com>2024-09-04 15:03:54 -0400
commit11b484a6a2077ba6bd8fdbbf46e589449cc5e251 (patch)
tree7809960c4e6954e028035e2b46011f1e2b7ff594 /docs
parent05bc754679ca5b136b2f3a70b791db71e9260234 (diff)
Document ask()
Diffstat (limited to 'docs')
-rw-r--r--docs/README.md41
1 files changed, 39 insertions, 2 deletions
diff --git a/docs/README.md b/docs/README.md
index 2f0dabb0..3c4e3d62 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -33,6 +33,41 @@ Information about Tomo's built-in types can be found here:
## Built-in Functions
+### `ask`
+
+**Description:**
+Gets a line of user input text with a prompt.
+
+**Usage:**
+```markdown
+ask(prompt:Text, bold:Bool = yes, force_tty:Bool = yes) -> Void
+```
+
+**Parameters:**
+
+- `prompt`: The text to print as a prompt before getting the input.
+- `bold`: Whether or not to print make the prompt appear bold on a console
+ using the ANSI escape sequence `\x1b[1m`.
+- `force_tty`: When a program is receiving input from a pipe or writing its
+ output to a pipe, this flag (which is enabled by default) forces the program
+ to write the prompt to `/dev/tty` and read the input from `/dev/tty`, which
+ circumvents the pipe. This means that `foo | ./tomo your-program | baz` will
+ still show a visible prompt and read user input, despite the pipes. Setting
+ this flag to `no` will mean that the prompt is written to `stdout` and input
+ is read from `stdin`, even if those are pipes.
+
+**Returns:**
+A line of user input text without a trailing newline, or empty text if
+something went wrong (e.g. the user hit `Ctrl-D`).
+
+**Example:**
+```markdown
+>> ask("What's your name? ")
+= "Arthur Dent"
+```
+
+---
+
### `say`
**Description:**
@@ -40,19 +75,21 @@ Prints a message to the console.
**Usage:**
```markdown
-say(text:Text) -> Void
+say(text:Text, newline:Bool = yes) -> Void
```
**Parameters:**
- `text`: The text to print.
+- `newline`: Whether or not to print a newline after the text.
**Returns:**
Nothing.
**Example:**
```markdown
-say("Hello world!")
+say("Hello ", newline=no)
+say("world!")
```
---