Обгортання ланцюгових методів викликає окрему лінію в Eclipse для Java


105

Я не мав успіху в з'ясуванні способу завершення кожного виклику методу Eclipse. Наприклад, у мене це:

someObject.A().B().C();

Але я дуже хочу цього:

someObject.A()
          .B()
          .C();

Ніщо в розділі "Обертання рядків", Eclipseздається, не дає мені цього результату.

Відповіді:


186

Доповнюючи відповідь Діпака Азада, вам точно потрібно наступне:

Windows : Вікно → Налаштування → Java → Стиль коду
→ Форматор → Редагувати → Обертання рядків (вкладка)

Mac OS : ADT → Налаштування → Java → Стиль коду
→ Форматор → Редагувати → Обертання рядків (вкладка)

Потім у списку зліва виберіть:

Виклики функцій → Кваліфіковані виклики

Тепер під цим списком встановіть політику упаковки рядків на:

Оберніть усі елементи, крім першого, якщо немає необхідності

Перевірка :

Сила розбита, навіть якщо лінія коротша за максимальну ширину лінії

Нарешті, встановіть політику відступу (спасибі @Turbo ):

Відступ на стовпчику

Це має дати точну поведінку, про яку ви просили.


БОНУС: Android Studio / Ідея IntelliJ:

Mac OS : Android Studio → Налаштування ( Cmd +,) → Редактор → Стиль коду → Java → вкладка Обгортання та дужки → Виклики методу

виберіть

Загорніть завжди

і перевірити

Вирівняйте, коли багаторядковий


2
Дякую. Це не працює для return new SomeClass().A().B().C();кожного виклику методу в окремому рядку.
— Харві

1
@ ChristianGarcía +1 за чудову відповідь. Одне спостереження від мене (Eclipse neon): Коли я встановлюю Indent on column, це іноді додає додаткового простору; наприклад session.createQueryстає session .createQueryтощо. Повернення до параметра за замовчуванням розібрало проблему для мене.
— Саян Пал

Це вставляє вкладку після першого виклику. Щоб цього уникнути, мені довелося встановити прапорець "Використовувати пробіли для відступу обернутих ліній" під відступом.
— Даніель Нітзан

12

Вікно → Налаштування → Java → Стиль коду → Форматор → Редагувати → Обертання рядків → Ніколи не приєднуйтесь до вже завернутих рядків


3
Мені шкода, що я не пояснив: це не буде форматувати. Він просто не зіпсує це, якщо робити це вручну.
— Op De Cirkel

Я зараз розумію. Eclipse насправді не може форматувати ланцюгові методи, але він збереже форматування так, як я його набрав. Дякую.
— Йоганн

нічого специфічного для прикованих дзвінків. Якщо ви змусите функцію завершення виклику, вона завернеться скрізь
— Op De Cirkel

@Johann Це невірно, Eclipse може відформатувати ланцюгові виклики методу.
— Діпак Азад

@OpDeCirkel Свій коментар слід додати у самій відповіді. Щоб людям було легше це помітити: Цей коментарI am sorry i did not explain: It won't format it. It will simply not mess it up, if you do it manually. –
— Сандіп Шукла,

7

Вікно> Налаштування> Java> Стиль коду> Форматор> Редагувати> Обтікання рядків> Функціональні дзвінки, встановіть «Політика загортання рядків» як «Обернути всі елементи, кожен елемент у новому рядку».


Це покладе на новий рядок кожен виклик функції, навіть якщо вони не приковані, і якщо ви відформатуєте свій файл за допомогою Ctrl + Shift + f, це зіпсує все \
— Op De Cirkel

1
Також доступні інші правила, наприклад, "Оберніть усі елементи, крім першого, якщо немає необхідності". Один з них повинен працювати для вас :)
— Діпак Азад

7

Для тих, у кого налаштування форматування коду затемнення перевірені у контролі джерела (для послідовного форматування коду для всієї команди), .settingsпапка перевіряється.

Властивість, яка надасть вам цю поведінку форматування, знаходиться у .settings/org.eclipse.jdt.core.prefsфайлі.

Властивість:

org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=80

3

Якщо ви готові виконати форматування цих сегментів самостійно, ви можете запобігти переформатування цих затемнень за допомогою:

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

Можливо, вам потрібно буде включити це у своїх налаштуваннях: http://archive.eclipse.org/eclipse/downloads/drops/R-3.6-201006080911/eclipse-news-part2.html#JavaFormatter

Дивіться також: Як відключити формат коду Eclipse для певних розділів коду Java?


0

в: Вікно-> Налаштування-> Java-> Стиль коду-> Форматор-> Редагувати-> Обертання рядків-> Виклик функції-> Кваліфікований виклик

виберіть Політика відступу як відступ до стовпця


-1

Налаштуйте свій форматформа затемнення як у Java, так і в JavaScript. збільшити максимальну лінію, що відповідає вашому екрану.Windows> налаштування

Редагувати

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.