1
我正在使用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的返回值更改为IProblem.AnnotaionCircularRef(类似的东西),但我得到了相同的结果。