Пользовательские ошибки компилятора через участников компиляции

Я работаю над плагином Eclipse и хотел бы сделать некоторые из его предложений ошибками компилятора, если их не обработать, и поэтому я попытался создать участника компиляции, который создает ошибку компиляции, несмотря ни на что, но проект все еще компилируется, и он, похоже, не Работа. Мой код:

public class compilerNotificator extends CompilationParticipant{
    @Override
    public int aboutToBuild(@SuppressWarnings("unused") final IJavaProject project){
        return 0;
    }
    @Override
    public boolean isActive(@SuppressWarnings("unused") final IJavaProject project){
        return true;
    }
    @Override
    public void reconcile(final ReconcileContext context){
        final CategorizedProblem[] problems = new CategorizedProblem[1];
        problems[0] = new CategorizedProblem() {

            @Override
            public void setSourceStart(final int sourceStart) {
                // TODO Auto-generated method stub

            }

            @Override
            public void setSourceLineNumber(final int lineNumber) {
                // TODO Auto-generated method stub

            }

            @Override
            public void setSourceEnd(final int sourceEnd) {
                // TODO Auto-generated method stub

            }

            @Override
            public boolean isWarning() {
                // TODO Auto-generated method stub
                return true;
            }

            @Override
            public boolean isError() {
                // TODO Auto-generated method stub
                return true;
            }

            @Override
            public int getSourceStart() {
                // TODO Auto-generated method stub
                return 3;
            }

            @Override
            public int getSourceLineNumber() {
                // TODO Auto-generated method stub
                return 10;
            }

            @Override
            public int getSourceEnd() {
                // TODO Auto-generated method stub
                return 34;
            }

            @Override
            public char[] getOriginatingFileName() {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public String getMessage() {
                // TODO Auto-generated method stub
                return "This is some fucked up shit";
            }

            @Override
            public int getID() {
                // TODO Auto-generated method stub
                return 1000129;
            }

            @Override
            public String[] getArguments() {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public String getMarkerType() {
                // TODO Auto-generated method stub
                return "Bad";
            }

            @Override
            public int getCategoryID() {
                // TODO Auto-generated method stub
                return 5;
            }
        };
        context.putProblems("test", problems);
    }
}

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

Прямо сейчас приведенный выше код находится в коде страницы настроек плагина (в Windows -> Настройки). Спасибо!

Кстати, я уже пытался изменить возвращаемое значение aboutToBuild на IPProblem.AnnotaionCircularRef (что-то в этом роде), но получил тот же результат.


person Tomer.Z    schedule 12.06.2014    source источник


Ответы (1)


Решено.

Вам нужно добавить точку расширения в plugin.xml следующим образом:

<extension point="org.eclipse.jdt.core.compilationParticipant">
<compilationParticipant 
class="Path.To.Package.MyCompilationParticipant"
id="Path.To.Package.MyCompilationParticipant">
</compilationParticipant>
</extension>
person Tomer.Z    schedule 12.06.2014