Отступ подписи метода JavaDoc - PullRequest
0 голосов
/ 20 июля 2011

Я склонен использовать много разрывов строк в своем коде, чтобы держать вещи в основном в пределах ширины строки из 80 символов.Хотя некоторые могут найти это совершенно бесполезным, мне нравится редактировать код на вертикально повернутом экране, а также нравится этот узкий макет при выполнении различий.Независимо от предпочтений, это дало мне неожиданный результат при создании JavaDoc, более конкретно сигнатуры методов.

Предположим, у меня есть следующее:

public static 
        <C extends AcmeConstants, 
        B extends AcmeBundle<C>, 
        R extends AcmeBundleProvider<C, B>> //Type params
        R //Return type
        newInstance(final Class<R> spiClass, final String implementationClassName) 
        throws AcmeException {

    return newInstance(spiClass, 
                       implementationClassName, 
                       Thread.currentThread().getContextClassLoader());
}

Сумасшедшие параметры типа, как вы можетевидите, я выравниваю параметры типа, возвращаемый тип, объявление метода и предложение throws, чтобы все было несколько иначе.Опять же, вы можете найти этот очаровательный или прямо-таки отсталый, но проблема возникает при создании JavaDoc.Я получаю документацию, в которой каждый аргумент метода находится на новой строке и выровнен, хотя я этого не делал.На самом деле это не проблема, хотя, как ни странно, это превращает объявление параметра типа в одну строку.Однако настоящий кикер заключается в том, что он затем помещает предложение throws также в новую строку с оригинальным отступом!

Посмотрите, что я имею в виду:

public static <C extends AcmeConstants,B extends AcmeBundle<C>,R extends AcmeBundleProvider<C,B>> R newInstance(Class<R> spiClass,
                                                                                                                 String implementationClassName)
                                                               throws AcmeException

Этопочти так же, как это выглядит в сгенерированном JavaDoc.Есть ли способ заставить его перестать делать это и нормализовать пустое пространство или что-то?Прямо сейчас я должен выбрать между изменением моего формата кода или странным JavaDoc.

Кстати, я генерирую с помощью плагина Maven JavaDoc, но результат был одинаковым при использовании различных методов.

1 Ответ

4 голосов
/ 20 июля 2011

Javadoc генерируется Doclet , который видит только проанализированную версию вашего кода.То, что он выравнивает предложение throws аналогично исходному, является совпадением.Подпись, которую вы видите, на самом деле генерируется из MethodDoc , передаваемого платформой в Doclet.Если не считать изменения кода Doclet, вы не можете изменить формат вывода.Ничто не мешает вам постобработать его, но я сомневаюсь, что оно того стоит.

Кстати, альтернативные доклеты доступны в Интернете, что может быть более подходящим для настройки.

...