Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package git4idea.actions;
package consulo.git.action;

import consulo.annotation.component.ActionImpl;
import consulo.annotation.component.ActionParentRef;
Expand All @@ -22,6 +22,9 @@
import consulo.git.localize.GitLocalize;
import consulo.ui.ex.action.AnSeparator;
import consulo.ui.ex.action.DefaultActionGroup;
import git4idea.actions.GitCheckoutRevisionAction;
import git4idea.actions.GitCreateNewBranchAction;
import git4idea.actions.GitCreateTagAction;
import git4idea.reset.GitResetAction;

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package git4idea.actions;
package consulo.git.action;

import consulo.annotation.component.ActionImpl;
import consulo.annotation.component.ActionParentRef;
Expand Down
25 changes: 25 additions & 0 deletions plugin/src/main/java/consulo/git/action/MainMenuPatchGroup.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package consulo.git.action;

import consulo.annotation.component.ActionImpl;
import consulo.annotation.component.ActionRef;
import consulo.application.dumb.DumbAware;
import consulo.git.localize.GitLocalize;
import consulo.ui.ex.action.DefaultActionGroup;

/**
* @author UNV
* @since 2025-10-03
*/
@ActionImpl(
id = "Patch.MainMenu",
children = {
@ActionRef(id = "ChangesView.CreatePatch"),
@ActionRef(id = "ChangesView.ApplyPatch"),
@ActionRef(id = "ChangesView.ApplyPatchFromClipboard")
}
)
public class MainMenuPatchGroup extends DefaultActionGroup implements DumbAware {
public MainMenuPatchGroup() {
super(GitLocalize.groupMainMenuPatchText(), true);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package consulo.git.action;

import consulo.annotation.component.ActionImpl;
import consulo.annotation.component.ActionRef;
import consulo.application.dumb.DumbAware;
import consulo.git.localize.GitLocalize;
import consulo.ui.ex.action.DefaultActionGroup;import git4idea.actions.GitStash;import git4idea.actions.GitUnstash;

/**
* @author UNV
* @since 2025-10-03
*/
@ActionImpl(
id = "Git.MainMenu.LocalChanges",
children = {
@ActionRef(id = "ChangesView.Shelve"),
@ActionRef(id = "Vcs.Show.Shelf"),
@ActionRef(type = GitStash.class),
@ActionRef(type = GitUnstash.class),
@ActionRef(id = "ChangesView.Revert")
//@ActionRef(id = "Vcs.UmlDiff")
}
)
public class MainMenuUncommittedChangesGroup extends DefaultActionGroup implements DumbAware {
public MainMenuUncommittedChangesGroup() {
super(GitLocalize.groupMainMenuUncommittedChangesText(), true);
}
}
28 changes: 28 additions & 0 deletions plugin/src/main/java/consulo/git/action/RebaseActionGroup.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package consulo.git.action;

import consulo.annotation.component.ActionImpl;
import consulo.annotation.component.ActionRef;
import consulo.git.localize.GitLocalize;
import consulo.versionControlSystem.distributed.repository.Repository;
import git4idea.actions.GitRebaseAbort;
import git4idea.actions.GitRebaseContinue;
import git4idea.actions.GitRebaseSkip;
import git4idea.actions.GitRepositoryStateActionGroup;

/**
* @author UNV
* @since 2025-10-03
*/
@ActionImpl(
id = "Git.MainMenu.RebaseActions",
children = {
@ActionRef(type = GitRebaseAbort.class),
@ActionRef(type = GitRebaseContinue.class),
@ActionRef(type = GitRebaseSkip.class)
}
)
public class RebaseActionGroup extends GitRepositoryStateActionGroup {
public RebaseActionGroup() {
super(GitLocalize.groupMainMenuRebaseActionsText(), true, Repository.State.REBASING);
}
}
22 changes: 11 additions & 11 deletions plugin/src/main/java/git4idea/actions/GitAbstractRebaseAction.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import consulo.application.progress.ProgressIndicator;
import consulo.application.progress.ProgressManager;
import consulo.application.progress.Task;
import consulo.localize.LocalizeValue;
import consulo.project.Project;
import consulo.ui.annotation.RequiredUIAccess;
import consulo.ui.ex.action.AnActionEvent;
Expand All @@ -33,31 +34,30 @@

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import static consulo.util.collection.ContainerUtil.newArrayList;
import static consulo.util.lang.ObjectUtil.assertNotNull;
import static git4idea.GitUtil.*;

abstract class GitAbstractRebaseAction extends DumbAwareAction {
public abstract class GitAbstractRebaseAction extends DumbAwareAction {
protected GitAbstractRebaseAction(@Nonnull LocalizeValue text) {
super(text);
}

@Override
@RequiredUIAccess
public void update(@Nonnull AnActionEvent e) {
super.update(e);
Project project = e.getData(Project.KEY);
if (project == null || !hasGitRepositories(project)) {
e.getPresentation().setEnabledAndVisible(false);
}
else {
e.getPresentation().setEnabledAndVisible(hasRebaseInProgress(project));
}
e.getPresentation().setEnabledAndVisible(project != null && hasGitRepositories(project) && hasRebaseInProgress(project));
}

@Override
@RequiredUIAccess
public final void actionPerformed(AnActionEvent e) {
final Project project = e.getRequiredData(Project.KEY);
ProgressManager progressManager = ProgressManager.getInstance();
String progressTitle = getProgressTitle();
LocalizeValue progressTitle = getProgressTitle();
if (getRepositoryManager(project).hasOngoingRebase()) {
progressManager.run(new Task.Backgroundable(project, progressTitle) {
@Override
Expand All @@ -80,7 +80,7 @@ public void run(@Nonnull ProgressIndicator indicator) {
}

@Nonnull
protected abstract String getProgressTitle();
protected abstract LocalizeValue getProgressTitle();

protected abstract void performActionForProject(@Nonnull Project project, @Nonnull ProgressIndicator indicator);

Expand All @@ -101,7 +101,7 @@ private GitRepository chooseRepository(@Nonnull Project project, @Nonnull Collec
if (repositories.size() == 1) {
return firstRepo;
}
ArrayList<VirtualFile> roots = newArrayList(getRootsFromRepositories(repositories));
List<VirtualFile> roots = new ArrayList<>(getRootsFromRepositories(repositories));
GitRebaseActionDialog dialog = new GitRebaseActionDialog(project, getTemplatePresentation().getText(), roots, firstRepo.getRoot());
dialog.show();
VirtualFile root = dialog.selectRoot();
Expand Down
5 changes: 5 additions & 0 deletions plugin/src/main/java/git4idea/actions/GitAction.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
*/
package git4idea.actions;

import consulo.localize.LocalizeValue;
import consulo.project.Project;
import consulo.ui.annotation.RequiredUIAccess;
import consulo.ui.ex.action.AnActionEvent;
Expand All @@ -28,6 +29,10 @@
* @author Kirill Likhodedov
*/
public abstract class GitAction extends DumbAwareAction {
protected GitAction(@Nonnull LocalizeValue text) {
super(text);
}

@Override
@RequiredUIAccess
public void update(@Nonnull AnActionEvent e) {
Expand Down
3 changes: 2 additions & 1 deletion plugin/src/main/java/git4idea/actions/GitAdd.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

import consulo.annotation.component.ActionImpl;
import consulo.annotation.component.ActionRef;
import consulo.git.localize.GitLocalize;
import consulo.localize.LocalizeValue;
import consulo.platform.base.icon.PlatformIconGroup;
import consulo.ui.ex.action.AnActionEvent;
Expand All @@ -27,7 +28,7 @@
@ActionImpl(id = "Git.Add", shortcutFrom = @ActionRef(id = "ChangesView.AddUnversioned"))
public class GitAdd extends ScheduleForAdditionAction {
public GitAdd() {
super(LocalizeValue.localizeTODO("Add"), LocalizeValue.localizeTODO("Add"), PlatformIconGroup.generalAdd());
super(GitLocalize.actionAddText(), LocalizeValue.empty(), PlatformIconGroup.generalAdd());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
import java.util.Collections;

import consulo.annotation.component.ActionImpl;
import consulo.component.ComponentManager;
import consulo.git.localize.GitLocalize;
import consulo.project.Project;
import consulo.versionControlSystem.log.Hash;
Expand Down
24 changes: 15 additions & 9 deletions plugin/src/main/java/git4idea/actions/GitFetch.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,18 @@
*/
package git4idea.actions;

import consulo.annotation.component.ActionImpl;
import consulo.application.progress.ProgressIndicator;
import consulo.application.progress.Task;
import consulo.git.localize.GitLocalize;
import consulo.localize.LocalizeValue;
import consulo.ui.annotation.RequiredUIAccess;
import consulo.versionControlSystem.VcsException;
import consulo.virtualFileSystem.VirtualFile;
import consulo.project.Project;
import git4idea.GitUtil;
import git4idea.GitVcs;
import git4idea.actions.GitRepositoryAction;
import git4idea.repo.GitRepositoryManager;
import git4idea.update.GitFetcher;
import jakarta.annotation.Nonnull;
Expand All @@ -34,7 +37,12 @@
/**
* Git "fetch" action
*/
@ActionImpl(id = "Git.Fetch")
public class GitFetch extends GitRepositoryAction {
public GitFetch() {
super(GitLocalize.actionFetchText());
}

@Override
@Nonnull
protected LocalizeValue getActionName() {
Expand All @@ -45,19 +53,17 @@ protected LocalizeValue getActionName() {
protected void perform(
@Nonnull final Project project,
@Nonnull final List<VirtualFile> gitRoots,
@Nonnull final VirtualFile defaultRoot,
final Set<VirtualFile> affectedRoots,
final List<VcsException> exceptions
@Nonnull VirtualFile defaultRoot,
Set<VirtualFile> affectedRoots,
List<VcsException> exceptions
) throws VcsException {
GitVcs.runInBackground(new Task.Backgroundable(project, "Fetching...", false) {
GitVcs.runInBackground(new Task.Backgroundable(project, LocalizeValue.localizeTODO("Fetching..."), false) {
@Override
@RequiredUIAccess
public void run(@Nonnull ProgressIndicator indicator) {
GitRepositoryManager repositoryManager = GitUtil.getRepositoryManager(project);
new GitFetcher(project, indicator, true).fetchRootsAndNotify(
GitUtil.getRepositoriesFromRoots(repositoryManager, gitRoots),
null,
true
);
new GitFetcher(project, indicator, true)
.fetchRootsAndNotify(GitUtil.getRepositoriesFromRoots(repositoryManager, gitRoots), null, true);
}
});
}
Expand Down
14 changes: 11 additions & 3 deletions plugin/src/main/java/git4idea/actions/GitFileActionGroup.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package git4idea.actions;

import consulo.annotation.component.ActionImpl;
import consulo.annotation.component.ActionRef;
import consulo.application.dumb.DumbAware;
import consulo.codeEditor.Editor;
import consulo.ui.ex.action.DefaultActionGroup;
Expand All @@ -16,14 +18,20 @@
import java.util.List;

// from kotlin
@ActionImpl(
id = "Git.MainMenu.FileActions",
children = @ActionRef(id = "Git.FileActions")
)
public class GitFileActionGroup extends DefaultActionGroup implements DumbAware {
@RequiredUIAccess
public GitFileActionGroup() {
super(GitLocalize.groupMainMenuCurrentFileText(), true);
}

@Override
@RequiredUIAccess
public void update(@Nonnull AnActionEvent e) {
Presentation presentation = e.getPresentation();

presentation.setTextValue(GitLocalize.groupMainmenuVcsCurrentFileText());

VirtualFile[] data = e.getData(VirtualFile.KEY_OF_ARRAY);
if (data == null) {
return;
Expand Down
51 changes: 47 additions & 4 deletions plugin/src/main/java/git4idea/actions/GitMainMenuActionGroup.java
Original file line number Diff line number Diff line change
@@ -1,22 +1,65 @@
package git4idea.actions;

import consulo.annotation.component.ActionImpl;
import consulo.annotation.component.ActionParentRef;
import consulo.annotation.component.ActionRef;
import consulo.annotation.component.ActionRefAnchor;
import consulo.application.dumb.DumbAware;
import consulo.git.action.*;
import consulo.project.Project;
import consulo.ui.annotation.RequiredUIAccess;
import consulo.ui.ex.action.AnActionEvent;
import consulo.ui.ex.action.DefaultActionGroup;
import consulo.ui.ex.action.Presentation;
import consulo.ui.ex.action.*;
import consulo.versionControlSystem.AbstractVcs;
import consulo.versionControlSystem.ProjectLevelVcsManager;
import git4idea.GitVcs;
import git4idea.ui.branch.GitBranchesAction;
import jakarta.annotation.Nonnull;

import java.util.Objects;

// from kotlin
@ActionImpl(
id = "Git.MainMenu",
children = {
@ActionRef(id = IdeActions.ACTION_CHECKIN_PROJECT),
@ActionRef(id = "Vcs.Push"),
@ActionRef(id = "Vcs.UpdateProject"),
@ActionRef(type = GitPull.class),
@ActionRef(type = GitFetch.class),
@ActionRef(type = AnSeparator.class),
@ActionRef(type = GitMerge.class),
//@ActionRef(id = "Git.MainMenu.MergeActions"),
@ActionRef(type = GitRebase.class),
@ActionRef(type = RebaseActionGroup.class),
@ActionRef(type = GitResolveConflictsAction.class),
@ActionRef(type = AnSeparator.class),
@ActionRef(type = GitBranchesAction.class),
@ActionRef(type = GitCreateNewBranchAction.class),
@ActionRef(type = GitTag.class),
@ActionRef(type = GitResetHead.class),
@ActionRef(type = AnSeparator.class),
@ActionRef(id = "Vcs.Show.Log"),
@ActionRef(type = MainMenuPatchGroup.class),
@ActionRef(type = MainMenuUncommittedChangesGroup.class),
@ActionRef(id = "Git.MainMenu.FileActions"),
@ActionRef(type = AnSeparator.class),
//@ActionRef(type = GitConfigureRemotesAction.class),
//@ActionRef(type = GitCloneAction.class),
//@ActionRef(type = AnSeparator.class),
@ActionRef(id = "Vcs.QuickListPopupAction")
//@ActionRef(type = AnSeparator.class),
//@ActionRef(type = GitAbortOperationAction$Revert.class),
//@ActionRef(type = GitAbortOperationAction$CherryPick.class)
},
parents = @ActionParentRef(
value = @ActionRef(id = "VcsGroups"),
anchor = ActionRefAnchor.AFTER,
relatedToAction = @ActionRef(id = "Vcs.MainMenu")
)
)
public class GitMainMenuActionGroup extends DefaultActionGroup implements DumbAware {
@RequiredUIAccess
@Override
@RequiredUIAccess
public void update(@Nonnull AnActionEvent e) {
Presentation presentation = e.getPresentation();

Expand Down
Loading
Loading