Intellij doExecute不使用DefaultProgramRunner触发

问题描述 投票:0回答:1

我正在尝试为Intellij开发一个将使用调试器的插件。

我以这个仓库为例,但就我而言,doExecute从未执行过。

https://github.com/mulesoft-labs/data-weave-intellij-plugin/blob/master/data-weave-plugin/src/main/java/org/mule/tooling/lang/dw/debug/WeaveDebuggerRunner.java

因此仅在我的文件中执行[方法。知道为什么会这样吗?

更新:由于ProgramRunner是在plugin.xml中定义的,因此我需要具有[[RunProfileState状态,我不能自行触发方法。

public class StudioScriptDebuggerRunner extends DefaultProgramRunner { @NotNull @Override public String getRunnerId() { return "StudioScriptDebuggerRunner"; } @Override public boolean canRun(@NotNull String executorId, @NotNull RunProfile profile) { return executorId.equals(DefaultDebugExecutor.EXECUTOR_ID) && profile instanceof StudioDebuggerRunConfiguration; } @Override protected RunContentDescriptor doExecute(@NotNull RunProfileState state, @NotNull ExecutionEnvironment env) throws ExecutionException { FileDocumentManager.getInstance().saveAllDocuments(); return super.doExecute(state, env); } @Override public void execute(@NotNull ExecutionEnvironment environment) throws ExecutionException { FileDocumentManager.getInstance().saveAllDocuments(); Project[] projects = ProjectManager.getInstance().getOpenProjects(); StudioConfigurationProvider config = StudioConfigurationProvider.getInstance(projects[0]); RunContentDescriptor descriptor = XDebuggerManager.getInstance(environment.getProject()).startSession(environment, new XDebugProcessStarter() { @NotNull public XDebugProcess start(@NotNull XDebugSession session) throws ExecutionException { final SDAPIClient client = new SDAPIClient(config.getHostname(), config.getUsername(), config.getPassword(), "StudioDebuggerClient"); client.createSession(); return new StudioDebuggerProcess(session, client); } }).getRunContentDescriptor(); environment.setContentToReuse(descriptor); } } plugin.xml

<programRunner id="StudioScriptDebuggerRunner" implementation="com.binarysushi.studio.debugger.StudioScriptDebuggerRunner" order="last"/>
java intellij-idea intellij-plugin
1个回答
1
投票
© www.soinside.com 2019 - 2024. All rights reserved.