Здравствуйте, seregaa, Вы писали:
S>И подумалось мне — а ведь Влад уже реализовал всю логику форматирования. Наверное будет правильнее не париться и не изобретать ее заново а переиспользовать готовый форматер? От форматтера нужен метод типа GetIndentLevel(line : int, engine : IEngine, filePath : string) : int, возвращающий уровень вложенности для текущей строки. Но тут без помощи Влада мне не обойтись.
Я не занимался форматером. Его писал другой человек.
К тому же применение форматера для таких целей — это перебор.
Форматер оценивает весь файл. По этому он может тормозить. При форматировании куска кода тормоза не так страшны. Подумаешь пара секунд? А вот при вооде текста — это уже не приемлемо.
Так что я бы не стал использовать форметр для этих целей. К тому же он, как я понимаю, не всегда работает корректно.
Меж тем лично меня бы устроило чтобы смарт-индент вел себя как в С-шных файлах, т.е. делал отступ после открывающей фигурной скобки и уменьшал его после закрывающей.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.