diff --git a/.idea/modules.xml b/.idea/modules.xml
index 3a0087b4c2bd..5d11a3e8b3f0 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -701,6 +701,7 @@
+
diff --git a/intellij.idea.community.main.iml b/intellij.idea.community.main.iml
index 9054e8eafb12..d2161197435f 100644
--- a/intellij.idea.community.main.iml
+++ b/intellij.idea.community.main.iml
@@ -90,6 +90,7 @@
+
diff --git a/platform/build-scripts/groovy/org/jetbrains/intellij/build/CommunityRepositoryModules.groovy b/platform/build-scripts/groovy/org/jetbrains/intellij/build/CommunityRepositoryModules.groovy
index 8af8f3a1c0c5..f9b93c8ded53 100644
--- a/platform/build-scripts/groovy/org/jetbrains/intellij/build/CommunityRepositoryModules.groovy
+++ b/platform/build-scripts/groovy/org/jetbrains/intellij/build/CommunityRepositoryModules.groovy
@@ -100,6 +100,7 @@ class CommunityRepositoryModules {
plugin("intellij.properties") {
withModule("intellij.properties.psi", "properties.jar")
withModule("intellij.properties.psi.impl", "properties.jar")
+ withModule("intellij.properties.resource.bundle.editor", "properties.jar")
},
plugin("intellij.vcs.git") {
withModule("intellij.vcs.git.rt", "git4idea-rt.jar", null)
diff --git a/plugins/properties/intellij.properties.iml b/plugins/properties/intellij.properties.iml
index 545d8891d2f7..c22df92628e0 100644
--- a/plugins/properties/intellij.properties.iml
+++ b/plugins/properties/intellij.properties.iml
@@ -18,6 +18,7 @@
+
diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/GotoPropertyParentDeclarationHandler.java b/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/GotoPropertyParentDeclarationHandler.java
similarity index 100%
rename from plugins/properties/src/com/intellij/lang/properties/editor/GotoPropertyParentDeclarationHandler.java
rename to plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/GotoPropertyParentDeclarationHandler.java
diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/PropertiesCopyHandler.java b/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/PropertiesCopyHandler.java
similarity index 89%
rename from plugins/properties/src/com/intellij/lang/properties/editor/PropertiesCopyHandler.java
rename to plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/PropertiesCopyHandler.java
index 740ba280c10e..3ce1f47109a5 100644
--- a/plugins/properties/src/com/intellij/lang/properties/editor/PropertiesCopyHandler.java
+++ b/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/PropertiesCopyHandler.java
@@ -1,18 +1,14 @@
-// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
+// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.lang.properties.editor;
import com.intellij.codeInsight.FileModificationService;
import com.intellij.icons.AllIcons;
-import com.intellij.ide.DataManager;
import com.intellij.ide.util.gotoByName.GotoFileCellRenderer;
import com.intellij.lang.properties.ResourceBundle;
import com.intellij.lang.properties.*;
import com.intellij.lang.properties.psi.PropertiesFile;
-import com.intellij.openapi.actionSystem.PlatformDataKeys;
import com.intellij.openapi.command.WriteCommandAction;
import com.intellij.openapi.diagnostic.Logger;
-import com.intellij.openapi.fileEditor.FileEditor;
-import com.intellij.openapi.fileEditor.FileEditorManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.ComboBox;
import com.intellij.openapi.ui.DialogWrapper;
@@ -96,9 +92,9 @@ public class PropertiesCopyHandler extends CopyHandlerDelegateBase {
public void doClone(PsiElement element) {
}
- private static void copyPropertyToAnotherBundle(@NotNull Collection extends IProperty> properties,
- @NotNull final String newName,
- @NotNull ResourceBundle targetResourceBundle) {
+ private void copyPropertyToAnotherBundle(@NotNull Collection extends IProperty> properties,
+ @NotNull final String newName,
+ @NotNull ResourceBundle targetResourceBundle) {
final Map propertiesFileMapping = new HashMap<>();
for (IProperty property : properties) {
final PropertiesFile containingFile = property.getPropertiesFile();
@@ -130,26 +126,15 @@ public class PropertiesCopyHandler extends CopyHandlerDelegateBase {
final IProperty representativeFromSourceBundle = ContainerUtil.getFirstItem(properties);
LOG.assertTrue(representativeFromSourceBundle != null);
final ResourceBundle sourceResourceBundle = representativeFromSourceBundle.getPropertiesFile().getResourceBundle();
- if (sourceResourceBundle.equals(targetResourceBundle)) {
- DataManager.getInstance()
- .getDataContextFromFocusAsync()
- .onSuccess(context -> {
- final FileEditor fileEditor = PlatformDataKeys.FILE_EDITOR.getData(context);
- if (fileEditor instanceof ResourceBundleEditor) {
- final ResourceBundleEditor resourceBundleEditor = (ResourceBundleEditor)fileEditor;
- resourceBundleEditor.updateTreeRoot();
- resourceBundleEditor.selectProperty(newName);
- }
- });
- } else {
- for (FileEditor editor : FileEditorManager.getInstance(project).openFile(new ResourceBundleAsVirtualFile(targetResourceBundle), true)) {
- ((ResourceBundleEditor) editor).updateTreeRoot();
- ((ResourceBundleEditor) editor).selectProperty(newName);
- }
- }
+ updateBundleEditors(newName, targetResourceBundle, sourceResourceBundle, project);
}
}
+ protected void updateBundleEditors(@NotNull String newName,
+ @NotNull ResourceBundle targetResourceBundle,
+ @NotNull ResourceBundle sourceResourceBundle,
+ @NotNull Project project) { }
+
@Nullable
private static PropertiesFile findWithMatchedSuffix(@NotNull PropertiesFile searchFile, @NotNull ResourceBundle resourceBundle) {
final String targetSuffix = getPropertiesFileSuffix(searchFile, searchFile.getResourceBundle().getBaseName());
diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/PropertiesGroupingStructureViewComponent.java b/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/PropertiesGroupingStructureViewComponent.java
similarity index 93%
rename from plugins/properties/src/com/intellij/lang/properties/editor/PropertiesGroupingStructureViewComponent.java
rename to plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/PropertiesGroupingStructureViewComponent.java
index 8a24e5ae37df..24d2fa5f0bbf 100644
--- a/plugins/properties/src/com/intellij/lang/properties/editor/PropertiesGroupingStructureViewComponent.java
+++ b/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/PropertiesGroupingStructureViewComponent.java
@@ -1,11 +1,13 @@
-// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
+// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.lang.properties.editor;
-import com.intellij.icons.AllIcons;
import com.intellij.ide.structureView.newStructureView.StructureViewComponent;
import com.intellij.lang.properties.PropertiesBundle;
import com.intellij.lang.properties.structureView.GroupByWordPrefixes;
-import com.intellij.openapi.actionSystem.*;
+import com.intellij.openapi.actionSystem.AnAction;
+import com.intellij.openapi.actionSystem.AnActionEvent;
+import com.intellij.openapi.actionSystem.DefaultActionGroup;
+import com.intellij.openapi.actionSystem.Presentation;
import com.intellij.openapi.fileEditor.FileEditor;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.Messages;
diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/PropertiesInheritorsSearcher.java b/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/PropertiesInheritorsSearcher.java
similarity index 100%
rename from plugins/properties/src/com/intellij/lang/properties/editor/PropertiesInheritorsSearcher.java
rename to plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/PropertiesInheritorsSearcher.java
diff --git a/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/PropertyStructureViewElement.java b/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/PropertyStructureViewElement.java
index 01a660406fc6..fb2ce4890fd1 100644
--- a/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/PropertyStructureViewElement.java
+++ b/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/PropertyStructureViewElement.java
@@ -26,7 +26,7 @@ import javax.swing.*;
import java.awt.*;
import java.util.function.BooleanSupplier;
-public class PropertyStructureViewElement implements StructureViewTreeElement {
+public class PropertyStructureViewElement implements StructureViewTreeElement, ResourceBundleEditorViewElement {
private static final TextAttributesKey GROUP_KEY;
public static final String PROPERTY_GROUP_KEY_TEXT = "";
@@ -60,6 +60,18 @@ public class PropertyStructureViewElement implements StructureViewTreeElement {
return element.isValid() ? element : null;
}
+ @NotNull
+ @Override
+ public IProperty[] getProperties() {
+ return new IProperty[] {myProperty};
+ }
+
+ @Nullable
+ @Override
+ public PsiFile[] getFiles() {
+ return null;
+ }
+
public void setPresentableName(final String presentableName) {
myPresentableName = presentableName;
}
diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleFileType.java b/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/ResourceBundleFileType.java
similarity index 100%
rename from plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleFileType.java
rename to plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/ResourceBundleFileType.java
diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleUtil.java b/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/ResourceBundleUtil.java
similarity index 100%
rename from plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleUtil.java
rename to plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/editor/ResourceBundleUtil.java
diff --git a/plugins/properties/src/com/intellij/lang/properties/projectView/ResourceBundleDeleteProvider.java b/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/projectView/ResourceBundleDeleteProvider.java
similarity index 100%
rename from plugins/properties/src/com/intellij/lang/properties/projectView/ResourceBundleDeleteProvider.java
rename to plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/projectView/ResourceBundleDeleteProvider.java
diff --git a/plugins/properties/src/com/intellij/lang/properties/refactoring/rename/ResourceBundleRenameUtil.java b/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/refactoring/rename/ResourceBundleRenameUtil.java
similarity index 100%
rename from plugins/properties/src/com/intellij/lang/properties/refactoring/rename/ResourceBundleRenameUtil.java
rename to plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/refactoring/rename/ResourceBundleRenameUtil.java
diff --git a/plugins/properties/src/com/intellij/lang/properties/refactoring/rename/ResourceBundleRenamer.java b/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/refactoring/rename/ResourceBundleRenamer.java
similarity index 100%
rename from plugins/properties/src/com/intellij/lang/properties/refactoring/rename/ResourceBundleRenamer.java
rename to plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/refactoring/rename/ResourceBundleRenamer.java
diff --git a/plugins/properties/src/com/intellij/lang/properties/refactoring/rename/ResourceBundleRenamerFactory.java b/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/refactoring/rename/ResourceBundleRenamerFactory.java
similarity index 100%
rename from plugins/properties/src/com/intellij/lang/properties/refactoring/rename/ResourceBundleRenamerFactory.java
rename to plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/refactoring/rename/ResourceBundleRenamerFactory.java
diff --git a/plugins/properties/properties-resource-bundle-editor/intellij.properties.resource.bundle.editor.iml b/plugins/properties/properties-resource-bundle-editor/intellij.properties.resource.bundle.editor.iml
new file mode 100644
index 000000000000..3e1306e97b4b
--- /dev/null
+++ b/plugins/properties/properties-resource-bundle-editor/intellij.properties.resource.bundle.editor.iml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/ChooseSubsequentPropertyValueEditorAction.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ChooseSubsequentPropertyValueEditorAction.java
similarity index 100%
rename from plugins/properties/src/com/intellij/lang/properties/editor/ChooseSubsequentPropertyValueEditorAction.java
rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ChooseSubsequentPropertyValueEditorAction.java
diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/GotoNextIncompletePropertyAction.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/GotoNextIncompletePropertyAction.java
similarity index 100%
rename from plugins/properties/src/com/intellij/lang/properties/editor/GotoNextIncompletePropertyAction.java
rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/GotoNextIncompletePropertyAction.java
diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/GotoPropertyDeclarationsProvider.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/GotoPropertyDeclarationsProvider.java
similarity index 100%
rename from plugins/properties/src/com/intellij/lang/properties/editor/GotoPropertyDeclarationsProvider.java
rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/GotoPropertyDeclarationsProvider.java
diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/GotoResourceBundleLocalizationsProvider.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/GotoResourceBundleLocalizationsProvider.java
similarity index 100%
rename from plugins/properties/src/com/intellij/lang/properties/editor/GotoResourceBundleLocalizationsProvider.java
rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/GotoResourceBundleLocalizationsProvider.java
diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/NewPropertyAction.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/NewPropertyAction.java
similarity index 98%
rename from plugins/properties/src/com/intellij/lang/properties/editor/NewPropertyAction.java
rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/NewPropertyAction.java
index 910f40a29ad0..d54248c2d45c 100644
--- a/plugins/properties/src/com/intellij/lang/properties/editor/NewPropertyAction.java
+++ b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/NewPropertyAction.java
@@ -2,7 +2,6 @@
package com.intellij.lang.properties.editor;
import com.intellij.icons.AllIcons;
-import com.intellij.ide.structureView.StructureViewTreeElement;
import com.intellij.ide.util.PropertiesComponent;
import com.intellij.lang.properties.IProperty;
import com.intellij.lang.properties.PropertiesBundle;
@@ -22,11 +21,9 @@ import com.intellij.openapi.ui.Messages;
import com.intellij.openapi.util.Pair;
import com.intellij.openapi.vfs.ReadonlyStatusHandler;
import com.intellij.openapi.vfs.VirtualFile;
-import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
-import java.util.Collection;
import java.util.Collections;
/**
diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/NoPropertySelectedPanel.form b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/NoPropertySelectedPanel.form
similarity index 100%
rename from plugins/properties/src/com/intellij/lang/properties/editor/NoPropertySelectedPanel.form
rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/NoPropertySelectedPanel.form
diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/NoPropertySelectedPanel.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/NoPropertySelectedPanel.java
similarity index 100%
rename from plugins/properties/src/com/intellij/lang/properties/editor/NoPropertySelectedPanel.java
rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/NoPropertySelectedPanel.java
diff --git a/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/PropertiesCopyHandlerEx.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/PropertiesCopyHandlerEx.java
new file mode 100644
index 000000000000..6cd22adf51d9
--- /dev/null
+++ b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/PropertiesCopyHandlerEx.java
@@ -0,0 +1,35 @@
+package com.intellij.lang.properties.editor;
+
+import com.intellij.ide.DataManager;
+import com.intellij.lang.properties.ResourceBundle;
+import com.intellij.openapi.actionSystem.PlatformDataKeys;
+import com.intellij.openapi.fileEditor.FileEditor;
+import com.intellij.openapi.fileEditor.FileEditorManager;
+import com.intellij.openapi.project.Project;
+import org.jetbrains.annotations.NotNull;
+
+public class PropertiesCopyHandlerEx extends PropertiesCopyHandler {
+ @Override
+ protected void updateBundleEditors(@NotNull String newName,
+ @NotNull ResourceBundle targetResourceBundle,
+ @NotNull ResourceBundle sourceResourceBundle,
+ @NotNull Project project) {
+ if (sourceResourceBundle.equals(targetResourceBundle)) {
+ DataManager.getInstance()
+ .getDataContextFromFocusAsync()
+ .onSuccess(context -> {
+ final FileEditor fileEditor = PlatformDataKeys.FILE_EDITOR.getData(context);
+ if (fileEditor instanceof ResourceBundleEditor) {
+ final ResourceBundleEditor resourceBundleEditor = (ResourceBundleEditor)fileEditor;
+ resourceBundleEditor.updateTreeRoot();
+ resourceBundleEditor.selectProperty(newName);
+ }
+ });
+ } else {
+ for (FileEditor editor : FileEditorManager.getInstance(project).openFile(new ResourceBundleAsVirtualFile(targetResourceBundle), true)) {
+ ((ResourceBundleEditor) editor).updateTreeRoot();
+ ((ResourceBundleEditor) editor).selectProperty(newName);
+ }
+ }
+ }
+}
diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleEditor.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleEditor.java
similarity index 100%
rename from plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleEditor.java
rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleEditor.java
diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleEditorFileListener.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleEditorFileListener.java
similarity index 100%
rename from plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleEditorFileListener.java
rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleEditorFileListener.java
diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleEditorHighlighter.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleEditorHighlighter.java
similarity index 100%
rename from plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleEditorHighlighter.java
rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleEditorHighlighter.java
diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleEditorKeepEmptyValueToggleAction.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleEditorKeepEmptyValueToggleAction.java
similarity index 100%
rename from plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleEditorKeepEmptyValueToggleAction.java
rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleEditorKeepEmptyValueToggleAction.java
diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleEditorProvider.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleEditorProvider.java
similarity index 96%
rename from plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleEditorProvider.java
rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleEditorProvider.java
index 4ff85629d7a5..33628a782013 100644
--- a/plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleEditorProvider.java
+++ b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleEditorProvider.java
@@ -10,8 +10,6 @@ import com.intellij.openapi.fileEditor.FileEditorPolicy;
import com.intellij.openapi.fileEditor.FileEditorProvider;
import com.intellij.openapi.fileEditor.FileEditorState;
import com.intellij.openapi.fileTypes.FileType;
-import com.intellij.openapi.fileTypes.FileTypeConsumer;
-import com.intellij.openapi.fileTypes.FileTypeFactory;
import com.intellij.openapi.fileTypes.StdFileTypes;
import com.intellij.openapi.project.DumbAware;
import com.intellij.openapi.project.Project;
diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleEditorShowQuickFixesAction.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleEditorShowQuickFixesAction.java
similarity index 100%
rename from plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleEditorShowQuickFixesAction.java
rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleEditorShowQuickFixesAction.java
diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleFileStructureViewElement.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleFileStructureViewElement.java
similarity index 92%
rename from plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleFileStructureViewElement.java
rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleFileStructureViewElement.java
index 868d4ff4904b..08889a759fc5 100644
--- a/plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleFileStructureViewElement.java
+++ b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleFileStructureViewElement.java
@@ -20,7 +20,7 @@ import javax.swing.*;
import java.util.*;
import java.util.function.BooleanSupplier;
-public class ResourceBundleFileStructureViewElement implements StructureViewTreeElement {
+public class ResourceBundleFileStructureViewElement implements StructureViewTreeElement, ResourceBundleEditorViewElement {
@NotNull
private final ResourceBundle myResourceBundle;
@NotNull
@@ -129,6 +129,21 @@ public class ResourceBundleFileStructureViewElement implements StructureViewTree
return propertyNames;
}
+ @Nullable
+ @Override
+ public IProperty[] getProperties() {
+ return IProperty.EMPTY_ARRAY;
+ }
+
+ @Nullable
+ @Override
+ public PsiFile[] getFiles() {
+ ResourceBundle rb = getValue();
+ if (rb == null) return null;
+ final List files = rb.getPropertiesFiles();
+ return ContainerUtil.map2Array(files, new PsiFile[files.size()], propertiesFile -> propertiesFile.getContainingFile());
+ }
+
@Override
@NotNull
public ItemPresentation getPresentation() {
diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundlePropertiesUpdateManager.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundlePropertiesUpdateManager.java
similarity index 100%
rename from plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundlePropertiesUpdateManager.java
rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundlePropertiesUpdateManager.java
diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleStructureViewComponent.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleStructureViewComponent.java
similarity index 100%
rename from plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleStructureViewComponent.java
rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleStructureViewComponent.java
diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleStructureViewModel.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleStructureViewModel.java
similarity index 100%
rename from plugins/properties/src/com/intellij/lang/properties/editor/ResourceBundleStructureViewModel.java
rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/ResourceBundleStructureViewModel.java
diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/inspections/incomplete/IncompletePropertyInspection.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/inspections/incomplete/IncompletePropertyInspection.java
similarity index 100%
rename from plugins/properties/src/com/intellij/lang/properties/editor/inspections/incomplete/IncompletePropertyInspection.java
rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/inspections/incomplete/IncompletePropertyInspection.java
index 5c0b5e5efb9c..5e56ec50cf25 100644
--- a/plugins/properties/src/com/intellij/lang/properties/editor/inspections/incomplete/IncompletePropertyInspection.java
+++ b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/inspections/incomplete/IncompletePropertyInspection.java
@@ -21,8 +21,8 @@ import com.intellij.codeInspection.ProblemHighlightType;
import com.intellij.codeInspection.QuickFix;
import com.intellij.codeInspection.ex.InspectionProfileModifiableModelKt;
import com.intellij.codeInspection.ex.UnfairLocalInspectionTool;
-import com.intellij.lang.properties.*;
import com.intellij.lang.properties.ResourceBundle;
+import com.intellij.lang.properties.*;
import com.intellij.lang.properties.editor.inspections.ResourceBundleEditorInspection;
import com.intellij.lang.properties.editor.inspections.ResourceBundleEditorProblemDescriptor;
import com.intellij.lang.properties.psi.PropertiesFile;
diff --git a/plugins/properties/src/com/intellij/lang/properties/editor/inspections/incomplete/IncompletePropertyInspectionOptionsPanel.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/inspections/incomplete/IncompletePropertyInspectionOptionsPanel.java
similarity index 100%
rename from plugins/properties/src/com/intellij/lang/properties/editor/inspections/incomplete/IncompletePropertyInspectionOptionsPanel.java
rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/editor/inspections/incomplete/IncompletePropertyInspectionOptionsPanel.java
diff --git a/plugins/properties/src/com/intellij/lang/properties/refactoring/rename/ResourceBundleFromEditorRenameHandler.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/refactoring/rename/ResourceBundleFromEditorRenameHandler.java
similarity index 100%
rename from plugins/properties/src/com/intellij/lang/properties/refactoring/rename/ResourceBundleFromEditorRenameHandler.java
rename to plugins/properties/properties-resource-bundle-editor/src/com/intellij/lang/properties/refactoring/rename/ResourceBundleFromEditorRenameHandler.java
diff --git a/plugins/properties/testSrc/com/intellij/lang/properties/IgnoredPropertiesFilesSuffixesTest.java b/plugins/properties/properties-resource-bundle-editor/test/com/intellij/lang/properties/IgnoredPropertiesFilesSuffixesTest.java
similarity index 100%
rename from plugins/properties/testSrc/com/intellij/lang/properties/IgnoredPropertiesFilesSuffixesTest.java
rename to plugins/properties/properties-resource-bundle-editor/test/com/intellij/lang/properties/IgnoredPropertiesFilesSuffixesTest.java
diff --git a/plugins/properties/testSrc/com/intellij/lang/properties/ResourceBundleEditorInsertManagerTest.java b/plugins/properties/properties-resource-bundle-editor/test/com/intellij/lang/properties/ResourceBundleEditorInsertManagerTest.java
similarity index 100%
rename from plugins/properties/testSrc/com/intellij/lang/properties/ResourceBundleEditorInsertManagerTest.java
rename to plugins/properties/properties-resource-bundle-editor/test/com/intellij/lang/properties/ResourceBundleEditorInsertManagerTest.java
diff --git a/plugins/properties/testSrc/com/intellij/lang/properties/ResourceBundleTest.java b/plugins/properties/properties-resource-bundle-editor/test/com/intellij/lang/properties/ResourceBundleTest.java
similarity index 100%
rename from plugins/properties/testSrc/com/intellij/lang/properties/ResourceBundleTest.java
rename to plugins/properties/properties-resource-bundle-editor/test/com/intellij/lang/properties/ResourceBundleTest.java
diff --git a/plugins/properties/src/META-INF/plugin.xml b/plugins/properties/src/META-INF/plugin.xml
index ea3f0aa5de45..b10d5c970782 100644
--- a/plugins/properties/src/META-INF/plugin.xml
+++ b/plugins/properties/src/META-INF/plugin.xml
@@ -116,7 +116,7 @@
-
+