режим запуска плагина codan - PullRequest
0 голосов
/ 17 марта 2019

Я создал плагин для проверки на основе 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 ++ открывается в редакторе, вызывается моя программа проверки и выдается сообщение об ошибках.

Как я действительно могу настроить предпочтения?

...