Skip to content

Commit dbd33ce

Browse files
committed
ssh: Option to resolve home path #943
1 parent 8616bf0 commit dbd33ce

File tree

8 files changed

+44
-15
lines changed

8 files changed

+44
-15
lines changed

CodeApp/Localization/de.lproj/Localizable.strings

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,10 @@
2323

2424
"Changelog.message" =
2525
"
26-
### 1.5.0 (Oktober 2023)
26+
### 1.5.0 (October 2023)
2727
- Portweiterleitung in SSH Remote
28-
– Behebt ein Problem, bei dem bestimmte SSH-Remotes nicht verbunden werden können
28+
– Behebt ein Problem, bei dem bestimmte SSH-Remotes nicht authentifiziert werden können
29+
– Option zum Auflösen des Home-Pfads beim Herstellen einer Verbindung zu einer Fernbedienung
2930

3031
### 1.4.7 (September 2023)
3132
- Behebt einige Probleme in der SSH-Remote
@@ -555,4 +556,6 @@
555556
"remote.port_forward.remote_port_or_address" = "Remote-Port oder Adresse";
556557
"remote.port_forward.port_forwarding" = "Portweiterleitung";
557558
"remote.port_forward.configure_description" = "Um eine Portweiterleitung zu konfigurieren, geben Sie die lokale und die Remote-Adresse ein. Wenn Sie eine Adresse eingeben, wird der Port 22 verwendet.";
558-
"remote.port_forward.address_example" = "z.B. 6000 oder 127.0.0.1:6000";
559+
"remote.port_forward.address_example" = "z.B. 6000 oder 127.0.0.1:6000";
560+
"remote.settings.ssh_remote" = "SSH Remote";
561+
"remote.settings.resolve_home_path" = "Pfad auflösen";

CodeApp/Localization/en.lproj/Localizable.strings

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@
2525
"
2626
### 1.5.0 (October 2023)
2727
- Port forwarding in SSH remote
28-
- Fixes a problem where certain SSH remotes cannot be connected
28+
- Fixes a problem where certain SSH remotes cannot be authenticated
29+
- Option to resolve home path when connecting to a remote
2930

3031
### 1.4.7 (September 2023)
3132
- Fixes a few problems in SSH remote
@@ -445,4 +446,6 @@ are licensed under [BSD-3-Clause License](https://en.wikipedia.org/wiki/BSD_lice
445446
"remote.port_forward.remote_port_or_address" = "Remote port or address";
446447
"remote.port_forward.port_forwarding" = "Port Forwarding";
447448
"remote.port_forward.configure_description" = "Configure port forwarding to access a port on the remote machine.";
448-
"remote.port_forward.address_example" = "e.g. 6000 or 127.0.0.1:6000";
449+
"remote.port_forward.address_example" = "e.g. 6000 or 127.0.0.1:6000";
450+
"remote.settings.ssh_remote" = "SSH Remote";
451+
"remote.settings.resolve_home_path" = "Resolve home path";

CodeApp/Localization/ja.lproj/Localizable.strings

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@
2525
"
2626
### 1.5.0 (2023 年 10 月)
2727
- SSHリモートでのポートフォワーディング
28-
- 特定のSSHリモートが接続できない問題を修正
28+
- 特定の SSH リモートが認証できない問題を修正
29+
- リモート接続時にホームパスを解決するオプション
2930

3031
### 1.4.7 (2023 年 9月)
3132
- SSHリモートのいくつかの問題を修正
@@ -556,4 +557,6 @@
556557
"remote.port_forward.remote_port_or_address" = "リモート ポートまたはアドレス";
557558
"remote.port_forward.port_forwarding" = "ポートフォワーディング";
558559
"remote.port_forward.configure_description" = "ポートフォワーディングを使用すると、リモート ホストのポートをローカル ホストに転送できます。";
559-
"remote.port_forward.address_example" = "例えば 6000 または 127.0.0.1:6000";
560+
"remote.port_forward.address_example" = "例えば 6000 または 127.0.0.1:6000";
561+
"remote.settings.ssh_remote" = "SSH リモート";
562+
"remote.settings.resolve_home_path" = "ホーム パスを解決する";

CodeApp/Localization/ko.lproj/Localizable.strings

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,10 @@
2323

2424
"Changelog.message" =
2525
"
26-
### 1.5.0(2023년 10월)
27-
- SSH 원격에서 포트 전달
28-
- 특정 SSH 원격 연결이 불가능한 문제 수정
26+
### 1.5.0 (2023 年 10 月)
27+
- SSHリモートでのポートフォワーディング
28+
- 特定の SSH リモートが認証できない問題を修正
29+
- リモート接続時にホームパスを解決するオプション
2930

3031
### 1.4.7(2023년 9월)
3132
- SSH 원격의 몇 가지 문제를 수정했습니다.
@@ -555,4 +556,6 @@
555556
"remote.port_forward.remote_port_or_address" = "원격 포트 또는 주소";
556557
"remote.port_forward.port_forwarding" = "포트 포워딩";
557558
"remote.port_forward.configure_description" = "원격 시스템의 포트에 액세스하도록 포트 전달을 구성합니다.";
558-
"remote.port_forward.address_example" = "예를 들어 6000 또는 127.0.0.1:6000";
559+
"remote.port_forward.address_example" = "예를 들어 6000 또는 127.0.0.1:6000";
560+
"remote.settings.ssh_remote" = "SSH 원격 서버";
561+
"remote.settings.resolve_home_path" = "홈 경로 해결";

CodeApp/Localization/zh-Hans.lproj/Localizable.strings

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@
2525
"
2626
### 1.5.0(2023 年 10 月)
2727
- SSH 远程端口转发
28-
- 修复了某些 SSH 远程无法连接的问题
28+
- 修复了某些 SSH 远程无法验证的问题
29+
- 连接到远程时解析主路径的选项
2930

3031
### 1.4.7(2023 年 9 月)
3132
- 修复 SSH 远程的一些问题
@@ -530,4 +531,6 @@
530531
"remote.port_forward.remote_port_or_address" = "远程端口或地址";
531532
"remote.port_forward.port_forwarding" = "端口转发";
532533
"remote.port_forward.configure_description" = "您可以使用端口转发功能将本地端口转发到远程服务器。";
533-
"remote.port_forward.address_example" = "例如 6000 或 127.0.0.1:6000";
534+
"remote.port_forward.address_example" = "例如 6000 或 127.0.0.1:6000";
535+
"remote.settings.ssh_remote" = "SSH 远程";
536+
"remote.settings.resolve_home_path" = "解析主目录路径";

CodeApp/Managers/FileSystem/SFTP/SFTPFileSystemProvider.swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ class SFTPFileSystemProvider: NSObject, FileSystemProvider, PortForwardServicePr
107107

108108
func connect(
109109
authentication: RemoteAuthenticationMode,
110+
shouldResolveHomePath: Bool,
110111
completionHandler: @escaping (Error?) -> Void
111112
) {
112113

@@ -147,7 +148,9 @@ class SFTPFileSystemProvider: NSObject, FileSystemProvider, PortForwardServicePr
147148

148149
self.session.sftp.connect()
149150
self.fingerPrint = self.session.fingerprint(self.session.fingerprintHash)
150-
// self.homePath = self.session.sftp.resolveSymbolicLink(atPath: ".")
151+
if shouldResolveHomePath {
152+
self.homePath = self.session.sftp.resolveSymbolicLink(atPath: ".")
153+
}
151154

152155
completionHandler(nil)
153156
}

CodeApp/Managers/FileSystem/WorkSpaceStorage.swift

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ import Foundation
1010
import SwiftUI
1111

1212
class WorkSpaceStorage: ObservableObject {
13+
@AppStorage("remoteShouldResolveHomePath") var remoteShouldResolveHomePath = false
14+
1315
@Published var currentDirectory: FileItemRepresentable
1416
@Published var expansionStates: [AnyHashable: Bool] = [:]
1517
@Published var explorerIsBusy = false
@@ -152,7 +154,10 @@ class WorkSpaceStorage: ObservableObject {
152154
return
153155
}
154156

155-
fs.connect(authentication: authenticationMode) { error in
157+
fs.connect(
158+
authentication: authenticationMode,
159+
shouldResolveHomePath: remoteShouldResolveHomePath
160+
) { error in
156161
if let error = error {
157162
completionHandler(error)
158163
return

CodeApp/Views/SettingsView.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ struct SettingsView: View {
3636
@AppStorage("editorSpellCheckOnContentChanged") var editorSpellCheckOnContentChanged = true
3737
@AppStorage("communityTemplatesEnabled") var communityTemplatesEnabled = true
3838
@AppStorage("showAllFonts") var showAllFonts = false
39+
@AppStorage("remoteShouldResolveHomePath") var remoteShouldResolveHomePath = false
3940

4041
@State var showsEraseAlert: Bool = false
4142
@State var showReceiptInformation: Bool = false
@@ -119,6 +120,11 @@ struct SettingsView: View {
119120
"source_control.community_templates", isOn: $communityTemplatesEnabled)
120121
}
121122

123+
Section("remote.settings.ssh_remote") {
124+
Toggle(
125+
"remote.settings.resolve_home_path", isOn: $remoteShouldResolveHomePath)
126+
}
127+
122128
Section(header: Text(NSLocalizedString("EXPLORER", comment: ""))) {
123129
Toggle(
124130
NSLocalizedString("Show hidden files", comment: ""),

0 commit comments

Comments
 (0)