Как да добавите персонализиран токен SuppressWarnings в Eclipse

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

Как може да уведоми Eclipse, че това всъщност е поддържан токен SuppressWarnings и че не трябва да го маркира с предупреждение?

Не търся начин потребителят да потисне предупреждението. Знам за предпочитанието "Игнориране на необработен токен в SuppressWarnings" в Eclipse. Това е заобиколно решение и има недостатъка, че Eclipse изобщо не отчита никакви неподдържани токени, което прави доста трудно напр. намерете печатна грешка в токен SuppressWarnings.

Това, което търся, е начин, по който аз като разработчик на добавки мога да разширя Eclipse, така че да разпознава PMD токена като поддържан SuppressWarnings токен.

Досега открих само, че токенът, поддържан от Eclipse, е твърдо кодиран в Java компилатора на Eclipse, но не са намерили точка на разширение или нещо друго, което позволява добавям токена PMD към списъка с поддържани токени SuppressWarnings.


person eclipse-pmd    schedule 06.01.2014    source източник
comment
Решавали ли сте някога този проблем?   -  person matt freake    schedule 04.03.2015
comment
За съжаление не. Опитах заобиколно решение, при което предупрежденията се изтриват веднага след създаването им, но така и не успях да го накарам да работи правилно.   -  person eclipse-pmd    schedule 04.03.2015
comment
Какво ще кажете за заявка за функция на eclipse.org, която позволява разширяването на списъка чрез плъгин?   -  person kon    schedule 28.05.2015
comment
Ще се радвам на такава заявка за функция   -  person Danny Lo    schedule 03.06.2015
comment
Просто исках да създам заявка за функция на eclipse.org. Както се оказва, вече има почти 10-годишна заявка за функция: Extensionpoint за допълнителни SuppressWarnings токени. Добавих изискванията си и подкрепих искането. Предлагам ви да направите същото.   -  person eclipse-pmd    schedule 06.06.2015
comment
Гледам org.jboss .tools.common.validation и аз ясно осъзнавам, че позволяват използването на персонализирани SuppressWarnings чрез дефиниране на точка на разширение org.jboss.tools.common.validation.warnings. Но все още не разбирам как се прилага това. Може би ще е интересно и за вас. Ако разберете нещо, бихте ли ме уведомили, моля?   -  person Danny Lo    schedule 10.06.2015
comment
Ето съответната заявка за функция: issues.jboss.org/browse/JBIDE-10187 Според коментарите те също са наясно с проблема. Те го решиха, като използваха споменатия Ignore unhandled token в предпочитанието SuppressWarnings. Потребителят решава дали това предпочитание трябва да бъде активирано за проект или глобално. Уви, няма друг начин.   -  person Danny Lo    schedule 15.06.2015
comment
Класът, който реагира на описаното поведение, е AddSuppressWarningsMarkerResolution   -  person Danny Lo    schedule 15.06.2015


Отговори (1)


Това, което бихте могли да направите, е да напишете малък плъгин, който използва Equinox Weaving Service, за да прихване извикванията на този метод и да върне персонализирани екземпляри на IrritantSet от него. Това би изисквало малко обикаляне около кода на компилатора, но не би трябвало да е твърде трудно.

Недостатъкът е, че може да се повреди с JDT актуализации и ще работи само в Eclipse, който има инсталиран този плъгин.

Вижте този урок, за да научите как да напишете плъгин, който използва тъкачна услуга.

person Michał Grzejszczak    schedule 21.05.2015