Связанные методы и отступ продолжения в Intellij

#intellij-idea #formatting #indentation #method-chaining

#intellij-идея #форматирование #отступ #метод-цепочка

Вопрос:

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

Чего я хочу, так это:

 makeAThing(
  "with",  
  "params"
)
.setProperty("with some more params")
.start();
  

Что я получаю, так это:

 makeAThing(
  "with", 
  "params"
)
  .setProperty("with some more params")
  .start();
  

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

Комментарии:

1. Это часто возникает при использовании angular.js , потому что соглашение заключается в разрыве строк при определении модулей.

2. Нам это SwiftUI тоже очень нужно в AppCode

Ответ №1:

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

Найдено только два решения:

  1. принудительное использование стиля кодирования с 0 для «отступа продолжения», который мне все равно начинает нравиться, хотя и не очень канонический Java.
  2. Отключите средство форматирования для блоков кода и нажмите shift tab

Работает для Java, не уверен для JS:

 // @formatter:off
...
// @formatter:on