<commit_before>// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package git4idea.checkin;

import com.intellij.openapi.extensions.ExtensionPointName;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Couple;
import com.intellij.openapi.vcs.FilePath;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;

import java.util.Collection;
import java.util.List;
import java.util.Objects;

/**
 * Extension point to force two-step committing of moved files.
 * This is necessary, when files are heavily modified and git rename detection might fail to detect renames.
 * 4ex: if files were converted from one programming language to another.
 * <p>
 * This will create two commits: commit with explicit file movements,
 * and commit with content modifications in these files and the rest of affected files
 */
@ApiStatus.Experimental
public abstract class GitCheckinExplicitMovementProvider {
  public static final ExtensionPointName<GitCheckinExplicitMovementProvider> EP_NAME =
    ExtensionPointName.create("Git4Idea.GitCheckinExplicitMovementProvider");

  public abstract boolean isEnabled(@NotNull Project project);<commit_msg>git: remove experimental API flag<commit_after>// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package git4idea.checkin;

import com.intellij.openapi.extensions.ExtensionPointName;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Couple;
import com.intellij.openapi.vcs.FilePath;
import org.jetbrains.annotations.NotNull;

import java.util.Collection;
import java.util.List;
import java.util.Objects;

/**
 * Extension point to force two-step committing of moved files.
 * This is necessary, when files are heavily modified and git rename detection might fail to detect renames.
 * 4ex: if files were converted from one programming language to another.
 * <p>
 * This will create two commits: commit with explicit file movements,
 * and commit with content modifications in these files and the rest of affected files
 */
public abstract class GitCheckinExplicitMovementProvider {
  public static final ExtensionPointName<GitCheckinExplicitMovementProvider> EP_NAME =
    ExtensionPointName.create("Git4Idea.GitCheckinExplicitMovementProvider");

  public abstract boolean isEnabled(@NotNull Project project);
{'fraction_non_alphanumeric': 0.06818181818181818, 'fraction_numerical': 0.01036682615629984, 'mean_word_length': 5.368020304568528, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3405741', 'n_tokens_mistral': 696, 'n_tokens_neox': 657, 'n_words': 248}