Сворачиваемый блок

Сворачивание блока в коде достаточно сильно отличается в UDL 2.0. Вместо двух наборов ключевых слов (открывающих и закрывающих), теперь у нас три набора ключевых слов (добавился средний). Кроме того, есть два типа сворачиваемых блоков кода: первый - поиск с просмотром вперёд, второй - поиск с просмотром назад.


Это стандартный сворачиваемый блок в C++. Фигурные скобки представляют собой указатели для сворачивания и препроцессор тоже поддерживается (для этой демонстрации не все элементы были определены)

Здесь два важных момента. Как вы заметили, оба типа сворачиваемых блока созданы как задумывалось, но они работают по-разному.

Пример 1:






Пример 2:



UDL 2.0 автоматически создаст средний указатель сворачивания, если открывающий указатель сворачивания следует за закрывающем указателем сворачивания в той же строке.

Пример 2:



Использование составных ключевых слов поддерживается в Сворачиваемом блоке 2, как вы можете видеть в данном примере.
Но это может не всегда работать (см. Пример 3)





Пример 3:





Если я задал оба варианта "else if" и "else", как ключевые слова, сворачивание прерывается. Это происходит потому, что scintilla упорядочивает ключевые слова в алфавитном порядке и "else" обрабатывается раньше "else if". UDL 2.0 будет тестироваться на этом ограничении.