2014-01-06 6 views
9

Я пишу плагин PMD для Eclipse, который позволяет пользователям подавлять предупреждения PMD, добавляя аннотации, такие как @SuppressWarnings("PMD.ReturnEmptyArrayRatherThanNull"). Поскольку Eclipse не знает, что PMD.ReturnEmptyArrayRatherThanNull является действительным токеном, он предупреждает, что токен не поддерживается и предлагает быстрое исправление для его удаления.Как добавить пользовательский токен SuppressWarnings в Eclipse

Как это может позволить Eclipse знать, что это фактически поддерживаемый токен SuppressWarnings и что он не должен отмечать его предупреждением?

Я не ищу способ, которым пользователь может подавить предупреждение. Я знаю о предпочтении "Ignore unhandled token in SuppressWarnings" в Eclipse. Это обходное решение и имеет тот недостаток, что Eclipse не сообщает какой-либо неподдерживаемый токен вообще, что затрудняет его, например, найти опечатку в токене SuppressWarnings.

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

До сих пор я только нашел, что маркер поддерживается Eclipse, является hard coded into the Eclipse Java compiler, но не нашел точку расширения или что-то другое, что позволяет мне добавить маркер PMD в список поддерживаемого SuppressWarnings маркеров.

+0

Вы когда-нибудь разрешали эту проблему? –

+0

К сожалению, нет. Я пробовал обходной путь, где предупреждения удаляются сразу после их создания, но мне никогда не удавалось заставить его работать правильно. –

+1

Как насчет запроса функции на eclipse.org, который позволяет расширять список через плагин? – kon

ответ

0

Что вы можете сделать, это написать небольшой плагин, который использовал Equinox Weaving Service для перехвата вызовов этого метода и возврата из него специальных экземпляров IrritantSet. Это потребует немного слежки вокруг кода компилятора, но не должно быть слишком сложным.

Недостаток заключается в том, что он может сломаться с обновлениями JDT и будет работать только в Eclipse с установленным плагином.

См. this tutorial, чтобы узнать, как написать плагин с функцией ткачества.

Смежные вопросы