Апдейт 0.15.3:
Windows /
Linux /
OS X /
PyPi
С момента последнего отчета в этой ветке накопилась целая куча фиксов:
- Поправлено задание нескольких альтернативных шрифтов в одном вызове set() (issue #34).
- Поправлена генерация Box Drawing/Block Elements тайлов для альтернативных шрифтов (issue #32).
- Поправлено добавление больших тайлов-спрайтов (issue #30).
- Поправлена неоптимальная работа в случае с большим количеством отсутствуюших в шрифте символов.
- Добавлена функция font(), которой можно задать текущий шрифт по имени, аналогично цвету/слою (issue #33).
- Враппер Python ищет .dll в том числе и рядом с бинарником (теперь можно паковать в standalone .exe)
- Для TrueType шрифтов добавлен параметр hinting (), разные шрифты выглядят лучше с тем или иным. Дефолтный теперь native.
- Поправлен баг с зависанием на повторном open() под MacOS.
- Поправлен вывод символа табуляции в print(), ширина таба задается output.tab-width.
- Установка input.cursor-blink-rate в 0 выключает мигание курсора в read_str().
- Поправлена работа с кодовой страницей растровых тайлсетов (для не-шрифтов можно по аналогии с truetype выбирать отдельные тайлы из картинки).
- Добавлено чтение буфера обмена через terminal_get("clipboard"). Записи нет.
Apromix писал(а):По аналогии можно добавить скажем msg и писать в лог через нее.
Я было дело хотел сказать, что это какая-то порнография, и terminal_set не для этого и вообще это вам не микроконтроллеры, чтобы записью в регистры выполнять активные действия. Но потом полез делать terminal_log и увидел, что как обычно для принимающей строку функции надо будет сделать три точки входа в .dll, реализовать их на стороне С, добавить соответствующие методы (по несколько разных штук) в C++, C#, Go, Lua, Pascal, Python и Ruby, потом для каждого языка проверить, что оно работает (как минимум не имеет опечаток и компилируется). И мне стало грустно.
Черт с вами, подумал я и добавил обработку msg. Но сразу же оказалось, что просто поле в группе опций работает некрасиво: функция set диагностики ради сначала выводит в лог всю строку, потом ее парсит и выводит полученную таблицу опций и только потом применяет ее. Получается, что к моменту обработки msg в логе уже куча "мусора" и деталей работы. И выключать это нельзя, потому что дебаг.
Потом я еще раз вспомнил про добавление функции в API и мне еще раз стало грустно =). В итоге родилась такая вот химера (присутствует в текущем апдейте, но не афишируется):
Которая выглядит как "текстовый" вызов функции и обрабатывается отдельно (легко отличить от установки опций). В данный момент синтаксис выражения (кавычки, аргументы) не проверяется никак, но я допускаю появление всамделишных вызовов функций. Так сказать, задел на будущее =/.