diff --git a/platform/lang-impl/src/com/intellij/tools/Tool.java b/platform/lang-impl/src/com/intellij/tools/Tool.java index 82a2fcb0612a..7971bd8c168b 100644 --- a/platform/lang-impl/src/com/intellij/tools/Tool.java +++ b/platform/lang-impl/src/com/intellij/tools/Tool.java @@ -4,6 +4,7 @@ package com.intellij.tools; import com.intellij.execution.ExecutionException; import com.intellij.execution.configurations.GeneralCommandLine; +import com.intellij.execution.configurations.PtyCommandLine; import com.intellij.execution.executors.DefaultRunExecutor; import com.intellij.execution.process.OSProcessHandler; import com.intellij.execution.process.ProcessHandler; @@ -23,6 +24,7 @@ import com.intellij.openapi.fileEditor.FileDocumentManager; import com.intellij.openapi.options.SchemeElement; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Comparing; +import com.intellij.openapi.util.registry.Registry; import com.intellij.openapi.util.text.StringUtil; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; @@ -305,7 +307,9 @@ public class Tool implements SchemeElement { setWorkingDirectory("$ProjectFileDir$"); } - GeneralCommandLine commandLine = new GeneralCommandLine(); + GeneralCommandLine commandLine = Registry.is("use.tty.for.external.tools", false) + ? new PtyCommandLine().withConsoleMode(true) + : new GeneralCommandLine(); try { String paramString = MacroManager.getInstance().expandMacrosInString(getParameters(), true, dataContext); String workingDir = MacroManager.getInstance().expandMacrosInString(getWorkingDirectory(), true, dataContext); diff --git a/platform/util/resources/misc/registry.properties b/platform/util/resources/misc/registry.properties index f8e55ad18ff4..ea708d9272f0 100644 --- a/platform/util/resources/misc/registry.properties +++ b/platform/util/resources/misc/registry.properties @@ -87,6 +87,9 @@ idea.fix.mac.env=true idea.fix.mac.env.restartRequired=true idea.fix.mac.env.description=On Mac, use shell environment for external processes. +use.tty.for.external.tools=false +use.tty.for.external.tools.description=Use command line with TTY support to run 'External Tools' + idea.mac.prevent.app.nap=false idea.mac.prevent.app.nap.description=Prevent app nap during indexing and inspection