Вы должны быть в состоянии сделать это, используя точку расширения org.eclipse.cdt.codan.core.checkerEnablement
.
Я не могу найти сгенерированную документацию для него, но вы можете увидеть схему для нее здесь .
Точка расширения позволяет вам указать класс, унаследованный от org.eclipse.cdt.codan.internal.core.ICheckerEnablementVerifier
, и предоставить метод boolean isCheckerEnabled(IChecker, IResource, CheckerLaunchMode)
, который определяет, может ли данная программа проверки работать с данным ресурсом в данном режиме запуска.Если какой-либо верификатор включения возвращает false, средство проверки не запускается.
Зарегистрируйте собственную реализацию ICheckerEnablementVerifier
в вашем плагине plugin.xml
:
<extension
point="org.eclipse.cdt.codan.core.checkerEnablement">
<verifier class="path.to.MyCheckerEnablementVerifier" />
</extension>
Следующая реализация проверяет тип содержимого:
public class MyCheckerEnablementVerifier implements ICheckerEnablementVerifier {
@Override
public boolean isCheckerEnabled(IChecker checker, IResource resource, CheckerLaunchMode mode) {
IContentTypeManager contentTypeManager = Platform.getContentTypeManager();
IContentType contentType = contentTypeManager.findContentTypeFor(resource.getLocation().toOSString());
if (contentType.getId().equals("contenttypeid")) {
return false;
} else {
return true;
}
}
}