mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-18 20:41:22 +07:00
Update source roots that were configured from interpreter paths on sdk switch (PY-45708)
IJ-CR-10935 GitOrigin-RevId: 03b1a9362e93d5408d88c82b8a8318dc3abff078
This commit is contained in:
committed by
intellij-monorepo-bot
parent
65dca97a33
commit
d4558ff94c
@@ -29,10 +29,13 @@ public class PythonSdkAdditionalData implements SdkAdditionalData {
|
||||
@NonNls private static final String PATH_ADDED_BY_USER = "PATH_ADDED_BY_USER";
|
||||
@NonNls private static final String PATHS_REMOVED_BY_USER_ROOT = "PATHS_REMOVED_BY_USER_ROOT";
|
||||
@NonNls private static final String PATH_REMOVED_BY_USER = "PATH_REMOVED_BY_USER";
|
||||
@NonNls private static final String PATHS_TO_TRANSFER_ROOT = "PATHS_TO_TRANSFER_ROOT";
|
||||
@NonNls private static final String PATH_TO_TRANSFER = "PATH_TO_TRANSFER";
|
||||
@NonNls private static final String ASSOCIATED_PROJECT_PATH = "ASSOCIATED_PROJECT_PATH";
|
||||
|
||||
private final VirtualFilePointerContainer myAddedPaths;
|
||||
private final VirtualFilePointerContainer myExcludedPaths;
|
||||
private final VirtualFilePointerContainer myPathsToTransfer;
|
||||
|
||||
private final PythonSdkFlavor myFlavor;
|
||||
private String myAssociatedModulePath;
|
||||
@@ -41,12 +44,14 @@ public class PythonSdkAdditionalData implements SdkAdditionalData {
|
||||
myFlavor = flavor;
|
||||
myAddedPaths = VirtualFilePointerManager.getInstance().createContainer(PythonPluginDisposable.getInstance());
|
||||
myExcludedPaths = VirtualFilePointerManager.getInstance().createContainer(PythonPluginDisposable.getInstance());
|
||||
myPathsToTransfer = VirtualFilePointerManager.getInstance().createContainer(PythonPluginDisposable.getInstance());
|
||||
}
|
||||
|
||||
protected PythonSdkAdditionalData(@NotNull PythonSdkAdditionalData from) {
|
||||
myFlavor = from.getFlavor();
|
||||
myAddedPaths = from.myAddedPaths.clone(PythonPluginDisposable.getInstance());
|
||||
myExcludedPaths = from.myExcludedPaths.clone(PythonPluginDisposable.getInstance());
|
||||
myPathsToTransfer = from.myPathsToTransfer.clone(PythonPluginDisposable.getInstance());
|
||||
myAssociatedModulePath = from.myAssociatedModulePath;
|
||||
}
|
||||
|
||||
@@ -69,6 +74,13 @@ public class PythonSdkAdditionalData implements SdkAdditionalData {
|
||||
}
|
||||
}
|
||||
|
||||
public void setPathsToTransferFromVirtualFiles(@NotNull Set<VirtualFile> addedPaths) {
|
||||
myPathsToTransfer.killAll();
|
||||
for (VirtualFile file : addedPaths) {
|
||||
myPathsToTransfer.add(file);
|
||||
}
|
||||
}
|
||||
|
||||
public String getAssociatedModulePath() {
|
||||
return myAssociatedModulePath;
|
||||
}
|
||||
@@ -95,6 +107,7 @@ public class PythonSdkAdditionalData implements SdkAdditionalData {
|
||||
public void save(@NotNull final Element rootElement) {
|
||||
savePaths(rootElement, myAddedPaths, PATHS_ADDED_BY_USER_ROOT, PATH_ADDED_BY_USER);
|
||||
savePaths(rootElement, myExcludedPaths, PATHS_REMOVED_BY_USER_ROOT, PATH_REMOVED_BY_USER);
|
||||
savePaths(rootElement, myPathsToTransfer, PATHS_TO_TRANSFER_ROOT, PATH_TO_TRANSFER);
|
||||
|
||||
if (myAssociatedModulePath != null) {
|
||||
rootElement.setAttribute(ASSOCIATED_PROJECT_PATH, myAssociatedModulePath);
|
||||
@@ -122,8 +135,9 @@ public class PythonSdkAdditionalData implements SdkAdditionalData {
|
||||
}
|
||||
|
||||
protected void load(@Nullable Element element) {
|
||||
collectPaths(JDOMExternalizer.loadStringsList(element, PATHS_ADDED_BY_USER_ROOT, PATH_ADDED_BY_USER),myAddedPaths);
|
||||
collectPaths(JDOMExternalizer.loadStringsList(element, PATHS_REMOVED_BY_USER_ROOT, PATH_REMOVED_BY_USER),myExcludedPaths);
|
||||
collectPaths(JDOMExternalizer.loadStringsList(element, PATHS_ADDED_BY_USER_ROOT, PATH_ADDED_BY_USER), myAddedPaths);
|
||||
collectPaths(JDOMExternalizer.loadStringsList(element, PATHS_REMOVED_BY_USER_ROOT, PATH_REMOVED_BY_USER), myExcludedPaths);
|
||||
collectPaths(JDOMExternalizer.loadStringsList(element, PATHS_TO_TRANSFER_ROOT, PATH_TO_TRANSFER), myPathsToTransfer);
|
||||
if (element != null) {
|
||||
setAssociatedModulePath(element.getAttributeValue(ASSOCIATED_PROJECT_PATH));
|
||||
}
|
||||
@@ -147,6 +161,13 @@ public class PythonSdkAdditionalData implements SdkAdditionalData {
|
||||
return getPathsAsVirtualFiles(myExcludedPaths);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see com.jetbrains.python.sdk.PyTransferredSdkRootsKt#getPathsToTransfer(Sdk)
|
||||
*/
|
||||
public @NotNull Set<VirtualFile> getPathsToTransfer() {
|
||||
return getPathsAsVirtualFiles(myPathsToTransfer);
|
||||
}
|
||||
|
||||
private static Set<VirtualFile> getPathsAsVirtualFiles(VirtualFilePointerContainer paths) {
|
||||
Set<VirtualFile> ret = new HashSet<>();
|
||||
Collections.addAll(ret, paths.getFiles());
|
||||
|
||||
Reference in New Issue
Block a user