Автономный форматировщик кода Java / beautifier / довольно принтер? [закрыто]

Я заинтересован в изучении доступных вариантоввысококачественные, автономные средства форматирования исходного кода для Java.

Форматер должен быть автономным, то есть он должен поддерживать"пакетный режим этоотделен от любой конкретной среды разработки, В идеале это должно бытьне зависит от какой-либо конкретной операционной системы также. Таким образом, встроенный модуль форматирования для IDE du jour здесь не представляет большого интереса (если только IDE не поддерживает вызов средства форматирования в пакетном режиме, возможно, из командной строки). Форматер, написанный на C / C ++ с закрытым исходным кодом, который работает только на, скажем, Windows, не идеален, но несколько интересен.

Чтобы быть понятным, «форматтер» (или «beautifier») не то же самое, что «проверка стиля». Средство форматирования принимает исходный код в качестве входных данных, применяет правила стиля и создает стилизованный исходный код, который семантически эквивалентен исходному исходному коду. Синтаксические изменения ограничиваются такими вещами, как изменение макета кода, например изменение пробелов или организацияimport заявления. Очень мало, если таковые имеются, другой рефакторинг выполняется. Средство проверки стиля также применяет правила стиля, но оно простоотчеты нарушения правилбез создания измененного исходного кода в качестве вывода. Итак, картина выглядит так:

Formatter (создает модифицированный исходный код, соответствующий правилам стиля)

Прочитать Исходный код → Применить правила стиля → Написать исходный код в стиле

Проверка стиля (не производит модифицированный исходный код)

Прочитайте Исходный код → Применить правила стиля → Нарушение правил записи

Дальнейшие разъяснения

Решения должны быть легко настраиваемыми. Я хочу иметь возможность указать свой собственный стиль, а не просто выбрать из списка предустановок.

Кроме того, яне ищусимпатичный принтер общего назначения, написанный на Java это может красиво напечатать много вещей. Я хочу стилизовать код Java.

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

Более того,инструменты, которые выполняют только подсветку кода находятсяправильно вне.

я такжене заинтересованы в веб-сервисе. Я хочу инструмент, который я могу запустить локально.

Наконец, решения не должны ограничиваться открытым исходным кодом, общественным достоянием, условно-бесплатным программным обеспечением, свободным программным обеспечением, коммерческим или чем-либо еще.Все формы лицензирования являются приемлемыми.

 Миша Кошелев12 сент. 2010 г., 02:57
Я написал что-то, что представляет собой автономный Helios (Eclipse 3.6), который выполняет только форматирование кода. Это <13 МБ, только Java.openmrs-mailing-list-archives.1560443.n2.nabble.com/...
 skaffman16 июл. 2009 г., 16:39
сообщество вики?

Ответы на вопрос(9)

ки. Проверять, выписыватьсяэта запись в блоге

драндулет может представлять интерес. Он подключится к Ant и, следовательно, не зависит от вашей IDE.

Стиль также может быть полезным. Это открытый исходный код (например, Jalopy), но написанный на C ++. Он ориентирован на форматирование Java / C / C ++ и может управляться партиями (через сценарии оболочки или аналогичные)

 Brian Agnew04 мар. 2016 г., 12:13
Почему проголосовали?
 Daniel Grillo08 февр. 2012 г., 13:11
голосование за Астиль

Java Formatter для инструмента, который обрабатывает все диалекты Java, включая версию 7.

http://www.tiobe.com/index.php/content/products/jacobe/Jacobe.html

Персональное издание бесплатно.

Решение Вопроса

http://www.jindent.com/

Я также использовал Jalopy в прошлом, чтобы сделать это, это с открытым исходным кодом:

http://jalopy.sourceforge.net/

РЕДАКТИРОВАТЬ: Я отмечу, что Jalopy довольно стар, и, кажется, не было никаких последних обновлений к нему. Я не совсем уверен, будет ли это работать с Java 5/6. Возможно, вы захотите взглянуть на Джейкоба:

http://www.tiobe.com/index.php/content/products/jacobe/Jacobe.html

Также на сайте Роди Грина есть более полный список форматеров:

http://mindprod.com/jgloss/beautifier.html

 mrts13 июл. 2017 г., 18:16
Есть такжеGoogle-ява-формат.
 Greg Mattes15 июн. 2009 г., 17:15
Какова связь между открытым исходным кодом Jalopy и этим:triemax.com/products/jalopy
 Chris Jones04 апр. 2012 г., 17:21
Джейкоб не обновляется для Java 7, и TIOBE говорит, что никогда не будет.
 Jon15 июн. 2009 г., 17:20
Похоже, что проект с открытым исходным кодом мертв, и они решили пойти с коммерческой версией - производства Triemax. Прошло много времени с тех пор, как я использовал Jalopy, я думаю, что это было с Ant. Взгляните на Джейкоба вместо этого.

Доктор Ява для кодирования и быстрой вкладки ctrl + A + он все форматирует с подсветкой синтаксиса. Я использовал его на Mac и Windows, не знаю, поддерживают ли они Linux. И это с открытым исходным кодом, самостоятельно и бесплатно.

 dansalmo03 нояб. 2013 г., 07:03
Нажатие вкладки, когда любая часть кода выбрана, отформатирует выбор. DrJava также хорошая интерактивная (как переводчик) вкладка.

MyClass> ... и комментарии, начинающиеся с @

Я смог заставить его отформатировать, изменив все <MyClass> на LTLTLTMyClassGTGTGT, а затем @ в // @ // @ // @ (я просто повторяю LT, GT или // @, чтобы убедиться, что они не делают Уже существует. Тогда я смог Jalopy, и, очевидно, я должен заменить все обратно на то, что было.

Кроме того, перед изменением <или> необходимо убедиться, что вы не измените сравнения, например <= или> = и т. Д.

Таким образом, вы можете назвать это решением для бедного человека, потому что оно включает в себя множество ручных шагов. Если бы я делал Jalopy чаще, я бы написал сценарий с использованием sed, который бы автоматически вносил эти изменения.

некорректный сообщение об ошибке я подал:https://bugs.eclipse.org/bugs/show_bug.cgi?id=325289 Файл OpenMRSFormatter.xml на самом деле должен быть файлом настроек, а не файлом XML.

Вы можете найти такой файл здесь:https://bugs.eclipse.org/bugs/attachment.cgi?id=178874

или преобразуйте любой экспортированный файл форматирования XML с помощью: cat formatter.xml | настройка grep | sed 's / @@'> formatter.asprefs

Спасибо миша

Вот что я сделал, используя Eclipse 3.6 jars. Это только Java, командная строка и должна быть кроссплатформенной:

http://www.sendspace.com/file/nm4ptt

Существует сценарий оболочки, который использует связанный файл OpenMRSCodeFormatter.xml. Пример вывода:

[email protected]:~/openmrs-code-formatter$ cat ../Test.java
public class Test {



public a() {
System.out.println("! I did not format this right!");
}



}[email protected]:~/openmrs-code-formatter$ ./format.sh ../Test.java
Configuration Name: OpenMRSFormatter.xml
Starting format job ...
Done.
cat ../[email protected]:~/openmrs-code-formatter$ cat ../Test.java
public class Test {

        public a() {
                System.out.println("! I did not format this right!");
        }

}[email protected]:~/openmrs-code-formatter$ 

Это основано на посте здесь:http://www.peterfriese.de/formatting-your-code-using-the-eclipse-code-formatter/

Поскольку я не знаю, как долго будет действовать ссылка, я опишу содержание ниже.

Это основано на распространении Eclipse 3.6 Helios. Я использовал один для Linux x86, но он должен работать для любой версии, так как я не использовал какие-либо (насколько мне известно) специфичные для платформы JAR-файлы.

Содержимое архива tar:

[email protected]:~$ tar tvjf openmrs-code-formatter.tar.bz2  | sort 
tar: Record size = 8 blocks
drwxr-xr-x misha/misha       0 2010-09-11 19:32 openmrs-code-formatter/plugins/
drwxr-xr-x misha/misha       0 2010-09-11 19:33 openmrs-code-formatter/configuration/org.eclipse.equinox.simpleconfigurator/
drwxr-xr-x misha/misha       0 2010-09-11 19:38 openmrs-code-formatter/configuration/
-rw-r--r-- misha/misha  101957 2010-09-11 19:03 openmrs-code-formatter/plugins/org.eclipse.equinox.common_3.6.0.v20100503.jar
-rw-r--r-- misha/misha  107210 2010-09-11 19:32 openmrs-code-formatter/plugins/org.eclipse.core.commands_3.6.0.I20100512-1500.jar
-rw-r--r-- misha/misha  111098 2010-09-11 19:06 openmrs-code-formatter/plugins/org.eclipse.equinox.preferences_3.3.0.v20100503.jar
-rw-r--r-- misha/misha 1147220 2010-09-11 18:45 openmrs-code-formatter/plugins/org.eclipse.osgi_3.6.0.v20100517.jar
-rw-r--r-- misha/misha    1812 2010-09-11 19:33 openmrs-code-formatter/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info
-rw-r--r-- misha/misha  182596 2010-09-11 19:05 openmrs-code-formatter/plugins/org.eclipse.equinox.registry_3.5.0.v20100503.jar
-rw-r--r-- misha/misha  248071 2010-09-11 19:29 openmrs-code-formatter/plugins/org.eclipse.text_3.5.0.v20100601-1300.jar
-rw-r--r-- misha/misha     265 2010-09-11 19:21 openmrs-code-formatter/configuration/config.ini
-rw-r--r-- misha/misha   28554 2010-09-11 19:34 openmrs-code-formatter/OpenMRSFormatter.xml
-rw-r--r-- misha/misha   39331 2010-09-11 19:17 openmrs-code-formatter/plugins/org.eclipse.equinox.simpleconfigurator_1.0.200.v20100503.jar
-rw-r--r-- misha/misha 4504121 2010-09-11 19:27 openmrs-code-formatter/plugins/org.eclipse.jdt.core_3.6.0.v_A58.jar
-rw-r--r-- misha/misha   47023 2010-09-11 18:42 openmrs-code-formatter/plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar
-rw-r--r-- misha/misha   52710 2010-09-11 19:29 openmrs-code-formatter/plugins/org.eclipse.core.filesystem_1.3.0.v20100526-0737.jar
-rw-r--r-- misha/misha 6451211 2010-09-11 19:32 openmrs-code-formatter/plugins/com.ibm.icu_4.2.1.v20100412.jar
-rw-r--r-- misha/misha   70928 2010-09-11 19:01 openmrs-code-formatter/plugins/org.eclipse.core.runtime_3.6.0.v20100505.jar
-rw-r--r-- misha/misha  769898 2010-09-11 19:29 openmrs-code-formatter/plugins/org.eclipse.core.resources_3.6.0.v20100526-0737.jar
-rw-r--r-- misha/misha   83817 2010-09-11 19:07 openmrs-code-formatter/plugins/org.eclipse.equinox.app_1.3.0.v20100512.jar
-rw-r--r-- misha/misha   86986 2010-09-11 19:31 openmrs-code-formatter/plugins/org.eclipse.core.expressions_3.4.200.v20100505.jar
-rw-r--r-- misha/misha   90837 2010-09-11 19:05 openmrs-code-formatter/plugins/org.eclipse.core.jobs_3.5.0.v20100515.jar
-rw-r--r-- misha/misha   91928 2010-09-11 19:06 openmrs-code-formatter/plugins/org.eclipse.core.contenttype_3.4.100.v20100505-1235.jar
-rwxr-xr-x misha/misha     111 2010-09-11 19:39 openmrs-code-formatter/format.sh

Соответствующие файлы в каталоге плагинов взяты непосредственно из каталога плагинов Eclipse 3.6.

Содержимое config.ini:

[email protected]:~$ more openmrs-code-formatter/configuration/config.ini 
osgi.bundles=reference\:file\:[email protected]\:start
org.eclipse.equinox.simpleconfigurator.configUrl=file\:org.eclipse.equinox.simpleconfigurator/bundles.info
eclipse.application=org.eclipse.jdt.core.JavaCodeFormatter

format.sh это:

[email protected]:~$ more openmrs-code-formatter/format.sh 
#!/bin/bash
java -jar plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar -config OpenMRSFormatter.xml $*

и OpenMRSFormatter.xml доступен здесь:http://wiki.openmrs.org/download/attachments/3346087/OpenMRSFormatter.xml?version=1&modificationDate=1282168038000

Я считаю, что должно быть достаточно для воспроизведения.

Интересный проект, основанный на той же концепции, находится здесь:http://code.google.com/p/maven-java-formatter-plugin/

Спасибо миша

http://jrefactory.sourceforge.net/). Я обнаружил это через плагин для JEdit. Я оценил это, поскольку у него было лучшее освещение Javadoc, которое я когда-либо видел.

К сожалению, он кажется мертвым (без развития с 2004 года) и на самом деле он не поддерживает Java5.

Кстати, я подтверждаю, что Triemax - это коммерческий пакет, основанный на мертвой Jalopy с открытым исходным кодом.

Ваш ответ на вопрос