Включить 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.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
import java.nio.file.Path;
|
||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -107,12 +108,22 @@ public class SshServerManager implements PersistentStateComponent<SshServerManag
|
|||||||
// ---------- Вспомогательные статические методы ----------
|
// ---------- Вспомогательные статические методы ----------
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Возвращает локальный путь к папке проекта на основе хоста и имени сервера.
|
* Возвращает локальный путь к папке проекта на основе хоста, имени сервера и удалённой рабочей директории.
|
||||||
*/
|
*/
|
||||||
public static String getLocalProjectPath(SshServer server) {
|
public static String getLocalProjectPath(SshServer server) {
|
||||||
return Paths.get(System.getProperty("user.home"), "ssh-remote-projects",
|
Path path = Paths.get(System.getProperty("user.home"), "ssh-remote-projects",
|
||||||
sanitize(server.host), sanitize(server.name))
|
sanitize(server.host), sanitize(server.name));
|
||||||
.toString().replace('\\', '/');
|
|
||||||
|
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