blob: ad811ce72b2ea7f9227b7d5c264e635821f73134 [file] [log] [blame]
package com.intellij.openapi.vcs.actions;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.DataContext;
import com.intellij.openapi.actionSystem.DefaultActionGroup;
import com.intellij.openapi.extensions.ExtensionPointName;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vcs.AbstractVcs;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.List;
/**
* @author Roman.Chernyatchik
*/
public interface VcsQuickListContentProvider {
ExtensionPointName<VcsQuickListContentProvider> EP_NAME = ExtensionPointName.create("com.intellij.vcsPopupProvider");
/**
* Allows to customise VCS actions popup for both custom VCS and general list
* @param project Project
* @param activeVcs Active vcs for current file. Null if context doesn't contain file or vcs is unknown
* @param dataContext Context
* @return actions list or null if do nothing
*/
@Nullable
List<AnAction> getVcsActions(@Nullable final Project project,
@Nullable final AbstractVcs activeVcs,
@Nullable final DataContext dataContext);
/**
* Allows to customise VCS actions popup if project isn't in VCS
* @param project Project
* @param dataContext Context
* @return actions list or null if do nothing
*/
@Nullable
List<AnAction> getNotInVcsActions(@Nullable final Project project,
@Nullable final DataContext dataContext);
/**
* @param activeVcs Active vcs for current file
* @param dataContext Context
* @return True if replace general actions with actions specified in getVcsActions() method. Otherwise
* custom actions will be inserted in general popup. Usually should be false.
*/
boolean replaceVcsActionsFor(@NotNull final AbstractVcs activeVcs,
@Nullable final DataContext dataContext);
}