Мне интересно узнать о доступных вариантах высококачественных автономных средств форматирования исходного кода для Java.
Модуль форматирования должен быть автономным, то есть он должен поддерживать «пакетный» режим , не связанный с какой-либо конкретной средой разработки . В идеале он также должен быть независимым от какой-либо конкретной операционной системы . Таким образом, встроенный модуль форматирования для IDE du jour здесь не представляет особого интереса (если только эта среда не поддерживает вызов модуля форматирования в пакетном режиме, возможно, из командной строки). Форматировщик, написанный на C / C ++ с закрытым исходным кодом, который работает, скажем, только под Windows, не идеален, но в некоторой степени интересен.
Чтобы было ясно, «средство форматирования» (или «украшение») - это не то же самое, что «средство проверки стиля». Средство форматирования принимает исходный код в качестве входных данных, применяет правила стилизации и создает исходный код со стилями, который семантически эквивалентен исходному исходному коду. Синтаксические модификации ограничиваются такими вещами, как изменение макета кода, например изменение пробелов или упорядочивание import
операторов. Другой рефакторинг, если вообще выполняется, очень мало. Средство проверки стиля также применяет правила стилизации, но просто сообщает о нарушениях правил, не создавая измененный исходный код в качестве вывода. Итак, картина выглядит так:
Formatter (создает измененный исходный код, соответствующий правилам стиля)
Прочитать исходный код → Применить правила стилизации → Написать исходный код со стилями
Средство проверки стиля (не производит модифицированный исходный код)
Прочитать исходный код → Применить правила стилизации → Нарушения правил записи
Дальнейшие пояснения
Решения должны быть легко конфигурируемыми. Я хочу иметь возможность указывать свой собственный стиль, а не просто выбирать его из предустановленного списка.
Кроме того, я не ищу симпатичный принтер общего назначения, написанный на Java, который может печатать многие вещи. Я хочу стилизовать Java-код.
Меня также не обязательно интересует универсальный модуль форматирования для многих языков. Я полагаю, что решение могло бы иметь поддержку других языков, кроме Java, но это не является обязательным требованием.
Кроме того, инструменты , которые только выполняют подсветку кода являются прямо из .
Я тоже не интересуюсь веб-сервисом. Мне нужен инструмент, который можно запускать локально.
Наконец, решения не должны ограничиваться открытым исходным кодом, общественным достоянием, условно-бесплатным программным обеспечением, бесплатным программным обеспечением, коммерческим или чем-либо еще. Допускаются все формы лицензирования .