8. Регионы

Регион — прямоугольная рамка с подписью. С вызовом он не делает ничего: это разметка карты для человека.

Зачем они

Пока компонентов десяток, карта читается и без разметки. На сотне — уже нет: глаз не находит, где кончается одна смысловая часть и начинается другая.

Регионы на карте сценария
Figure 1. Два региона на карте

Регион отвечает на этот вопрос сразу и без чтения: подписанная область видна целиком, а в режиме обзора именно подписи регионов и остаются читаемыми — имена компонентов на таком масштабе уже не разобрать.

Но главное в регионе даже не группировка, а подпись. Она многострочная, и в неё пишут то, чего нигде больше не написать: зачем этот участок, какие у него условия, почему сделано именно так, что здесь трогать нельзя. Регион — это комментарий, оставленный на карте видимым.

Третье, ради чего их заводят: регион перемещается вместе со всем содержимым. Переложить целый кусок сценария получается одним движением, а не выделением сорока квадратов.

Регион нужен не тогда, когда сценарий перестал помещаться на экран, а тогда, когда логика стала сложной для пересказа и для собственной памяти.

Появился выделенный функциональный блок — оберните его регионом и подпишите. Добавили в рабочий сценарий что-то нестандартное — оставьте это на регионе с объяснением. Расставить регионы можно и потом, но своевременно — дешевле и точнее: через месяц вы уже не вспомните половины соображений.

Это про культуру ведения сценариев: чем понятнее сценарий, тем дольше он живёт и тем спокойнее его правит следующий.

Создать регион

Выберите инструмент Регион в палитре и протяните рамку по карте.

Протяжка рамки региона
Figure 2. Регион рисуется

Компоненты, оказавшиеся внутри, никуда не переносятся и ничего не «получают»: принадлежность региону определяется только тем, что квадрат лежит в его границах.

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

Подпись и цвета

Свойства региона в панели
Figure 3. Свойства региона

У региона всего два свойства-строки — цвет текста и цвет фона. Оба выбираются из палитры или задаются кодом вида #fbf8d9.

Текст региона правится не строкой в таблице, а областью внизу панели — там, где у обычных компонентов описание. Так сделано потому, что текст у региона многострочный: в него пишут и заголовок, и пояснение под ним.

Цветом стоит пользоваться осмысленно: три-четыре оттенка на сценарий читаются, десять — превращаются в мозаику. Полезное правило — один цвет на один вид работы: например, песочный для основной логики, серый для служебных веток.

Выделение и перемещение

Регион ведёт себя как объект, но с оговорками, потому что почти всегда нужен не он сам, а то, что на нём.

За середину

перемещается вместе с содержимым.

За край

растягивается. Компоненты при этом остаются на месте — меняется только рамка. Курсор у границы становится двусторонней стрелкой.

Shift и клик

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

Лассо

рамка, целиком уместившаяся внутри региона, сам регион не выделяет — ею выбирают компоненты на области. Стоит рамке пересечь границу — регион попадает в выделение.

С зажатым Alt и перемещение, и растягивание идут по сетке 8 px.

Что регион не делает

Он не влияет на выполнение

Вызов не «входит в регион» и не «выходит» из него. Управление ходит только по связям.

Он не группирует свойства

Задать что-то «всем компонентам региона» через сам регион нельзя. Для этого их выделяют (Shift и клик, второй такт) и правят группой.

Он не вложен ни во что

Регионы можно рисовать поверх друг друга, но иерархии между ними нет: редактор считает только, чей квадрат в чьих границах лежит.

◀ 7. Связи

9. Крупный сценарий ▶