OpenComputers/Term API
Базовый интерфейс для вывода текста на монитор и ввода пользовательских данных.



`term.isAvailable(): boolean`


Возвращает `true`

если Term API доступен. Т.е. когда подключен "основной" монитор.

Другими словами, если функции `term.read`

и `term.write`

будут что-нибудь делать.



`term.getCursor(): number, number`


Возвращает позицию курсора.



`term.setCursor(col: number, row: number)`


Перемещает курсор в заданные координаты.



`term.getCursorBlink(): boolean`


Возвращает `true`

если курсор мигает. Т.е. работает в режиме, когда он каждые полсекунды меняет свой вид между заполненным блоком и пробелом.



`term.setCursorBlink(enabled: boolean)`


Включает/выключает мигание курсора.



`term.clear()`


Очищает экран, и перемещает курсор в координаты (1, 1).



`term.clearLine()`


Очищает полностью линию, в которой находится курсор, и перемещает его в начало (x = 1).



`term.read([history: table[, dobreak:boolean[, hint:table or function[, pwchar:string]]]]): string`


Считывает текст из терминала, т.е. позволяет пользователю ввести данные. К примеру, эта функция используется шеллом (см. Shell API) и интерпретатором Lua для пользовательского ввода.

При этом, текущая строка начиная с позиции курсора становится доступна для редактирования. Пользователь может перемещать курсор стрелками `←`/`→` и клавишами `Home`/`End`.

Необязательный параметр — таблица `history`

. Она определяет историю пользовательского ввода. Т.е. пользователь сможет вернуться к введенному ранее тексту при помощи стрелок `↑`/`↓`. Пример — ввод команд в шелл или интерпретатор Lua.

Введенный пользователем текст добавляется в конец таблицы.

Если параметр `dobreak`

равен `false`

- после нажатия на `↵ Enter`, курсор не будет перемещен на новую строку. Значение `nil`

эквивалентно `true`

.

Параметр `hint`

используется для автодополнения ввода (`Tab ↹`). Он может быть таблицей со строками, или функцией, которая возвращает таблицу со строками и принимает два аргумента: введенный текст и позицию в этом тексте (т.е. сигнатура функции выглядит так: `function(line:string, pos:number):table`

).

Параметр `pwchar`

- это символ для маскировки ввода. Если вы передадите в него строку, то весь вводимый пользователем текст будет скрываться первым символом этой строки. Например параметр `"*"`

будет маскировать текст звездочками.

Функция возвращает строку, если ввод был успешным. Иначе — `nil`

(если пользователь нажал `Ctrl` + `C` или `Ctrl` + `D`, или терминал стал недоступен).

*Примечание*: функция использует `io.stdin:read()`

.



`term.write(value: string[, wrap: boolean])`


Выводит текст (с переносами по словам, если задан параметр `wrap`

) в терминал, начиная с текущей позиции курсора. При выводе курсор соответственно сдвигается. Функция автоматически избавляется от табуляции в тексте (при помощи `text.detab`

). При достижении текстом нижнего края экрана (когда `wrap = true`

), изображение сдвигается вверх на одну строку.

Вправо изображение не сдвигается (когда выводится длинный текст без параметра `wrap`

).

*Примечание*: функция использует `io.stdout:write()`

.