Подтвердить что ты не робот

Параметры форматирования Eclipse для шаблона Builder

Я очень расстроен правилами форматирования Eclipse для серии квалифицированных вызовов (т.е. стиля шаблона Builder). Например, вот мое предпочтительное форматирование для некоторого кода, который создает новый объект Apache Commons CLI Options:

  Options options = new Options()
      .addOption(OPTION_HELP_SHORT, OPTION_HELP, false, "print usage information")
      .addOption(OPTION_VERSION_SHORT, OPTION_VERSION, false,
          "print version and exit")
      .addOption(OptionBuilder.withLongOpt(OPTION_PROPERTIES)
                     .hasArg()
                     .withArgName("FILE")
                     .withType(File.class)
                     .withDescription("specify a user properties file")
                     .create());

I.e., параметры завернуты и отступы, если необходимо, и все квалифицированные вызовы, кроме первого, если это необходимо, обернуты и отступы, если их больше одного. Если список параметров обертывается внутри квалифицированного вызова, вызов сначала должен быть завершен.

Форматирование по умолчанию в Eclipse ( "Wrap only when needed" для аргументов и invocations) приводит к следующему беспорядку:

  Options options = new Options().addOption(
      OPTION_HELP_SHORT, OPTION_HELP, false, "print usage information")
      .addOption(OPTION_VERSION_SHORT, OPTION_VERSION, false,
          "print version and exit").addOption(
          OptionBuilder.withLongOpt(OPTION_PROPERTIES).hasArg().withArgName(
              "FILE").withType(File.class).withDescription(
              "specify a user properties file").create());

Переход в "Стиль Java-кода → Formatter → Line Wrapping" и параметр переноса строки на "Обертка всех элементов, кроме первого элемента, если это не необходимо" для выходов:

  Options options = new Options().addOption(
      OPTION_HELP_SHORT, OPTION_HELP, false, "print usage information")
      .addOption(OPTION_VERSION_SHORT, OPTION_VERSION, false,
          "print version and exit")
      .addOption(
          OptionBuilder.withLongOpt(OPTION_PROPERTIES).hasArg().withArgName(
              "FILE").withType(File.class).withDescription(
              "specify a user properties file").create());

Мне не нравится, что выражение OptionBuilder не обернуто или что "FILE" обертывается без обертывания withArgName.

Изменение отступов на "Отступ по столбцу" дает:

  Options options = new Options().addOption(OPTION_HELP_SHORT, OPTION_HELP,
                                     false, "print usage information")
                                 .addOption(OPTION_VERSION_SHORT,
                                     OPTION_VERSION, false,
                                     "print version and exit")
                                 .addOption(
                                     OptionBuilder.withLongOpt(
                                                      OPTION_PROPERTIES)
                                                  .hasArg()
                                                  .withArgName("FILE")
                                                  .withType(File.class)
                                                  .withDescription(
                                                      "specify a user properties file")
                                                  .create());

Разрывает линии, где я бы предпочел, но слишком сильно переместил вещи вправо.

Есть ли способ убедить Eclipse применить мой предпочтительный стиль форматирования или нечто более близкое к нему, чем любое из вышеперечисленных?

4b9b3361

Ответ 1

Использовать комментарии:

   Object o = foo() //
      .bar() //
      .toString();

Ответ 2

Отключение форматирования с комментариями или вставка комментариев строки слишком утомительны.

Лучший способ описан здесь:

... или вы можете выбрать "Линейная упаковка". Никогда не присоединяться к уже завернутому линии "по всему миру. Затем вы можете разбить его вручную и форматировать будет только форматировать внутренние строки (или добавить дополнительные разрывы строк, если необходимо).

С помощью этого параметра форматировщик Eclipse перестанет разрушать ваши инструкции для строителя.

enter image description here

Ответ 5

В меню выберите "Окно" → "Настройки", когда откроется окно, выберите "Java" - "Стиль кода" → "Форматировать", и оттуда вы можете создать свой собственный стиль форматирования, выбрав новый или отредактированный вариант. При редактировании профиля форматирования открывается новое окно, которое дает вам множество различных опций.