From 1d4c3fa90478fcc850890818ca334b6dd80a30cb Mon Sep 17 00:00:00 2001 From: stud_i_sram Date: Fri, 15 May 2026 16:33:56 +0300 Subject: [PATCH] =?UTF-8?q?-=20=D1=82=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20?= =?UTF-8?q?=D1=82=D0=B5=D1=80=D0=BC=D0=B8=D0=BD=D0=B0=D0=BB=20=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D1=80=D1=8B=D0=B2=D0=B0=D0=B5=D1=82=D1=81=D1=8F=20=D1=81?= =?UTF-8?q?=D1=80=D0=B0=D0=B7=D1=83=20=D0=B2=20=D0=BF=D0=B0=D0=BF=D0=BA?= =?UTF-8?q?=D0=B5=20=D0=BF=D1=80=D0=BE=D0=B5=D0=BA=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/example/plugin/OpenRemoteTerminalAction.java | 2 +- .../java/com/example/plugin/SshTtyConnector.java | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/example/plugin/OpenRemoteTerminalAction.java b/src/main/java/com/example/plugin/OpenRemoteTerminalAction.java index e7c2539..b750101 100644 --- a/src/main/java/com/example/plugin/OpenRemoteTerminalAction.java +++ b/src/main/java/com/example/plugin/OpenRemoteTerminalAction.java @@ -48,7 +48,7 @@ public class OpenRemoteTerminalAction extends AnAction { SftpSessionManager.getInstance(project) .getShellChannel(server); - TtyConnector connector = new SshTtyConnector(shellChannel); + TtyConnector connector = new SshTtyConnector(shellChannel, server.remoteProjectPath); ToolWindow terminalToolWindow = ToolWindowManager.getInstance(project).getToolWindow("Terminal"); diff --git a/src/main/java/com/example/plugin/SshTtyConnector.java b/src/main/java/com/example/plugin/SshTtyConnector.java index 418201d..43aa480 100644 --- a/src/main/java/com/example/plugin/SshTtyConnector.java +++ b/src/main/java/com/example/plugin/SshTtyConnector.java @@ -15,12 +15,22 @@ public class SshTtyConnector implements TtyConnector { private final OutputStream outputStream; private final Reader reader; - public SshTtyConnector(ChannelShell channel) { + public SshTtyConnector(ChannelShell channel, String initialPath) { this.channel = channel; + try { this.inputStream = channel.getInputStream(); this.outputStream = channel.getOutputStream(); this.reader = new InputStreamReader(inputStream, StandardCharsets.UTF_8); + + if (initialPath != null && !initialPath.isBlank()) { + outputStream.write( + ("cd \"" + initialPath + "\"\n") + .getBytes(StandardCharsets.UTF_8) + ); + outputStream.flush(); + } + } catch (Exception e) { throw new RuntimeException(e); }