Я создал плагин для проверки на основе codan
и пытаюсь настроить режимы запуска.
Моя программа проверки расширяет org.eclipse.cdt.codan.core.cxx.model.AbstractIndexAstChecker
и переопределяет initPreferences
, поскольку не нашла расширенияпункт, посвященный этому использованию.Файл plugin.xml
должен предлагать декларативный способ, лучше ИМХО.
@Override
public void initPreferences( IProblemWorkingCopy problem ) {
super.initPreferences( problem );
final RootProblemPreference pp = (RootProblemPreference)problem.getPreference();
final LaunchModeProblemPreference lmpp = pp.getLaunchModePreference();
lmpp.addLaunchMode( CheckerLaunchMode.RUN_ON_FULL_BUILD, Boolean.FALSE );
lmpp.addLaunchMode( CheckerLaunchMode.RUN_ON_INC_BUILD , Boolean.FALSE );
lmpp.addLaunchMode( CheckerLaunchMode.RUN_ON_DEMAND , Boolean.TRUE );
lmpp.addLaunchMode( CheckerLaunchMode.RUN_ON_FILE_OPEN , Boolean.FALSE );
lmpp.addLaunchMode( CheckerLaunchMode.RUN_AS_YOU_TYPE , Boolean.TRUE );
lmpp.addLaunchMode( CheckerLaunchMode.RUN_ON_FILE_SAVE , Boolean.FALSE );
final SuppressionCommentProblemPreference scp = pp.getSuppressionCommentPreference();
scp.setValue( "//[[derogations(" + problem.getName() + ")]]" );
problem.setPreference((IProblemPreference)pp.clone());
System.out.println( problem.getName() + ": " + problem.getPreference());
}
Во время выполнения консоль показывает успешность инициализации:
...
RAF-LNG-020: [org.eclipse.cdt.codan.core.param.FileScopeProblemPreference@20676b19, [(boolean)RUN_ON_FULL_BUILD=false, (boolean)RUN_ON_INC_BUILD=false, (boolean)RUN_ON_FILE_OPEN=false, (boolean)RUN_ON_FILE_SAVE=false, (boolean)RUN_AS_YOU_TYPE=true, (boolean)RUN_ON_DEMAND=true], (string)suppression_comment=//[[derogations(RAF-LNG-020)]]]
RAF-LNG-030: [org.eclipse.cdt.codan.core.param.FileScopeProblemPreference@1f0ca550, [(boolean)RUN_ON_FULL_BUILD=false, (boolean)RUN_ON_INC_BUILD=false, (boolean)RUN_ON_FILE_OPEN=false, (boolean)RUN_ON_FILE_SAVE=false, (boolean)RUN_AS_YOU_TYPE=true, (boolean)RUN_ON_DEMAND=true], (string)suppression_comment=//[[derogations(RAF-LNG-030)]]]
...
1) Первая проблема:
- Окно -> Настройки -> C / C ++ -> Анализ кода -> Настроить выделенное (кнопка) -> Запуск (вкладка) показывает:
[X] Run as you type
[ ] Run on file open
[ ] Run as file save
[X] Run on incremental build
[X] Run on full build
[X] Run on demand
2) Вторая проблема:
- Когда исходный файл C ++ открывается в редакторе, вызывается моя программа проверки и выдается сообщение об ошибках.
Как я действительно могу настроить предпочтения?