summaryrefslogtreecommitdiff
path: root/lib/lua-term/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'lib/lua-term/README.md')
-rw-r--r--lib/lua-term/README.md189
1 files changed, 189 insertions, 0 deletions
diff --git a/lib/lua-term/README.md b/lib/lua-term/README.md
new file mode 100644
index 00000000..edc805b3
--- /dev/null
+++ b/lib/lua-term/README.md
@@ -0,0 +1,189 @@
+Overview
+--------
+
+lua-term is a Lua module for manipulating a terminal.
+
+Installation
+------------
+
+lua-term is available on Luarocks.
+
+
+## OpenBSD
+
+lua-term is available as an OpenBSD package. Use the proper Lua flavour to
+get the package for your Lua version:
+
+```
+# For Lua 5.1
+$ doas pkg_add -r lua-term
+# For Lua 5.2
+$ doas pkg_add -r lua52-term
+# For Lua 5.3
+$ doas pkg_add -r lua53-term
+```
+
+Or install from ports:
+
+```
+$ cd /usr/ports/devel/lua-term
+$ env FLAVOR=lua51 doas make install
+```
+
+## openSUSE
+lua-term is available in the `devel:languages:lua` devel project on [OBS](https://build.opensuse.org/package/show/devel:languages:lua/lua-luaterm).
+
+Add the repository and install lua-term via:
+```
+zypper addrepo http://download.opensuse.org/repositories/devel:/languages:/lua/openSUSE_Tumbleweed/devel:languages:lua.repo
+zypper refresh
+zypper in lua-luaterm
+```
+
+Adjust the repository URL to your version of openSUSE by substituting `openSUSE_Tumbleweed` with your actual version eg `opensSUSE_42.2`.
+
+Usage
+-----
+
+```lua
+ local term = require 'term'
+ local colors = term.colors -- or require 'term.colors'
+
+ print(term.isatty(io.stdout)) -- true if standard output goes to the terminal
+
+ print(colors.red 'hello')
+ print(colors.red .. 'hello' .. colors.reset)
+ print(colors.red, 'hello', colors.reset)
+
+ -- The following functions take an optional IO handle (like io.stdout);
+ -- io.stdout is the default if you don't specify one
+ term.clear() -- clears the screen
+ term.cleareol() -- clears from the cursor to the end of the line
+ --term.cursor.goto(1, 1) -- It will fail in Lua >= 5.2 because goto is a reserved word.
+ term.cursor['goto'](1, 1) -- This will work on Lua >= 5.2, please use jump instead
+ term.cursor.jump(1, 1) -- jump is just an alias for goto
+ term.cursor.jump(io.stdout, 1, 1)
+ term.cursor.goup(1)
+ term.cursor.godown(1)
+ term.cursor.goright(1)
+ term.cursor.goleft(1)
+ term.cursor.save() -- save position
+ term.cursor.restore() -- restore position
+```
+
+`term` Functions
+--------------
+
+Some functions in lua-term take an optional file handle argument; if this is
+not provided, `io.stdout` is used.
+
+### `term.clear([opt_file])`
+
+Clear the terminal's contents.
+
+### `term.cleareol([opt_file])`
+
+Clear from the current cursor position to the end of the current line.
+
+### `term.isatty(file)`
+
+Returns `true` if `file` is a TTY; `false` otherwise.
+
+*NOTE*: This function has been deprecated in favor of luaposix's implementation.
+If you would like this functionality in the future, please use luaposix.
+
+`term.colors` Values
+------------------
+
+The following values are available in `term.colors`:
+
+### Terminal Attributes
+
+ * reset
+ * clear (a synonym for reset)
+ * default (a synonym for reset)
+ * bright
+ * dim
+ * underscore
+ * blink
+ * reverse
+ * hidden
+
+### Foreground Colors
+
+ * black
+ * red
+ * green
+ * yellow
+ * blue
+ * magenta
+ * cyan
+ * white
+
+### Background Colors
+
+ * onblack
+ * onred
+ * ongreen
+ * onyellow
+ * onblue
+ * onmagenta
+ * oncyan
+ * onwhite
+
+Every value in `term.colors` may be used in several ways:
+
+### As a Function
+
+```lua
+print(colors.red 'hello')
+```
+
+### As a String
+
+```lua
+print(colors.red .. 'hello' .. colors.reset)
+print(colors.red, 'hello', colors.reset)
+```
+
+`term.cursor` Functions
+---------------------
+
+### `term.cursor.goto([opt_file], x, y)`
+
+Place the cursor at (`x`, `y`).
+
+### `term.cursor.jump([opt_file], x, y)`
+
+An alias for `term.cursor.goto`.
+
+### `term.cursor.goup([opt_file], nlines)`
+
+Moves the cursor up `nlines` lines.
+
+### `term.cursor.godown([opt_file], nlines)`
+
+Moves the cursor down `nlines` lines.
+
+### `term.cursor.goright([opt_file], ncols)`
+
+Moves the cursor right `ncols` columns.
+
+### `term.cursor.goleft([opt_file], ncols)`
+
+Moves the cursor left `ncols` columns.
+
+### `term.cursor.save([opt_file])`
+
+Saves the cursor position.
+
+### `term.cursor.restore([opt_file])`
+
+Restores the cursor position.
+
+Alternatives
+------------
+
+If you are looking to simply provide coloration to a terminal application and would
+like to use a more "tag-like" API (ex. `colors '%{red}hello%{reset}'`), there is a Lua rock
+named ansicolors: https://github.com/kikito/ansicolors.lua