feat: PTY emulation for non-debug runs
This commit is contained in:
parent
f5aa5c7be3
commit
48afc002c0
2 changed files with 9 additions and 1 deletions
|
@ -17,6 +17,11 @@ Changelog structure reference:
|
||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Project
|
||||||
|
- PTY emulation for non-debug runs. Fixes colored output in Ziglings.
|
||||||
|
|
||||||
## [15.0.3]
|
## [15.0.3]
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
|
@ -24,6 +24,7 @@ import com.intellij.execution.DefaultExecutionResult;
|
||||||
import com.intellij.execution.ExecutionException;
|
import com.intellij.execution.ExecutionException;
|
||||||
import com.intellij.execution.configurations.CommandLineState;
|
import com.intellij.execution.configurations.CommandLineState;
|
||||||
import com.intellij.execution.configurations.GeneralCommandLine;
|
import com.intellij.execution.configurations.GeneralCommandLine;
|
||||||
|
import com.intellij.execution.configurations.PtyCommandLine;
|
||||||
import com.intellij.execution.process.ProcessHandler;
|
import com.intellij.execution.process.ProcessHandler;
|
||||||
import com.intellij.execution.process.ProcessTerminatedListener;
|
import com.intellij.execution.process.ProcessTerminatedListener;
|
||||||
import com.intellij.execution.runners.ExecutionEnvironment;
|
import com.intellij.execution.runners.ExecutionEnvironment;
|
||||||
|
@ -54,7 +55,9 @@ public abstract class ProfileStateBase<T extends ZigExecConfigBase<T>> extends C
|
||||||
val workingDirectory = configuration.getWorkingDirectory();
|
val workingDirectory = configuration.getWorkingDirectory();
|
||||||
val zigExecutablePath = toolchain.pathToExecutable("zig");
|
val zigExecutablePath = toolchain.pathToExecutable("zig");
|
||||||
|
|
||||||
val cli = new GeneralCommandLine();
|
// TODO remove this check once JetBrains implements colored terminal in the debugger
|
||||||
|
// https://youtrack.jetbrains.com/issue/CPP-11622/ANSI-color-codes-not-honored-in-Debug-Run-Configuration-output-window
|
||||||
|
val cli = debug ? new GeneralCommandLine() : new PtyCommandLine();
|
||||||
cli.setExePath(zigExecutablePath.toString());
|
cli.setExePath(zigExecutablePath.toString());
|
||||||
workingDirectory.getPath().ifPresent(x -> cli.setWorkDirectory(x.toFile()));
|
workingDirectory.getPath().ifPresent(x -> cli.setWorkDirectory(x.toFile()));
|
||||||
cli.setCharset(StandardCharsets.UTF_8);
|
cli.setCharset(StandardCharsets.UTF_8);
|
||||||
|
|
Loading…
Add table
Reference in a new issue