Как остановить Eclipse от автоматического добавления скобок? - PullRequest
32 голосов
/ 26 марта 2012

Если я, например, типа "Целое число".а затем нажмите CTRL + SPACE и теперь выберите «valueOf» из списка, Eclipse всегда добавляет «()» после имени функции.Это действительно раздражает, потому что часто у меня есть уже существующее утверждение, и я хочу обернуть его вокруг функции.

Пример: Я хочу изменить

String x = "hello world";

to

String x = StringManipulator.uppercase("hello world");

Если я напишу

String x = StringManipulator."hello world";

и нажму CTRL + SPACE на символе точки, он вставит

String x = StringManipulator.uppercase()"hello world";

Есть ли способ исправитьэто поведение?Мне не нужно автоматическое закрытие скобок, но просто остановка Eclipse от их автоматической вставки очень мне поможет.

Ответы [ 3 ]

13 голосов
/ 26 марта 2012

Перейдите к Настройки в eclipse -> в поле поиска: «parent» -> снимите флажки, которые вам не нравятся. Это то, что нужно искать в этом беспорядке (настройки затмения).

10 голосов
/ 19 февраля 2013

Я считаю, что это не похожее на настройку имеет большое значение, поэтому я упомяну об этом.

Функция автозаполнения в eclipse работает несколько иначе, если вы выберете «Завершение при завершении» вместо «Вставка при завершении» в настройках «Ассистента контента».

(Пусть wrappingMethod() будет метод, который будет завершен.)

wrappingMoriginalMethod()
С курсором после «gM» выше, принятие предложения о завершении дает:
wrappingMethod()

wrappingM(originalMethod()
С курсором после «gM» выше, принятие предложения о завершении дает:
wrappingMethod(originalMethod()
Обратите внимание, что мне пришлось добавить открытую скобку, чтобы предотвратить перезапись, но без лишних скобок.

wrappingM originalMethod()
При наведении курсора после «gM» выше, принятие предложения о завершении дает:
wrappingMethod(parameterGuess) originalMethod()

Я считаю, что это самый удобный выбор на данный момент. Я ДУМАЮ, что было бы неплохо, если бы существовала «умная» функция вставки скобок, которая НЕ вставляла бы паренсы, если заканчивала прямо перед существующим пареном, и так как я В любом случае ЖЕЛАЮ ... было бы еще лучше, если бы она могла проверить эти существующие парены, чтобы увидеть, есть ли у меня аргументы, которые я ищу или нет, и сделать что-то умное ИЛИ проверить метод после моей точки вставки, чтобы увидеть, должен ли он быть аргументом к моему завершению, и просто пойти дальше и сделать это и поставить закрытие парен за ним и ДО точки с запятой, если она там уже была.

Опять же, если IDE напишет ВЕСЬ мой код, мне очень быстро надоест.

4 голосов
/ 26 марта 2012

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

  1. Перейти к настройкам: Java => Редактор => Шаблон
  2. New
  3. Напишите любое соответствующее имя
  4. В контексте выберите операторы Java
  5. Запись внутри шаблона: StringManipulator.uppercase ($ {line_selection} $ {cursor});
  6. Хорошо и снова хорошо
  7. Теперь, когда вы хотите добавить функцию, просто выделите текст для окружения, нажмите alt + shift + z и выберите шаблон, который вы ранее создали

Надеюсь, это поможет

...