mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[platform, terminal] Fix IJPL-231940: Add support for ConPTY inherit cursor option
- Updated `WinConPtyProcess` logic to check and handle the inherit cursor setting. - Extended `LocalPtyOptions` to include the ConPTY inherit cursor configuration. #IJPL-231940 Fixed GitOrigin-RevId: 6c5785713c8aa1a65a2a05c87ac6c46c9777990c
This commit is contained in:
committed by
intellij-monorepo-bot
parent
8e584f335c
commit
4e087cf3bf
@@ -170,7 +170,8 @@ public class TerminalExecutionConsole implements ConsoleView, ObservableConsoleV
|
||||
|
||||
if (myFirstOutput.compareAndSet(false, true) &&
|
||||
contentType == ConsoleViewContentType.SYSTEM_OUTPUT &&
|
||||
getProcess() instanceof WinConPtyProcess) {
|
||||
getProcess() instanceof WinConPtyProcess winConPtyProcess &&
|
||||
!winConPtyProcess.isConPtyInheritCursor()) {
|
||||
moveScreenToScrollbackBufferAndShowAllOutput();
|
||||
}
|
||||
}
|
||||
|
||||
+1
@@ -51,6 +51,7 @@ class LocalProcessServiceImpl : LocalProcessService {
|
||||
.setWindowsAnsiColorEnabled(!SystemProperties.getBooleanProperty("pty4j.win.disable.ansi.in.console.mode", false))
|
||||
.setUnixOpenTtyToPreserveOutputAfterTermination(SystemProperties.getBooleanProperty("pty4j.open.child.tty", SystemInfo.isMac))
|
||||
.setSpawnProcessUsingJdkOnMacIntel(Registry.`is`("run.processes.using.pty.helper.on.mac.intel", true))
|
||||
.setConPtyInheritCursor(options.winConPtyInheritCursor)
|
||||
|
||||
if(options.winSuspendedProcessCallback != null) {
|
||||
builder.setWindowsSuspendedProcessCallback(options.winSuspendedProcessCallback!!)
|
||||
|
||||
@@ -263,6 +263,7 @@ f:com.intellij.execution.process.LocalPtyOptions
|
||||
- f:getInitialRows():I
|
||||
- f:getUseCygwinLaunch():Z
|
||||
- f:getUseWinConPty():Z
|
||||
- f:getWinConPtyInheritCursor():Z
|
||||
- f:getWinSuspendedProcessCallback():java.util.function.LongConsumer
|
||||
f:com.intellij.execution.process.LocalPtyOptions$Builder
|
||||
- f:build():com.intellij.execution.process.LocalPtyOptions
|
||||
@@ -275,6 +276,8 @@ f:com.intellij.execution.process.LocalPtyOptions$Builder
|
||||
- f:set(com.intellij.execution.process.LocalPtyOptions):com.intellij.execution.process.LocalPtyOptions$Builder
|
||||
- f:useCygwinLaunch():Z
|
||||
- f:useCygwinLaunch(Z):com.intellij.execution.process.LocalPtyOptions$Builder
|
||||
- f:winConPtyInheritCursor():Z
|
||||
- f:winConPtyInheritCursor(Z):com.intellij.execution.process.LocalPtyOptions$Builder
|
||||
- f:winSuspendedProcessCallback():java.util.function.LongConsumer
|
||||
- f:winSuspendedProcessCallback(java.util.function.LongConsumer):com.intellij.execution.process.LocalPtyOptions$Builder
|
||||
f:com.intellij.execution.process.LocalPtyOptions$Companion
|
||||
|
||||
@@ -13,19 +13,20 @@ class LocalPtyOptions private constructor(val consoleMode: Boolean,
|
||||
val initialColumns: Int,
|
||||
val initialRows: Int,
|
||||
val useWinConPty: Boolean,
|
||||
val winSuspendedProcessCallback: LongConsumer?) {
|
||||
val winSuspendedProcessCallback: LongConsumer?,
|
||||
val winConPtyInheritCursor: Boolean) {
|
||||
|
||||
override fun toString(): String {
|
||||
return "consoleMode=$consoleMode, useCygwinLaunch=$useCygwinLaunch, initialColumns=$initialColumns, initialRows=$initialRows, useWinConPty=$useWinConPty"
|
||||
return "consoleMode=$consoleMode, useCygwinLaunch=$useCygwinLaunch, initialColumns=$initialColumns, initialRows=$initialRows, useWinConPty=$useWinConPty, conPtyInheritCursor=$winConPtyInheritCursor"
|
||||
}
|
||||
|
||||
fun builder(): Builder {
|
||||
return Builder(consoleMode, useCygwinLaunch, initialColumns, initialRows, useWinConPty, winSuspendedProcessCallback)
|
||||
return Builder(consoleMode, useCygwinLaunch, initialColumns, initialRows, useWinConPty, winSuspendedProcessCallback, winConPtyInheritCursor)
|
||||
}
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun defaults(): LocalPtyOptions = LocalPtyOptions(false, false, -1, -1, shouldUseWinConPty(), null)
|
||||
fun defaults(): LocalPtyOptions = LocalPtyOptions(false, false, -1, -1, shouldUseWinConPty(), null, false)
|
||||
|
||||
@JvmStatic
|
||||
@Internal
|
||||
@@ -37,7 +38,8 @@ class LocalPtyOptions private constructor(val consoleMode: Boolean,
|
||||
private var initialColumns: Int,
|
||||
private var initialRows: Int,
|
||||
private var useWinConPty: Boolean,
|
||||
private var winSuspendedProcessCallback: LongConsumer?) {
|
||||
private var winSuspendedProcessCallback: LongConsumer?,
|
||||
private var winConPtyInheritCursor: Boolean) {
|
||||
private val LOG: Logger = Logger.getInstance(Builder::class.java)
|
||||
|
||||
/**
|
||||
@@ -82,7 +84,10 @@ class LocalPtyOptions private constructor(val consoleMode: Boolean,
|
||||
@Internal
|
||||
fun useWinConPty(): Boolean = useWinConPty
|
||||
|
||||
fun build(): LocalPtyOptions = LocalPtyOptions(consoleMode, useCygwinLaunch, initialColumns, initialRows, useWinConPty, winSuspendedProcessCallback)
|
||||
fun winConPtyInheritCursor(inheritCursor: Boolean): Builder = apply { this.winConPtyInheritCursor = inheritCursor }
|
||||
fun winConPtyInheritCursor(): Boolean = winConPtyInheritCursor
|
||||
|
||||
fun build(): LocalPtyOptions = LocalPtyOptions(consoleMode, useCygwinLaunch, initialColumns, initialRows, useWinConPty, winSuspendedProcessCallback, winConPtyInheritCursor)
|
||||
|
||||
fun set(options: LocalPtyOptions): Builder = apply {
|
||||
consoleMode = options.consoleMode
|
||||
@@ -91,6 +96,7 @@ class LocalPtyOptions private constructor(val consoleMode: Boolean,
|
||||
initialRows = options.initialRows
|
||||
useWinConPty = options.useWinConPty
|
||||
winSuspendedProcessCallback = options.winSuspendedProcessCallback
|
||||
winConPtyInheritCursor = options.winConPtyInheritCursor
|
||||
}
|
||||
|
||||
override fun toString(): String {
|
||||
|
||||
Reference in New Issue
Block a user