Добавлена документация по доступному функционалу.

This commit is contained in:
Alexander Zhirov 2026-01-05 01:06:05 +03:00
parent 5bd192a788
commit 80518ee8ed
Signed by: alexander
GPG key ID: C8D8BE544A27C511
3 changed files with 142 additions and 0 deletions

19
doc/README.md Normal file
View file

@ -0,0 +1,19 @@
# Документация Ncurses User Interface Library
`ncui` — библиотека для построения TUI-приложений на D поверх ncurses.
---
## Содержание
### Конфигурация
- [SessionConfig](pages/session-config.md)
### Проверки и ошибки
- [Проверки ncurses-вызовов](pages/checks.md)
---
## Статус документации
Документация растёт вместе с библиотекой. Разделы могут дополняться по мере появления новых модулей и возможностей.

43
doc/pages/checks.md Normal file
View file

@ -0,0 +1,43 @@
# Проверки ncurses-вызовов
Функции для проверяемых ncurses-вызовов и единых сообщений об ошибках.
---
## ncuiExpect
Вызывает `fn(args)` и проверяет `result == expected`.
- Тип `expected` должен совпадать с типом результата `fn(args)`.
- При ошибке выбрасывается исключение с местом вызова.
- Возвращается `result`.
---
## ncuiExpectMsg
Вызывает `fn(args)` и проверяет `result == expected`, добавляя `message`.
- Тип `expected` должен совпадать с типом результата `fn(args)`.
- При ошибке выбрасывается исключение с местом вызова.
- Возвращается `result`.
---
## ncuiNotErr
Вызывает `fn(args)` и проверяет `result != ERR`.
- `fn(args)` должна возвращать тип `ERR`.
- При ошибке выбрасывается исключение с местом вызова.
- Возвращается `result`.
---
## ncuiNotNull
Вызывает `fn(args)` и проверяет `result !is null`.
- `fn(args)` должна возвращать указатель.
- При ошибке выбрасывается исключение с местом вызова.
- Возвращается `result`.

View file

@ -0,0 +1,80 @@
# SessionConfig
`SessionConfig` — структура параметров, определяющая режимы работы ncurses-сессии при создании `Session`.
```d
struct SessionConfig
{
InputMode mode = InputMode.raw;
Cursor cursor = Cursor.normal;
Echo echo = Echo.on;
Keypad keypad = Keypad.on;
int escDelay = 50;
}
```
---
## Параметры
### mode: InputMode
Режим обработки ввода терминалом.
Значения:
* `InputMode.raw` — посимвольный ввод с минимальной обработкой терминалом.
* `InputMode.cbreak` — посимвольный ввод с сохранением части tty-обработки.
* `InputMode.cooked` — канонический построчный ввод (ввод доступен после Enter).
Значение по умолчанию: `InputMode.raw`.
---
### cursor: Cursor
Режим видимости/типа курсора.
Значения:
* `Cursor.hidden` — курсор скрыт.
* `Cursor.normal` — обычный курсор.
* `Cursor.high` — курсор повышенной заметности (поддержка зависит от терминала).
Значение по умолчанию: `Cursor.normal`.
---
### echo: Echo
Режим эхо ввода (отображение вводимых символов терминалом).
Значения:
* `Echo.on` — вводимые символы отображаются.
* `Echo.off` — вводимые символы не отображаются.
Значение по умолчанию: `Echo.on`.
---
### keypad: Keypad
Режим обработки специальных клавиш (преобразование в коды `KEY_*`).
Значения:
* `Keypad.on` — специальные клавиши возвращаются как `KEY_*` (стрелки, Home/End, PgUp/PgDn, F1..F12 и т.п.).
* `Keypad.off` — специальные клавиши могут возвращаться как escape-последовательности.
Значение по умолчанию: `Keypad.on`.
---
### escDelay: int
Задержка распознавания одиночного `Esc` и escape-последовательностей.
Единицы измерения: миллисекунды.
Значение по умолчанию: `50`.