feat(Action): add UpdateSolutionReferencesAction

This commit is contained in:
Lance 2024-08-31 17:27:53 +08:00
parent fbca5919e7
commit 15ec12d518
4 changed files with 80 additions and 4 deletions

View File

@ -7,8 +7,11 @@ import com.intellij.execution.ui.ConsoleViewContentType;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.CommonDataKeys;
import com.intellij.openapi.progress.ProgressIndicator;
import com.intellij.openapi.progress.Task;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
import groovyjarjarantlr4.v4.runtime.misc.NotNull;
public class ReUpdateReferencesByProjectChainAction extends BaseAction {
@ -26,10 +29,19 @@ public class ReUpdateReferencesByProjectChainAction extends BaseAction {
if (file != null && project != null) {
String csprojPath = file.getPath();
String command = "jenkins reUpdateReferences " + csprojPath;
CommandHelper.executeCommand(consoleView, command, "nugethelper.exe");
if (project != null) {
new Task.Backgroundable(project, "Updating Solution References", false) {
@Override
public void run(@NotNull ProgressIndicator indicator) {
// 在这里执行你的CMD命令
CommandHelper.executeCommand(consoleView, command, "nugethelper.exe");
printToConsole("========== Finish to ReUpdateReferencesByProjectChainAction. ==========", ConsoleViewContentType.NORMAL_OUTPUT);
}
}.queue();
}
}
printToConsole("========== Finish to ReUpdateReferencesByProjectChainAction. ==========", ConsoleViewContentType.NORMAL_OUTPUT);
}
@Override

View File

@ -6,8 +6,11 @@ import com.intellij.execution.ui.ConsoleView;
import com.intellij.execution.ui.ConsoleViewContentType;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.CommonDataKeys;
import com.intellij.openapi.progress.ProgressIndicator;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.progress.Task;
import groovyjarjarantlr4.v4.runtime.misc.NotNull;
public class UpdateReferencesByProjectChainAction extends BaseAction {
@ -25,10 +28,18 @@ public class UpdateReferencesByProjectChainAction extends BaseAction {
if (file != null && project != null) {
String csprojPath = file.getPath();
String command = "jenkins updateReferences " + csprojPath;
CommandHelper.executeCommand(consoleView, command, "nugethelper.exe");
if (project != null) {
new Task.Backgroundable(project, "Updating Solution References", false) {
@Override
public void run(@NotNull ProgressIndicator indicator) {
// 在这里执行你的CMD命令
CommandHelper.executeCommand(consoleView, command, "nugethelper.exe");
printToConsole("========== Finish to UpdateReferencesByProjectChain. ==========", ConsoleViewContentType.NORMAL_OUTPUT);
}
}.queue();
}
}
printToConsole("========== Finish to UpdateReferencesByProjectChain. ==========", ConsoleViewContentType.NORMAL_OUTPUT);
}
@Override

View File

@ -0,0 +1,52 @@
package com.dida.didanugetextension.action;
import com.dida.didanugetextension.action.base.BaseAction;
import com.dida.didanugetextension.util.CommandHelper;
import com.intellij.execution.ui.ConsoleView;
import com.intellij.execution.ui.ConsoleViewContentType;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.CommonDataKeys;
import com.intellij.openapi.progress.ProgressIndicator;
import com.intellij.openapi.progress.Task;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
import groovyjarjarantlr4.v4.runtime.misc.NotNull;
public class UpdateSolutionReferencesAction extends BaseAction {
public UpdateSolutionReferencesAction() {
super("Update Solution References");
}
@Override
protected void runAction(Project project, ConsoleView consoleView,AnActionEvent event) {
printToConsole("Begin to UpdateSolutionReferencesAction.", ConsoleViewContentType.NORMAL_OUTPUT);
// 获取选中的项目文件或目录
VirtualFile file = event.getDataContext().getData(CommonDataKeys.VIRTUAL_FILE);
if (file != null && project != null) {
String solutionPath = file.getPath();
String command = "jenkins updateReferences " + solutionPath + " VisualStudioExtension";
if (project != null) {
new Task.Backgroundable(project, "Updating Solution References", false) {
@Override
public void run(@NotNull ProgressIndicator indicator) {
// 在这里执行你的CMD命令
CommandHelper.executeCommand(consoleView, command, "nugethelper.exe");
printToConsole("========== Finish to UpdateSolutionReferencesAction. ==========", ConsoleViewContentType.NORMAL_OUTPUT);
}
}.queue();
}
}
}
@Override
public void update(AnActionEvent e) {
// 设置动作是否可见和启用
VirtualFile selectedFile = e.getData(CommonDataKeys.VIRTUAL_FILE);
boolean isCsprojFile = selectedFile != null && selectedFile.getName().endsWith(".sln");
e.getPresentation().setEnabledAndVisible(isCsprojFile);
}
}

View File

@ -32,6 +32,7 @@
<group id="DidaNuGetExtension.ActionGroup" text="DidaNuGetExtension" popup="true">
<add-to-group group-id="ProjectViewPopupMenu" anchor="last"/>
<action id="DidaNuGetExtension.UpdateSolutionReferencesAction" class="com.dida.didanugetextension.action.UpdateSolutionReferencesAction" text="UpdateSolutionReferencesAction"/>
<action id="DidaNuGetExtension.UpdateReferencesByProjectChain" class="com.dida.didanugetextension.action.UpdateReferencesByProjectChainAction" text="UpdateReferencesByProjectChain"/>
<action id="DidaNuGetExtension.ReUpdateReferencesByProjectChain" class="com.dida.didanugetextension.action.ReUpdateReferencesByProjectChainAction" text="ReUpdateReferencesByProjectChain"/>
</group>