summaryrefslogtreecommitdiff
path: root/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/PropertiesImplUtil.java
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/PropertiesImplUtil.java')
-rw-r--r--plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/PropertiesImplUtil.java30
1 files changed, 21 insertions, 9 deletions
diff --git a/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/PropertiesImplUtil.java b/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/PropertiesImplUtil.java
index f667b1a93da0..15e73791f8ea 100644
--- a/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/PropertiesImplUtil.java
+++ b/plugins/properties/properties-psi-impl/src/com/intellij/lang/properties/PropertiesImplUtil.java
@@ -15,6 +15,7 @@
*/
package com.intellij.lang.properties;
+import com.intellij.lang.HtmlScriptContentProvider;
import com.intellij.lang.properties.psi.PropertiesFile;
import com.intellij.lang.properties.psi.PropertyKeyIndex;
import com.intellij.lang.properties.xml.XmlPropertiesFileImpl;
@@ -48,7 +49,23 @@ public class PropertiesImplUtil extends PropertiesUtil {
if (!containingFile.isValid()) {
return EmptyResourceBundle.getInstance();
}
- final String baseName = getBaseName(containingFile);
+ final ResourceBundleManager manager = ResourceBundleManager.getInstance(representative.getProject());
+ final CustomResourceBundle customResourceBundle =
+ manager.getCustomResourceBundle(representative);
+ if (customResourceBundle != null) {
+ return customResourceBundle;
+ }
+
+ final VirtualFile virtualFile = representative.getVirtualFile();
+ if (virtualFile == null) {
+ return EmptyResourceBundle.getInstance();
+ }
+ if (manager.isDefaultDissociated(virtualFile)) {
+ return new ResourceBundleImpl(representative);
+ }
+
+
+ final String baseName = manager.getBaseName(containingFile);
final PsiDirectory directory = ApplicationManager.getApplication().runReadAction(new Computable<PsiDirectory>() {
@Nullable
public PsiDirectory compute() {
@@ -61,14 +78,9 @@ public class PropertiesImplUtil extends PropertiesUtil {
@Nullable
private static ResourceBundle getResourceBundle(@NotNull final String baseName, @NotNull final PsiDirectory baseDirectory) {
PropertiesFile defaultPropertiesFile = null;
- final PsiFile[] files = ApplicationManager.getApplication().runReadAction(new Computable<PsiFile[]>() {
- @Override
- public PsiFile[] compute() {
- return baseDirectory.getFiles();
- }
- });
- for (final PsiFile psiFile : files) {
- if (baseName.equals(getBaseName(psiFile))) {
+ final ResourceBundleManager bundleBaseNameManager = ResourceBundleManager.getInstance(baseDirectory.getProject());
+ for (final PsiFile psiFile : baseDirectory.getFiles()) {
+ if (baseName.equals(bundleBaseNameManager.getBaseName(psiFile))) {
final PropertiesFile propertiesFile = getPropertiesFile(psiFile);
if (propertiesFile != null) {
if (defaultPropertiesFile == null || defaultPropertiesFile.getName().compareTo(propertiesFile.getName()) > 0) {