tomo/docs/README.md
2024-09-07 00:50:54 -04:00

2.9 KiB

Documentation

This is an overview of the documentation on Tomo.

Topics

A few topics that are documented:

Types

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:

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:

>> ask("What's your name? ")
= "Arthur Dent"

exit

Description:
Exits the program with a given status and optionally prints a message.

Usage:

ask(message:Text = "", status:Int32 = 0_i32) -> Void

Parameters:

  • message: If nonempty, this message will be printed (with a newline) before exiting.
  • status: The status code that the program with exit with.

Returns:
This function never returns.

Example:

exit(status=1, "Goodbye forever!")

say

Description:
Prints a message to the console.

Usage:

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:

say("Hello ", newline=no)
say("world!")

fail

Description:
Prints a message to the console, aborts the program, and prints a stack trace.

Usage:

fail(message:Text) -> Abort

Parameters:

  • message: The error message to print.

Returns:
Nothing, aborts the program.

Example:

fail("Oh no!")