@Nullable
  private VirtualFile export(@NotNull VirtualFile outputDir,
                             @NotNull File outputFile,
                             @NotNull Project project,
                             @NotNull CodeStyleSettings settings,
                             boolean isRoot,
                             boolean commentOutProperties,
                             @NotNull List<Language> languages,
                             EditorConfigPropertyKind @NotNull ... propertyKinds) {
    try {
      VirtualFile target = outputDir.createChildData(this, outputFile.getName());
      try (EditorConfigSettingsWriter settingsWriter =
             new EditorConfigSettingsWriter(project, target.getOutputStream(this), settings, isRoot, commentOutProperties)
               .forLanguages(languages)
               .forPropertyKinds(propertyKinds)) {
        settingsWriter.writeSettings();
        return target;
      }
    }
    catch (Exception e) {
      notifyFailed(e);
      return null;
    }
  }
@Nullable
  private VirtualFile export(@NotNull VirtualFile outputDir,
                             @NotNull File outputFile,
                             @NotNull Project project,
                             @NotNull CodeStyleSettings settings,
                             boolean isRoot,
                             boolean commentOutProperties,
                             @NotNull List<Language> languages,
                             EditorConfigPropertyKind @NotNull ... propertyKinds)