Сейчас читаю одну статью ("A Conceptual Model for Folding"ftp://ftp.cc.gatech.edu/pub/groups/reve ... ajTR08.pdf), там написано:
> -- Цитата:
> "The  primary  weapon  in  program  understanding  is abstraction, the ability to selectively recognize, label and then ignore details. Modern Interactive development environments (IDEs), such as Eclipse and Visual Studio, support  abstraction via folding, i.e.,  the  ability  to  selectively hide and reveal source code segments."
Основное оружие для понимания программ - это абстракция, то есть способность выборочно найти, пометить нужное и игнорировать детали. Современные интегрированные среды разработки (IDE), такие как Eclipse и Visual Studio поддерживают абстракцию через свёртку кода, то есть способность выборочно прятать и снова показывать сегменты исходного кода.

В современных IDE свертка и разворачивание кода обычно выполняется через нажатие на знак плюс или минус, которые располагаются в левой колонке экрана.

Также есть другой метод свертки кода, который описан в статье "Reverse Literate Programming"http://www.literateprogramming.com/rlp.pdf. Там говорится о том, что путем сворачивания кода можно применять метод пошагового уточнения.

Собираюсь разработать IDE для Оберон-07, где бы совмещались оба подхода. И думаю о том, как единообразно сделать свертку и развертку кода, так как метод с + и - из современных IDE здесь уже не подходит, так как в одной строке может быть и код, который разворачивается и начало какого-нибудь оперататора, например FOR, который тоже может сворачиваться и разворачиваться. Ставить треугольники перед всеми конструкциями в коде, которые могут сворачиваться и разворачиваться тоже как-то не очень хорошо, так как слишком много треугольников будет в коде. Как вариант, конечно, можно совместить оба эти подхода, + и - слева для свёртки конструкций языка программирования, а треугольники для свертки кода - пошагового уточнения.

Что вы думаете по поводу фолдинга, насколько это важно и нужно? И как это лучше сделать чтобы было удобно этим пользоваться?