ruby profiler moved to new API + export rbspy data

IDEA-CR-44447

(cherry picked from commit fa966bd13a30e0b3c5ab4825bc227667edfcb22a)
This commit is contained in:
Viuginov Nickolay
2019-03-21 21:42:26 +03:00
parent 2d637c82ca
commit 27663069fa
2 changed files with 36 additions and 1 deletions
@@ -2,6 +2,7 @@
package com.intellij.execution.configuration;
import com.intellij.execution.ExecutionException;
import com.intellij.execution.Executor;
import com.intellij.execution.Location;
import com.intellij.execution.configurations.GeneralCommandLine;
import com.intellij.execution.configurations.RunConfigurationBase;
@@ -100,6 +101,25 @@ public abstract class RunConfigurationExtensionBase<T extends RunConfigurationBa
@NotNull final GeneralCommandLine cmdLine,
@NotNull final String runnerId) throws ExecutionException;
/**
* Patches the command line of the process about to be started by the underlying run configuration.
*
* @param configuration the underlying run configuration.
* @param runnerSettings the runner-specific settings.
* @param cmdLine the command line of the process about to be started.
* @param runnerId the ID of the {@link com.intellij.execution.runners.ProgramRunner} used to start the process.
* @param executor the executor which is using to run the configuration
* @throws ExecutionException if there was an error configuring the command line and the execution should be canceled.
*/
protected void patchCommandLine(@NotNull final T configuration,
@Nullable RunnerSettings runnerSettings,
@NotNull final GeneralCommandLine cmdLine,
@NotNull final String runnerId,
@NotNull final Executor executor) throws ExecutionException {
patchCommandLine(configuration, runnerSettings, cmdLine, runnerId);
}
/**
* Attaches the extension to a process that has been started.
*
@@ -2,6 +2,7 @@
package com.intellij.execution.configuration
import com.intellij.execution.ExecutionException
import com.intellij.execution.Executor
import com.intellij.execution.Location
import com.intellij.execution.configurations.GeneralCommandLine
import com.intellij.execution.configurations.RunConfigurationBase
@@ -9,14 +10,15 @@ import com.intellij.execution.configurations.RunnerSettings
import com.intellij.execution.process.ProcessHandler
import com.intellij.openapi.extensions.ExtensionPointName
import com.intellij.openapi.options.ExtendableSettingsEditor
import com.intellij.openapi.options.SettingsEditorGroup
import com.intellij.openapi.options.ExtensionSettingsEditor
import com.intellij.openapi.options.SettingsEditorGroup
import com.intellij.openapi.util.JDOMUtil
import com.intellij.openapi.util.Key
import com.intellij.openapi.util.WriteExternalException
import com.intellij.util.SmartList
import gnu.trove.THashMap
import org.jdom.Element
import org.jetbrains.annotations.ApiStatus
import java.util.*
private val RUN_EXTENSIONS = Key.create<List<Element>>("run.extension.elements")
@@ -128,6 +130,19 @@ open class RunConfigurationExtensionsManager<U : RunConfigurationBase<*>, T : Ru
}
}
@ApiStatus.Experimental
@Throws(ExecutionException::class)
open fun patchCommandLine(configuration: U,
runnerSettings: RunnerSettings?,
cmdLine: GeneralCommandLine,
runnerId: String,
executor: Executor) {
// only for enabled extensions
processEnabledExtensions(configuration, runnerSettings) {
it.patchCommandLine(configuration, runnerSettings, cmdLine, runnerId, executor)
}
}
@Throws(ExecutionException::class)
open fun patchCommandLine(configuration: U, runnerSettings: RunnerSettings?, cmdLine: GeneralCommandLine, runnerId: String) {
// only for enabled extensions