Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java tools & IDE's > Форматирование кода при разработке в разных IDE


Автор: Shurr 15.11.2009, 16:05
Подскажите, как организовать единое автоматическое форматирование кода, когда в команде используются две IDE: Eclipse и IDEA? В качестве VCS используется SVN.
SVN-сервер удаленный, и для дополнительного конфигурирования недоступен. 
Вариант "вручную нарисовать одинаковые конфиги для обоих форматтеров" если и реализуем (учитывая фирменные фишки и плюшки каждого из форматтеров) - все равно не очень интересен. Хотя если где-то есть уже готовые синхронизированные конфиги - возможен.

Автор: LSD 16.11.2009, 12:20
Ну можно подумать что, форматирование это какой-то rocket science, отступы и расстановка скобок дают 90% форматирования.

Если хотите синхронные code convention, то ищите Sun Java coding convention. У IDEA по умолчанию именно они и используются. Для Eclipse тоже думаю, не проблема найти.

Автор: Samotnik 17.11.2009, 00:07
Shurr, есть конфигурационные файлы, для Затмения -  необходимо написать xml файл и загрузить его в IDE. (Этот xml  единый можно разослать всем участникам команды по скайп/аське, имейлу)  И после нажатий  Ctrl + A  =>  Ctrl + Alt + F весь файл станет одинаково отформатирован как у всех остальных.  Для IDEA вроде  xml нельзя подгрузить, но можно сделать принтскрин своих настроек и отослать всем.  
По умолчанию в обоих IDE форматирование настроено под Code Conventions for the Java Programming Language от 1999 20 Апреля.
Других путей не вижу  smile 

Автор: Shurr 19.11.2009, 11:42
Samotnik,
Я об этом и писал:
Цитата(Shurr @  15.11.2009,  15:05 Найти цитируемый пост)
Вариант "вручную нарисовать одинаковые конфиги для обоих форматтеров" ... не очень интересен.
IDEA тоже хранит настройки форматтера в XML, так что с распространением проблем нет, вопрос именно в создании одинаковых конфигураций для разных IDE.

LSD
В принципе, конечно, не rocket science, но здесь вся суть в мелочах. Т.е. если два форматтера работают чуть-чуть по разному, то при изменении класса в другой IDE появляются мелкие мусорные правки, которые не имеют отношения к логике внесенных разработчиком изменений.
В данный момент ситуация выглядит так, что даже конфигурации заточенные под Sun Java coding convention разные форматтеры понимают немного по-разному. Т.е. не так, чтобы различия проявлялись в каждом классе, но в масштабах проекта хватает.
Поэтому, собственно, и хотелось услышать альтернативные варианты.

Автор: LSD 19.11.2009, 15:17
1. Зачем при внесении изменений, разработчику переформатировать весь класс?
2. Они так и так будут, т.к. есть некоторые виды форматирования которые специфичны для каждой IDE.

Автор: polosatij 19.11.2009, 16:33
Цитата(Samotnik @  16.11.2009,  23:07 Найти цитируемый пост)
 И после нажатий  Ctrl + A  =>  Ctrl + Alt + F весь файл станет одинаково отформатирован как у всех остальных.


даааааааааа.. 
он так будет отформатирован, что будешь форматировать заного свой код.

пс: кодовое слово:

1). строка больше чем 80 или 120 символов не форматируется коректно
2). параметры с анотациями прерываются не там где надо

и тут ещё с десяток похожих трабл.

-----------

мы решили пока эту траблу тем, что залили в репозиторий некий конфиг еклипса + описали установки в вики; для тех, кто работает с IDEA написали тоже форматтер. для остальных случаев мы применяем PMD + CheckStyle. на CheckStyle народ забивает и приходится постоянно всех пинать. PMD же жёско не собирает проект, пока не будет что-то исправлено. конечно, его можно отключить, но тут уже начинаются "угрозы" со стороны товарищей, которые уже сами пинают или поправляют код, если кто-то залил не по установкам. я планирую на будущее ввести "Ява 5" в PMD, если это возможно, а также прикрутить жёско CheckStyle и поставить границы после которых код собираться, как и PMD не будет.

форматирование - это ещё только первая трабла. PMD показывает на следующие существующие угрозы в проекте.

Автор: Shurr 19.11.2009, 23:39
Цитата(LSD @  19.11.2009,  14:17 Найти цитируемый пост)
1. Зачем при внесении изменений, разработчику переформатировать весь класс?
2. Они так и так будут, т.к. есть некоторые виды форматирования которые специфичны для каждой IDE.

1. По идее для поддержания единого стиля у всех должно быть включено автоматическое форматирование, поэтому при сохранении класса он будет переформатирован вне зависимости от желания разработчика.

2. Для примера - есть Jindent, который подключается в качестве плагина и к Eclipse, и к IDEA; вроде обещают одинаковое форматирование. Но он, к сожалению, платный.

Автор: Samotnik 26.11.2009, 14:45
Цитата(polosatij @  19.11.2009,  16:33 Найти цитируемый пост)
даааааааааа.. 
он так будет отформатирован, что будешь форматировать заного свой код.

пс: кодовое слово:

1). строка больше чем 80 или 120 символов не форматируется коректно
2). параметры с анотациями прерываются не там где надо

и тут ещё с десяток похожих трабл.

странно ....
Мы на прошлом проекте, насторили IDEA  для форматирования, и такоим образом форматили код, в котором было под 1000 строк кода в файлах. и ниразу такого небыло.  Заказчики были очень придирчивы к оформлению, и ниразу от них жалоб не поступало ... 

Автор: Shurr 1.12.2009, 17:43
Вопрос решен применением плагина "External Code Formatter" в IDEA. Плагин подерживает любой command-line форматтер, в т.ч. от Eclipse. 
Прелесть этого плагина в том, что он, в отличие от других плагинов-форматтеров, заменяет собой родной форматтер IDEA, а не просто добавляет новый action. Соответственно, при установленной галке "Reformat Code" в диалоге коммита происходит форматирование именно внешним форматтером, что и требовалось.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)