Рубрики
Без рубрики

IntelliJ google-плагин для java-формата против IntelliJ java-google-style.xml – в чем дело?

Почему есть плагин google-java-format и java-google-style.xml вызывают разные результаты?. С тегами java, качество кода, intellij.

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

Недавно я был вовлечен в дискуссию о том, как форматировать цепные методы или, в данном случае, Java stream() .

Вот два примера из этого обсуждения:

Вариант А:

obj.stream()
    .map(...)
    .distinct(...)
    .collect(...);

Вариант В:

obj.stream().map(...).distinct(...).collect(...);

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

К счастью, мы решили использовать Руководство по стилю, Google Java Style Guide . Иметь руководство по стилю – это хорошо, но просто ссылаться на руководство по стилю, если на самом деле не соблюдаете правила. Кроме того, чтобы облегчить жизнь, всегда приятно иметь некоторую плату за проезд, которая позволит сочетать выбранный стиль с функциями IDE, такими как автоматическое форматирование.

Для IntelliJ я вижу здесь два варианта. Это либо установка плагина google-java-format , либо импорт java-google-style.xml .

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

В качестве примера, плагин будет форматировать потоки, как в показанном выше варианте A, но импортированный XML будет сопровождаться опцией B.

Кроме того, если вы используете Spring, XML приведет к такому формату аннотаций:

@Autowired
private Entity entity; 

В то время как плагин будет форматировать его следующим образом:

@Autowired private Entity entity;

Это всего лишь пара примеров, но есть много других различий. Это меня удивляет, поскольку и XML, и плагин поддерживаются Google (или, по крайней мере, в рамках их организации GitHub).

Итак, это оставляет несколько открытых вопросов:

  • Это должно быть так?
  • Может ли быть проблема с IntelliJ или XML в том, что форматирование настолько отличается между этими двумя вариантами?
  • Какой из них правильный или ближе к фактическому руководству по стилю Google?
  • Существует ли другой инструмент, который является надежным для надежного форматирования кода для Java?

Лично я как бы чувствую, что это ближе к плагину. Это происходит главным образом потому, что он кажется намного более жестким и почти не оставляет места для разных стилей. Но не слишком ли это туго?

Оригинал: “https://dev.to/tschaka1904/intellij-google-java-format-plugin-vs-intellij-java-google-style-xml-what-s-the-deal-197b”