Включить remote path в локальный путь к проекту
Локальная папка теперь учитывает удалённую рабочую директорию, чтобы на одном сервере можно было держать несколько проектов. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
8e53844818
commit
b70941fb53
@ -53,7 +53,7 @@
|
||||
Каждый удалённый проект кэшируется локально по пути:
|
||||
|
||||
```
|
||||
~/ssh-remote-projects/<host>/<server-name>/
|
||||
~/ssh-remote-projects/<host>/<server-name>/<remote-path>/
|
||||
```
|
||||
|
||||
При повторном открытии того же сервера плагин использует уже скачанную копию и синхронизирует только изменённые файлы.
|
||||
|
||||
@ -9,6 +9,7 @@ import com.intellij.util.xmlb.XmlSerializerUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@ -107,12 +108,22 @@ public class SshServerManager implements PersistentStateComponent<SshServerManag
|
||||
// ---------- Вспомогательные статические методы ----------
|
||||
|
||||
/**
|
||||
* Возвращает локальный путь к папке проекта на основе хоста и имени сервера.
|
||||
* Возвращает локальный путь к папке проекта на основе хоста, имени сервера и удалённой рабочей директории.
|
||||
*/
|
||||
public static String getLocalProjectPath(SshServer server) {
|
||||
return Paths.get(System.getProperty("user.home"), "ssh-remote-projects",
|
||||
sanitize(server.host), sanitize(server.name))
|
||||
.toString().replace('\\', '/');
|
||||
Path path = Paths.get(System.getProperty("user.home"), "ssh-remote-projects",
|
||||
sanitize(server.host), sanitize(server.name));
|
||||
|
||||
if (server.remoteProjectPath != null && !server.remoteProjectPath.isBlank()) {
|
||||
String normalized = server.remoteProjectPath.replace('\\', '/').replaceAll("/+", "/");
|
||||
for (String segment : normalized.split("/")) {
|
||||
if (!segment.isEmpty()) {
|
||||
path = path.resolve(sanitize(segment));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return path.toString().replace('\\', '/');
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Loading…
Reference in New Issue
Block a user