public void executeCompileTask(final CompileTask task,
                                 final CompileScope scope,
                                 final @NlsContexts.TabTitle String contentName,
                                 final Runnable onTaskFinished) {
    final CompilerTask progressManagerTask =
      new CompilerTask(myProject, contentName, false, false, true, isCompilationStartedAutomatically(scope));
    final CompileContextImpl compileContext = new CompileContextImpl(myProject, progressManagerTask, scope, false, false);

    FileDocumentManager.getInstance().saveAllDocuments();

    progressManagerTask.start(() -> {
      try {
        task.execute(compileContext);
      }
      catch (ProcessCanceledException ex) {
        // suppressed
      }
      finally {
        if (onTaskFinished != null) {
          onTaskFinished.run();
        }
      }
    }, null);
  }
public void executeCompileTask(final CompileTask task,
                                 final CompileScope scope,
                                 final @NlsContexts.TabTitle String contentName,
                                 final Runnable onTaskFinished)