@Override
  public Promise<Result> compile(VirtualFile @NotNull [] files) {
    if (ApplicationManager.getApplication().isReadAccessAllowed()) {
      return run(createModulesFilesTask(files));
    }

    ProjectTask task = ReadAction.nonBlocking(() -> this.createModulesFilesTask(files)).executeSynchronously();
    return run(task);
  }
@Override
  public Promise<Result> compile(VirtualFile @NotNull [] files)