Added #2306 Export to VS Code project

This commit is contained in:
Jindra Petřík
2024-09-22 21:45:54 +02:00
parent 71b22c86e5
commit b7ca51c7da
8 changed files with 540 additions and 7 deletions

View File

@@ -27,6 +27,7 @@ import com.jpexs.decompiler.flash.configuration.ConfigurationItemChangeListener;
import com.jpexs.decompiler.flash.console.ContextMenuTools;
import com.jpexs.decompiler.flash.exporters.swf.SwfFlashDevelopExporter;
import com.jpexs.decompiler.flash.exporters.swf.SwfIntelliJIdeaExporter;
import com.jpexs.decompiler.flash.exporters.swf.SwfVsCodeExporter;
import com.jpexs.decompiler.flash.gui.debugger.DebuggerTools;
import com.jpexs.decompiler.flash.gui.helpers.CheckResources;
import com.jpexs.decompiler.flash.search.ScriptSearchResult;
@@ -506,6 +507,17 @@ public abstract class MainFrameMenu implements MenuBuilder {
mainFrame.getPanel().exportIdea((SWF) openable);
}
protected void exportVsCodeActionPerformed(ActionEvent evt) {
if (Main.isWorking()) {
return;
}
if (mainFrame.getPanel().checkEdited()) {
return;
}
mainFrame.getPanel().exportVsCode((SWF) openable);
}
protected void exportFlaActionPerformed(ActionEvent evt) {
if (Main.isWorking()) {
@@ -1005,10 +1017,12 @@ public abstract class MainFrameMenu implements MenuBuilder {
boolean isAs3 = false;
boolean canExportFlashDevelop = false;
boolean canExportIdea = false;
boolean canExportVsCode = false;
if (swf != null) {
isAs3 = swf.isAS3();
canExportFlashDevelop = SwfFlashDevelopExporter.canExportSwf(swf);
canExportIdea = SwfIntelliJIdeaExporter.canExportSwf(swf);
canExportVsCode = SwfVsCodeExporter.canExportSwf(swf);
}
if (abcSelected) {
isAs3 = true;
@@ -1085,6 +1099,8 @@ public abstract class MainFrameMenu implements MenuBuilder {
setMenuEnabled("/file/export/exportFlashDevelop", allSameSwf && openableSelected && isAs3 && !isWorking && canExportFlashDevelop);
setMenuEnabled("_/exportIdea", swfSelected && !isWorking && canExportIdea);
setMenuEnabled("/file/export/exportIdea", allSameSwf && openableSelected && isAs3 && !isWorking && canExportIdea);
setMenuEnabled("_/exportVsCode", swfSelected && !isWorking && canExportVsCode);
setMenuEnabled("/file/export/exportVsCode", allSameSwf && openableSelected && isAs3 && !isWorking && canExportVsCode);
setMenuEnabled("_/exportSelected", openableSelected && !isWorking);
setMenuEnabled("/file/export/exportSelected", openableSelected && !isWorking);
setMenuEnabled("/file/export/exportXml", swfSelected && !isWorking);
@@ -1185,6 +1201,7 @@ public abstract class MainFrameMenu implements MenuBuilder {
addMenuItem("_/exportFla", translate("menu.file.export.fla"), "exportfla32", this::exportFlaActionPerformed, PRIORITY_TOP, null, true, null, false);
addMenuItem("_/exportFlashDevelop", translate("menu.file.export.flashDevelop"), "exportflashdevelop32", this::exportFlashDevelopActionPerformed, PRIORITY_TOP, null, true, null, false);
addMenuItem("_/exportIdea", translate("menu.file.export.idea"), "exportidea32", this::exportIdeaActionPerformed, PRIORITY_TOP, null, true, null, false);
addMenuItem("_/exportVsCode", translate("menu.file.export.vsCode"), "exportvscode32", this::exportVsCodeActionPerformed, PRIORITY_TOP, null, true, null, false);
addMenuItem("_/exportAll", translate("menu.file.export.all"), "export32", this::exportAllActionPerformed, PRIORITY_TOP, null, true, null, false);
addMenuItem("_/exportSelected", translate("menu.file.export.selection"), "exportsel32", this::exportSelectedActionPerformed, PRIORITY_TOP, null, true, null, false);
addSeparator("_");
@@ -1219,8 +1236,9 @@ public abstract class MainFrameMenu implements MenuBuilder {
addMenuItem("/file/export", translate("menu.export"), null, null, 0, null, false, null, false);
addMenuItem("/file/export/exportFla", translate("menu.file.export.fla"), "exportfla32", this::exportFlaActionPerformed, PRIORITY_TOP, null, true, null, false);
addMenuItem("/file/export/exportFlashDevelop", translate("menu.file.export.flashDevelop"), "exportflashdevelop32", this::exportFlashDevelopActionPerformed, PRIORITY_TOP, null, true, null, false);
addMenuItem("/file/export/exportIdea", translate("menu.file.export.idea"), "exportidea32", this::exportIdeaActionPerformed, PRIORITY_TOP, null, true, null, false);
addMenuItem("/file/export/exportFlashDevelop", translate("menu.file.export.flashDevelop"), "exportflashdevelop32", this::exportFlashDevelopActionPerformed, PRIORITY_MEDIUM, null, true, null, false);
addMenuItem("/file/export/exportIdea", translate("menu.file.export.idea"), "exportidea32", this::exportIdeaActionPerformed, PRIORITY_MEDIUM, null, true, null, false);
addMenuItem("/file/export/exportVsCode", translate("menu.file.export.vsCode"), "exportvscode32", this::exportVsCodeActionPerformed, PRIORITY_MEDIUM, null, true, null, false);
addMenuItem("/file/export/exportXml", translate("menu.file.export.xml"), "exportxml32", this::exportXmlActionPerformed, PRIORITY_MEDIUM, null, true, null, false);
addMenuItem("/file/export/exportAll", translate("menu.file.export.all"), "export16", this::exportAllActionPerformed, PRIORITY_MEDIUM, null, true, new HotKey("CTRL+SHIFT+E"), false);
addMenuItem("/file/export/exportSelected", translate("menu.file.export.selection"), "exportsel16", this::exportSelectedActionPerformed, PRIORITY_MEDIUM, null, true, null, false);