Прочитал в блоге у коллеги заметку про встроенный в IDE форматтер. Человек не пожалел времени, разложил все по полочкам с примерами. Добавить в общем-то и нечего, окромя нескольких косяков этого форматтера. Ну, кто про что, а я - про баги. =)
Наличие встроенного средства форматирования в среде разработки - это как бальзам на душу. Я уже по этому поводу высказывался. Поэтому, как только появилась такая возможность, я сразу же приступил к его использованию. Горячая клавиша (ctrl+d) расположена удобно - так и подмывает её периодически нажимать. Да и функционирует новый форматтер неплохо. Но есть несколько нюансов в его работе, из-за которых код форматируется ошибочно. Обратимся к примерам:
Как видите, с классами TTest1, TTest2 и TTest3 все в порядке. А вот TTest4 получился кривым: отступ у класса неверен и метод съехал набекрень. Найти "десять" различий не сложно. У класса TTest1 есть завершающий End, у TTest3 - его нет. И хотя такая конструкция успешно компилируется, форматтер на ней глючит. Эффект наблюдается кумулятивный: когда идут подряд несколько классов, подобных TTest3 - отступ у расположенных ниже по коду конструкций становиться гигантским. Они съезжают к правой границе экрана и пугают разработчика своим остроконечным разнобоем, напоминая выравнивание текста по правому краю.
Другая заковыка касается использования точки с запятой. Обратите внимание на результаты форматирования, приведенные ниже:
В методе класса TTest4 всё хорошо, а вот у класса TTest2 из-за опущенной точки с запятой наблюдаем смещение блока "finally end" в первом случае и finally во втором. Так что если после форматирования "что-то не так" - проверьте end-ы и точки с запятыми. Безусловно, жить данные баги не мешают и решаются легко.
Рад, если был кому-нибудь полезен =).