public void settingsChanged() {
   DaemonCodeAnalyzerSettings settings = DaemonCodeAnalyzerSettings.getInstance();
   if (settings.isCodeHighlightingChanged(myLastSettings)) {
     restart();
   }
   myLastSettings = (DaemonCodeAnalyzerSettings) settings.clone();
 }
  public DaemonCodeAnalyzerImpl(
      Project project,
      DaemonCodeAnalyzerSettings daemonCodeAnalyzerSettings,
      EditorTracker editorTracker) {
    myProject = project;

    mySettings = daemonCodeAnalyzerSettings;
    myEditorTracker = editorTracker;
    myLastSettings = (DaemonCodeAnalyzerSettings) mySettings.clone();

    myFileStatusMap = new FileStatusMap(myProject);
    myPassExecutorService =
        new PassExecutorService(myProject) {
          protected void afterApplyInformationToEditor(
              final TextEditorHighlightingPass pass,
              final FileEditor fileEditor,
              final ProgressIndicator updateProgress) {
            if (fileEditor instanceof TextEditor) {
              log(updateProgress, pass, "Apply ");
              Editor editor = ((TextEditor) fileEditor).getEditor();
              repaintErrorStripeRenderer(editor);
            }
          }

          protected boolean isDisposed() {
            return myDisposed || super.isDisposed();
          }
        };
    Disposer.register(project, myPassExecutorService);
    Disposer.register(project, myFileStatusMap);
  }