Как я могу заставить eclipse переносить строки после точки, а не до

Я просмотрел «Настройки» -> «Java» -> «Стиль кода» -> «Форматтер» и не могу найти способ заставить eclipse форматировать мой код, например:

something.
    someMethod().
    anotherMethod().
    lastMethod();

Вместо:

something
    .someMethod()
    .anotherMethod()
    .lastMethod();

Я знаю, что это нестандартно, но это то, что мне нужно.

Изменить: речь идет не о переносе строк. Это конкретно о том, где происходит перенос по отношению к периоду. Мне нужна точка в конце строки перед новой строкой, и прямо сейчас eclipse хочет точку в начале следующей строки.

Edit2: даже если бы я мог узнать, где исходный код eclipse решает, где обернуть строку, это может помочь. Я думаю, что это может быть в проекте JDT, но я не уверен на 100%, и есть много там.


person onlynone    schedule 15.07.2015    source источник
comment
возможный дубликат оборачивания связанных вызовов методов на отдельная строка в Eclipse для Java   -  person Frank Bryce    schedule 15.07.2015
comment
Не совсем дубликат этого.   -  person Anubian Noob    schedule 15.07.2015
comment
Просто интересно: Можете ли вы сказать, почему?   -  person Aleksandr M    schedule 16.07.2015
comment
Руководство по стилю моей компании диктует это. У нас есть определенный формат Checkstyle, который помечает любые пробелы перед точкой как ошибку.   -  person onlynone    schedule 16.07.2015
comment
В последнем выпуске eclipse (Mars) JDT теперь предоставляет точку расширения (org.eclipse.jdt.core.javaFormatter), позволяющую использовать сторонние средства форматирования исходного кода в качестве расширений. Таким образом, вы можете определить свой собственный форматер...   -  person rlm    schedule 22.07.2015
comment
Посмотри на это . Это именно то, что вы хотите. stackoverflow.com/questions/6275785/   -  person lhoak    schedule 27.07.2015
comment
Нет, это именно то, чего я не хочу. Я объяснил это в своем редактировании вопроса после того, как другие тоже не прочитали мой вопрос.   -  person onlynone    schedule 03.08.2015
comment
Как упоминалось выше, единственный способ — использовать собственное расширение для форматирования кода. Тем не менее, конечно, ваше время было бы лучше потратить на то, чтобы ваша компания отказалась от этого нелепого правила стиля и присоединилась почти ко всем остальным на земле и сломалась до точки!   -  person John Hascall    schedule 18.12.2015
comment
Спасибо за вопрос. Мне бы хотелось, чтобы это было так, и я очень предпочитаю стиль обертывания после точки. Перенос после точки позволяет увидеть продолжение оператора на следующей строке. Начало строки с точкой, на мой взгляд, не добавляет ясности, так как отступ уже говорит о том, что это продолжение оператора. @JohnHascall Действительно ли мир Java так сильно предпочитает перенос после точки? У меня больше опыта работы с Ruby, где предпочтения, казалось, были смешанными.   -  person Steve    schedule 21.04.2016
comment
По моему опыту, да. Я никогда не видел твоего стиля. В формате Eclipse есть много-много вариантов, поэтому я думаю, что если бы у периодического перерыва были какие-либо последователи, у него был бы вариант для него. FWIW, стиль перерыва также является стандартом JavaScript (гигантские цепочки точек более распространены там, особенно с такими фреймворками, как jQuery).   -  person John Hascall    schedule 22.04.2016
comment
Код для переноса строк находится здесь: git.eclipse.org/c/jdt/eclipse.jdt.core.git/tree/   -  person Bludzee    schedule 12.09.2016


Ответы (3)


Прежде всего, я не думаю, что есть способ получить стандартные строки форматирования кода Eclipse Java после .... кроме изменения самого кода форматирования. (И это означает, что вы больше не используете стандартный модуль форматирования!)


Не все потеряно. Я выполнил поиск в Google по запросу «плагин форматирования eclipse» и наткнулся на ссылку на Подключаемый модуль Jindent в Eclipse Marketplace. Покопавшись немного дальше, я нашел документацию для Настройки Jindent Formatter. В соответствии с «5.6.1.9.4 Вызовы методов» Jindent можно указать разбивать строки после «.». а не перед одним.

Итак... если вы готовы платить за лицензию Jindent, вы можете бесплатно получить для нее подключаемый модуль Eclipse, который сделает отступ в вашем Java-коде так, как вы предпочитаете.

Отказ от ответственности:

  • Jindent является коммерческим продуктом. Вам придется заплатить за лицензию.
  • Я никогда не использовал его, так что это не рекомендация или одобрение.
  • Я не имею никакого отношения к компании или людям, которые предоставляют этот продукт.

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

Ссылка:

person Stephen C    schedule 04.03.2017

Попробуй это.

«Окно» > «Установки» > «Java» > «Стиль кода» > «Форматтер» > «Правка» > «Перенос строк» ​​> «Вызовы функций» установите для параметра «Политика переноса строк» ​​значение «Переносить все элементы, каждый элемент в новую строку».

Если уже нашел, то круто.

person user5247180    schedule 20.08.2015
comment
Как уже говорилось, перенос вызовов функций на новую строку не является проблемой. - person onlynone; 20.08.2015

Я думаю, что если вы установите eclipse java mars, который является новой версией eclipse, ваша проблема будет решена. Я говорю это, потому что я использую самую новую версию, и я не сталкиваюсь с этой проблемой. Извините еще раз, если я не мог помочь, я все еще новичок

person Beginnerprogrammer    schedule 24.07.2016