void (@NotNull final PsiTreeChangeEvent event) { final PsiElement child = event.getChild(); if (!(child instanceof PsiFile)) { if (child instanceof PsiDirectory) { if (event.getOldParent() instanceof PsiDirectory && event.getNewParent() instanceof PsiDirectory) { final String fromDirUrl = ((PsiDirectory)event.getOldParent()).getVirtualFile().getUrl() + "/"; final NotNullLazyValue<String> toDirUrl = NotNullLazyValue.lazy(() -> { return ((PsiDirectory)event.getNewParent()).getVirtualFile().getUrl() + "/"; }); for (String dissociatedFileUrl : new SmartList<>(myState.getDissociatedFiles())) { if (dissociatedFileUrl.startsWith(fromDirUrl)) { myState.getDissociatedFiles().remove(dissociatedFileUrl); myState.getDissociatedFiles().add(toDirUrl.getValue() + dissociatedFileUrl.substring(fromDirUrl.length())); } } for (CustomResourceBundleState customResourceBundleState : myState.getCustomResourceBundles()) { for (String fileUrl : new SmartList<>(customResourceBundleState.getFileUrls())) { if (fileUrl.startsWith(fromDirUrl)) { customResourceBundleState.getFileUrls().remove(fileUrl); customResourceBundleState.getFileUrls().add(toDirUrl.getValue() + fileUrl.substring(fromDirUrl.length())); } } } } } return; } final PropertiesFile propertiesFile = PropertiesImplUtil.getPropertiesFile((PsiFile)child); if (propertiesFile == null) { return; } final String oldParentUrl = getUrl(event.getOldParent()); if (oldParentUrl == null) { return; } final String newParentUrl = getUrl(event.getNewParent()); if (newParentUrl == null) { return; } final NotNullLazyValue<Pair<String, String>> oldAndNewUrls = NotNullLazyValue.lazy(() -> { final String newUrl = propertiesFile.getVirtualFile().getUrl(); return new Pair<>(oldParentUrl + newUrl.substring(newParentUrl.length()), newUrl); }); if (!myState.getDissociatedFiles().isEmpty()) { if (myState.getDissociatedFiles().remove(oldAndNewUrls.getValue().getFirst())) { myState.getDissociatedFiles().add(oldAndNewUrls.getValue().getSecond()); } } for (CustomResourceBundleState customResourceBundleState : myState.getCustomResourceBundles()) { if (customResourceBundleState.getFileUrls().remove(oldAndNewUrls.getValue().getFirst())) { customResourceBundleState.getFileUrls().add(oldAndNewUrls.getValue().getSecond()); break; } } }