diff --git a/jam-api/pom.xml b/jam-api/pom.xml
index 19fb472812..dcbb3aedd8 100644
--- a/jam-api/pom.xml
+++ b/jam-api/pom.xml
@@ -41,6 +41,24 @@
3-SNAPSHOT
jar
+
+
+
+ consulo.maven
+ maven-consulo-plugin
+ true
+
+
+ generate-sources
+
+ generate-localize
+
+
+
+
+
+
+
consulo
diff --git a/jam-api/src/main/java/com/intellij/jam/JamMessages.java b/jam-api/src/main/java/com/intellij/jam/JamMessages.java
index 2ff290a6e8..c16311db95 100644
--- a/jam-api/src/main/java/com/intellij/jam/JamMessages.java
+++ b/jam-api/src/main/java/com/intellij/jam/JamMessages.java
@@ -13,15 +13,20 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package com.intellij.jam;
+import consulo.annotation.DeprecationInfo;
+import consulo.annotation.internal.MigratedExtensionsTo;
import consulo.component.util.localize.AbstractBundle;
+import consulo.java.jam.localize.JavaAnnotationModelLocalize;
import org.jetbrains.annotations.PropertyKey;
/**
* @author Gregory.Shrago
*/
+@Deprecated
+@DeprecationInfo("Use JavaAnnotationModelLocalize")
+@MigratedExtensionsTo(JavaAnnotationModelLocalize.class)
public class JamMessages extends AbstractBundle {
protected static final String PATH_TO_BUNDLE = "messages.JamBundle";
diff --git a/jam-api/src/main/java/com/intellij/jam/view/ui/SelectElementsDialog.java b/jam-api/src/main/java/com/intellij/jam/view/ui/SelectElementsDialog.java
index c3aaa02b27..e5047c54d5 100644
--- a/jam-api/src/main/java/com/intellij/jam/view/ui/SelectElementsDialog.java
+++ b/jam-api/src/main/java/com/intellij/jam/view/ui/SelectElementsDialog.java
@@ -15,9 +15,9 @@
*/
package com.intellij.jam.view.ui;
-import com.intellij.jam.JamMessages;
import com.intellij.java.language.psi.*;
import com.intellij.java.language.psi.util.PsiFormatUtil;
+import consulo.java.jam.localize.JavaAnnotationModelLocalize;
import consulo.language.editor.refactoring.ui.EnableDisableAction;
import consulo.language.icon.IconDescriptorUpdaters;
import consulo.language.psi.PsiElement;
@@ -142,11 +142,10 @@ else if (psiElement instanceof PsiAnnotation) {
return annotation.getContainingFile().getName() + ": @" + annotation.getQualifiedName();
}
}
- else if (psiElement instanceof NavigationItem) {
- final NavigationItem navigationItem = (NavigationItem)psiElement;
- final ItemPresentation presentation = navigationItem.getPresentation();
+ else if (psiElement instanceof NavigationItem navigationItem) {
+ ItemPresentation presentation = navigationItem.getPresentation();
if (presentation != null) {
- return StringUtil.notNullize(presentation.getPresentableText(), JamMessages.message("unnamed.element.presentable.name"));
+ return presentation.getPresentableText().orIfEmpty(JavaAnnotationModelLocalize.unnamedElementPresentableName()).get();
}
}
return psiElement.toString();
@@ -200,7 +199,7 @@ public TableCellRenderer getRenderer(final PsiElement psiElement) {
protected void customizeCellRenderer(JTable table, Object value, boolean selected, boolean hasFocus, int row, int column) {
append((String)value, SimpleTextAttributes.REGULAR_ATTRIBUTES);
if (!psiElement.isPhysical()) {
- append(" [" + JamMessages.message("postfix.not.physical.element") + "]", SimpleTextAttributes.GRAY_ATTRIBUTES);
+ append(" [" + JavaAnnotationModelLocalize.postfixNotPhysicalElement().get() + "]", SimpleTextAttributes.GRAY_ATTRIBUTES);
}
setIcon(IconDescriptorUpdaters.getIcon(psiElement, 0));
setOpaque(false);
diff --git a/jam-api/src/main/java/module-info.java b/jam-api/src/main/java/module-info.java
index e3df51630d..6131825e3a 100644
--- a/jam-api/src/main/java/module-info.java
+++ b/jam-api/src/main/java/module-info.java
@@ -1,6 +1,6 @@
/**
* @author VISTALL
- * @since 02/12/2022
+ * @since 2022-12-02
*/
module consulo.java.jam.api {
requires transitive consulo.java.language.api;
@@ -25,5 +25,6 @@
exports com.intellij.jam.view;
exports com.intellij.jam.view.tree;
exports com.intellij.jam.view.ui;
+ exports consulo.java.jam.localize;
exports consulo.java.jam.util;
}
\ No newline at end of file
diff --git a/jam-api/src/main/resources/LOCALIZE-LIB/en_US/consulo.java.jam.JavaAnnotationModelLocalize.yaml b/jam-api/src/main/resources/LOCALIZE-LIB/en_US/consulo.java.jam.JavaAnnotationModelLocalize.yaml
new file mode 100644
index 0000000000..8118ca92dc
--- /dev/null
+++ b/jam-api/src/main/resources/LOCALIZE-LIB/en_US/consulo.java.jam.JavaAnnotationModelLocalize.yaml
@@ -0,0 +1,32 @@
+button.delete:
+ text: '&Delete'
+button.do.not.delete:
+ text: Do &Not Delete
+column.name.elements.to.delete:
+ text: Elements to Delete
+command.name.deleting.element:
+ text: Deleting {0}
+confirmation.text.0.1.belongs.to.2.rename.2:
+ text: |-
+ {0} ''{1}'' belongs to {2}.
+ Do you want to rename {2} instead?
+confirmation.text.delete.element:
+ text: Delete {0}?
+dialog.title.rename.0.classes:
+ text: Rename {0} Classes
+dialog.title.select.elements.to.delete:
+ text: Select Elements to Delete
+local.vcs.action.name.deleting.element:
+ text: Deleting {0}
+message.title.deleting.element:
+ text: Deleting {0}
+model.delete.items:
+ text: items
+postfix.not.physical.element:
+ text: nonexistent
+this.0.1.belongs.to.2.search.usages.2:
+ text: |-
+ This {0} ''{1}'' belongs to {2}.
+ Do you want to search for the {2} usages instead?
+unnamed.element.presentable.name:
+ text:
diff --git a/java-analysis-impl/src/main/java/com/intellij/java/analysis/impl/codeInsight/daemon/impl/analysis/HighlightUtil.java b/java-analysis-impl/src/main/java/com/intellij/java/analysis/impl/codeInsight/daemon/impl/analysis/HighlightUtil.java
index fcae590e41..bf3986dd3d 100644
--- a/java-analysis-impl/src/main/java/com/intellij/java/analysis/impl/codeInsight/daemon/impl/analysis/HighlightUtil.java
+++ b/java-analysis-impl/src/main/java/com/intellij/java/analysis/impl/codeInsight/daemon/impl/analysis/HighlightUtil.java
@@ -3559,13 +3559,13 @@ private static String format(PsiElement element) {
if (element instanceof PsiField field) {
return formatField(field);
}
- return ElementDescriptionUtil.getElementDescription(element, HighlightUsagesDescriptionLocation.INSTANCE);
+ return ElementDescriptionUtil.getElementDescription(element, HighlightUsagesDescriptionLocation.INSTANCE).get();
}
private static PsiElement getOuterReferenceParent(PsiJavaCodeReferenceElement ref) {
PsiElement element = ref;
- while (element instanceof PsiJavaCodeReferenceElement) {
- element = element.getParent();
+ while (element instanceof PsiJavaCodeReferenceElement thisRef) {
+ element = thisRef.getParent();
}
return element;
}
diff --git a/java-language-impl/src/main/java/com/intellij/java/language/impl/psi/presentation/java/ClassPresentationProvider.java b/java-language-impl/src/main/java/com/intellij/java/language/impl/psi/presentation/java/ClassPresentationProvider.java
index 4019467332..d3cdf73c87 100644
--- a/java-language-impl/src/main/java/com/intellij/java/language/impl/psi/presentation/java/ClassPresentationProvider.java
+++ b/java-language-impl/src/main/java/com/intellij/java/language/impl/psi/presentation/java/ClassPresentationProvider.java
@@ -24,6 +24,7 @@
import consulo.component.util.Iconable;
import consulo.language.icon.IconDescriptorUpdaters;
import consulo.language.psi.PsiFile;
+import consulo.localize.LocalizeValue;
import consulo.navigation.ItemPresentation;
import consulo.navigation.ItemPresentationProvider;
import consulo.ui.ex.ColoredItemPresentation;
@@ -44,8 +45,8 @@ public ItemPresentation getPresentation(final PsiClass psiClass) {
return new ColoredItemPresentation() {
@Override
@RequiredReadAction
- public String getPresentableText() {
- return ClassPresentationUtil.getNameForClass(psiClass, false).get();
+ public LocalizeValue getPresentableText() {
+ return ClassPresentationUtil.getNameForClass(psiClass, false);
}
@Override
diff --git a/java-language-impl/src/main/java/com/intellij/java/language/impl/psi/presentation/java/JavaModulePresentationProvider.java b/java-language-impl/src/main/java/com/intellij/java/language/impl/psi/presentation/java/JavaModulePresentationProvider.java
index 5e1af6dd9b..65964f9dab 100644
--- a/java-language-impl/src/main/java/com/intellij/java/language/impl/psi/presentation/java/JavaModulePresentationProvider.java
+++ b/java-language-impl/src/main/java/com/intellij/java/language/impl/psi/presentation/java/JavaModulePresentationProvider.java
@@ -18,8 +18,9 @@
import com.intellij.java.language.impl.psi.impl.PsiImplUtil;
import com.intellij.java.language.psi.PsiJavaModule;
import consulo.annotation.component.ExtensionImpl;
-import consulo.java.language.impl.JavaIcons;
+import consulo.java.language.impl.icon.JavaPsiImplIconGroup;
import consulo.language.content.FileIndexFacade;
+import consulo.localize.LocalizeValue;
import consulo.module.Module;
import consulo.navigation.ItemPresentation;
import consulo.navigation.ItemPresentationProvider;
@@ -32,46 +33,44 @@
@ExtensionImpl
public class JavaModulePresentationProvider implements ItemPresentationProvider {
- private static final Pattern JAR_NAME = Pattern.compile(".+/([^/]+\\.jar)!/.*");
+ private static final Pattern JAR_NAME = Pattern.compile(".+/([^/]+\\.jar)!/.*");
- @Override
- public Class getItemClass() {
- return PsiJavaModule.class;
- }
+ @Override
+ public Class getItemClass() {
+ return PsiJavaModule.class;
+ }
- @Override
- public ItemPresentation getPresentation(final PsiJavaModule item) {
- return new ItemPresentation() {
- @Nullable
- @Override
- public String getPresentableText() {
- return item.getName();
- }
+ @Override
+ public ItemPresentation getPresentation(final PsiJavaModule item) {
+ return new ItemPresentation() {
+ @Override
+ public LocalizeValue getPresentableText() {
+ return LocalizeValue.ofNullable(item.getName());
+ }
- @Nullable
- @Override
- public String getLocationString() {
- VirtualFile file = PsiImplUtil.getModuleVirtualFile(item);
- FileIndexFacade index = FileIndexFacade.getInstance(item.getProject());
- if (index.isInLibraryClasses(file)) {
- Matcher matcher = JAR_NAME.matcher(file.getPath());
- if (matcher.find()) {
- return matcher.group(1);
- }
- } else if (index.isInSource(file)) {
- Module module = index.getModuleForFile(file);
- if (module != null) {
- return '[' + module.getName() + ']';
- }
- }
- return null;
- }
+ @Override
+ public @Nullable String getLocationString() {
+ VirtualFile file = PsiImplUtil.getModuleVirtualFile(item);
+ FileIndexFacade index = FileIndexFacade.getInstance(item.getProject());
+ if (index.isInLibraryClasses(file)) {
+ Matcher matcher = JAR_NAME.matcher(file.getPath());
+ if (matcher.find()) {
+ return matcher.group(1);
+ }
+ }
+ else if (index.isInSource(file)) {
+ Module module = index.getModuleForFile(file);
+ if (module != null) {
+ return '[' + module.getName() + ']';
+ }
+ }
+ return null;
+ }
- @Nullable
- @Override
- public Image getIcon() {
- return JavaIcons.Nodes.JavaModule;
- }
- };
- }
+ @Override
+ public @Nullable Image getIcon() {
+ return JavaPsiImplIconGroup.nodesJavamodule();
+ }
+ };
+ }
}
\ No newline at end of file
diff --git a/java-language-impl/src/main/java/com/intellij/java/language/impl/psi/presentation/java/JavaPresentationUtil.java b/java-language-impl/src/main/java/com/intellij/java/language/impl/psi/presentation/java/JavaPresentationUtil.java
index 38c4fa7dd2..35a452ab66 100644
--- a/java-language-impl/src/main/java/com/intellij/java/language/impl/psi/presentation/java/JavaPresentationUtil.java
+++ b/java-language-impl/src/main/java/com/intellij/java/language/impl/psi/presentation/java/JavaPresentationUtil.java
@@ -15,111 +15,113 @@
*/
package com.intellij.java.language.impl.psi.presentation.java;
-import consulo.ui.ex.ColoredItemPresentation;
-import consulo.navigation.ItemPresentation;
+import com.intellij.java.language.psi.*;
+import com.intellij.java.language.psi.util.PsiFormatUtil;
+import consulo.annotation.access.RequiredReadAction;
import consulo.codeEditor.CodeInsightColors;
import consulo.colorScheme.TextAttributesKey;
import consulo.component.util.Iconable;
-import consulo.language.psi.PsiBundle;
-import com.intellij.java.language.psi.PsiClass;
+import consulo.language.icon.IconDescriptorUpdaters;
+import consulo.language.localize.LanguageLocalize;
import consulo.language.psi.PsiElement;
-import com.intellij.java.language.psi.PsiField;
import consulo.language.psi.PsiFile;
-import com.intellij.java.language.psi.PsiJavaFile;
-import com.intellij.java.language.psi.PsiMember;
-import com.intellij.java.language.psi.PsiMethod;
-import com.intellij.java.language.psi.PsiSubstitutor;
-import com.intellij.java.language.psi.util.PsiFormatUtil;
import consulo.language.psi.util.PsiTreeUtil;
-import consulo.language.icon.IconDescriptorUpdaters;
+import consulo.localize.LocalizeValue;
+import consulo.navigation.ItemPresentation;
+import consulo.ui.ex.ColoredItemPresentation;
import consulo.ui.image.Image;
import org.jspecify.annotations.Nullable;
public class JavaPresentationUtil {
- private JavaPresentationUtil() {
- }
+ private JavaPresentationUtil() {
+ }
- public static ColoredItemPresentation getMethodPresentation(final PsiMethod psiMethod) {
- return new ColoredItemPresentation() {
- @Override
- public String getPresentableText() {
- return PsiFormatUtil.formatMethod(
- psiMethod,
- PsiSubstitutor.EMPTY, PsiFormatUtil.SHOW_NAME | PsiFormatUtil.SHOW_PARAMETERS,
- PsiFormatUtil.SHOW_TYPE
- );
- }
+ public static ColoredItemPresentation getMethodPresentation(final PsiMethod psiMethod) {
+ return new ColoredItemPresentation() {
+ @Override
+ public LocalizeValue getPresentableText() {
+ return LocalizeValue.of(PsiFormatUtil.formatMethod(
+ psiMethod,
+ PsiSubstitutor.EMPTY, PsiFormatUtil.SHOW_NAME | PsiFormatUtil.SHOW_PARAMETERS,
+ PsiFormatUtil.SHOW_TYPE
+ ));
+ }
- @Override
- public TextAttributesKey getTextAttributesKey() {
- if (psiMethod.isDeprecated()) {
- return CodeInsightColors.DEPRECATED_ATTRIBUTES;
- }
- return null;
- }
+ @Override
+ public TextAttributesKey getTextAttributesKey() {
+ if (psiMethod.isDeprecated()) {
+ return CodeInsightColors.DEPRECATED_ATTRIBUTES;
+ }
+ return null;
+ }
- @Override
- public String getLocationString() {
- return getJavaSymbolContainerText(psiMethod);
- }
+ @Override
+ @RequiredReadAction
+ public String getLocationString() {
+ return getJavaSymbolContainerText(psiMethod);
+ }
- @Override
- public Image getIcon() {
- return IconDescriptorUpdaters.getIcon(psiMethod, Iconable.ICON_FLAG_VISIBILITY);
- }
- };
- }
+ @Override
+ @RequiredReadAction
+ public Image getIcon() {
+ return IconDescriptorUpdaters.getIcon(psiMethod, Iconable.ICON_FLAG_VISIBILITY);
+ }
+ };
+ }
- public static ItemPresentation getFieldPresentation(final PsiField psiField) {
- return new ColoredItemPresentation() {
- @Override
- public String getPresentableText() {
- return psiField.getName();
- }
+ public static ItemPresentation getFieldPresentation(final PsiField psiField) {
+ return new ColoredItemPresentation() {
+ @Override
+ public LocalizeValue getPresentableText() {
+ return LocalizeValue.ofNullable(psiField.getName());
+ }
- @Override
- public TextAttributesKey getTextAttributesKey() {
- if (psiField.isDeprecated()) {
- return CodeInsightColors.DEPRECATED_ATTRIBUTES;
- }
- return null;
- }
+ @Override
+ public TextAttributesKey getTextAttributesKey() {
+ if (psiField.isDeprecated()) {
+ return CodeInsightColors.DEPRECATED_ATTRIBUTES;
+ }
+ return null;
+ }
- @Override
- public String getLocationString() {
- return getJavaSymbolContainerText(psiField);
- }
+ @Override
+ @RequiredReadAction
+ public String getLocationString() {
+ return getJavaSymbolContainerText(psiField);
+ }
- @Override
- public Image getIcon() {
- return IconDescriptorUpdaters.getIcon(psiField, Iconable.ICON_FLAG_VISIBILITY);
- }
- };
- }
+ @Override
+ @RequiredReadAction
+ public Image getIcon() {
+ return IconDescriptorUpdaters.getIcon(psiField, Iconable.ICON_FLAG_VISIBILITY);
+ }
+ };
+ }
- @Nullable
- private static String getJavaSymbolContainerText(final PsiElement element) {
- final String result;
- PsiElement container = PsiTreeUtil.getParentOfType(element, PsiMember.class, PsiFile.class);
+ @Nullable
+ @RequiredReadAction
+ private static String getJavaSymbolContainerText(PsiElement element) {
+ String result;
+ PsiElement container = PsiTreeUtil.getParentOfType(element, PsiMember.class, PsiFile.class);
- if (container instanceof PsiClass) {
- String qName = ((PsiClass)container).getQualifiedName();
- if (qName != null) {
- result = qName;
- }
- else {
- result = ((PsiClass)container).getName();
- }
- }
- else if (container instanceof PsiJavaFile) {
- result = ((PsiJavaFile)container).getPackageName();
- }
- else {//TODO: local classes
- result = null;
- }
- if (result != null) {
- return PsiBundle.message("aux.context.display", result);
+ if (container instanceof PsiClass psiClass) {
+ String qName = psiClass.getQualifiedName();
+ if (qName != null) {
+ result = qName;
+ }
+ else {
+ result = psiClass.getName();
+ }
+ }
+ else if (container instanceof PsiJavaFile javaFile) {
+ result = javaFile.getPackageName();
+ }
+ else {//TODO: local classes
+ result = null;
+ }
+ if (result != null) {
+ return LanguageLocalize.auxContextDisplay(result).get();
+ }
+ return null;
}
- return null;
- }
}
diff --git a/java-language-impl/src/main/java/com/intellij/java/language/impl/psi/presentation/java/PackagePresentationProvider.java b/java-language-impl/src/main/java/com/intellij/java/language/impl/psi/presentation/java/PackagePresentationProvider.java
index 88d80149ba..8e0699b33b 100644
--- a/java-language-impl/src/main/java/com/intellij/java/language/impl/psi/presentation/java/PackagePresentationProvider.java
+++ b/java-language-impl/src/main/java/com/intellij/java/language/impl/psi/presentation/java/PackagePresentationProvider.java
@@ -15,8 +15,10 @@
*/
package com.intellij.java.language.impl.psi.presentation.java;
+import consulo.annotation.access.RequiredReadAction;
import consulo.annotation.component.ExtensionImpl;
-import consulo.application.AllIcons;
+import consulo.localize.LocalizeValue;
+import consulo.platform.base.icon.PlatformIconGroup;
import consulo.ui.ex.ColoredItemPresentation;
import consulo.navigation.ItemPresentation;
import consulo.navigation.ItemPresentationProvider;
@@ -24,36 +26,36 @@
import com.intellij.java.language.psi.PsiJavaPackage;
import consulo.ui.image.Image;
-
@ExtensionImpl
public class PackagePresentationProvider implements ItemPresentationProvider {
- @Override
- public Class getItemClass() {
- return PsiJavaPackage.class;
- }
+ @Override
+ public Class getItemClass() {
+ return PsiJavaPackage.class;
+ }
- @Override
- public ItemPresentation getPresentation(final PsiJavaPackage aPackage) {
- return new ColoredItemPresentation() {
- @Override
- public TextAttributesKey getTextAttributesKey() {
- return null;
- }
+ @Override
+ public ItemPresentation getPresentation(PsiJavaPackage aPackage) {
+ return new ColoredItemPresentation() {
+ @Override
+ public TextAttributesKey getTextAttributesKey() {
+ return null;
+ }
- @Override
- public String getPresentableText() {
- return aPackage.getName();
- }
+ @Override
+ @RequiredReadAction
+ public LocalizeValue getPresentableText() {
+ return LocalizeValue.ofNullable(aPackage.getName());
+ }
- @Override
- public String getLocationString() {
- return aPackage.getQualifiedName();
- }
+ @Override
+ public String getLocationString() {
+ return aPackage.getQualifiedName();
+ }
- @Override
- public Image getIcon() {
- return AllIcons.Nodes.Package;
- }
- };
- }
+ @Override
+ public Image getIcon() {
+ return PlatformIconGroup.nodesPackage();
+ }
+ };
+ }
}
diff --git a/java-language-impl/src/main/java/com/intellij/java/language/impl/psi/presentation/java/VariablePresentationProvider.java b/java-language-impl/src/main/java/com/intellij/java/language/impl/psi/presentation/java/VariablePresentationProvider.java
index 30a47ffe15..04e980c894 100644
--- a/java-language-impl/src/main/java/com/intellij/java/language/impl/psi/presentation/java/VariablePresentationProvider.java
+++ b/java-language-impl/src/main/java/com/intellij/java/language/impl/psi/presentation/java/VariablePresentationProvider.java
@@ -16,7 +16,9 @@
package com.intellij.java.language.impl.psi.presentation.java;
import com.intellij.java.language.psi.PsiVariable;
+import consulo.annotation.access.RequiredReadAction;
import consulo.language.icon.IconDescriptorUpdaters;
+import consulo.localize.LocalizeValue;
import consulo.navigation.ItemPresentation;
import consulo.navigation.ItemPresentationProvider;
import consulo.navigation.NavigationItem;
@@ -26,24 +28,26 @@
* @author yole
*/
public abstract class VariablePresentationProvider implements ItemPresentationProvider {
- @Override
- public ItemPresentation getPresentation(final T variable) {
- return new ItemPresentation() {
- @Override
- public String getPresentableText() {
- //return PsiFormatUtil.formatVariable(variable, PsiFormatUtilBase.SHOW_TYPE, PsiSubstitutor.EMPTY);
- return variable.getName();
- }
+ @Override
+ public ItemPresentation getPresentation(final T variable) {
+ return new ItemPresentation() {
+ @Override
+ @RequiredReadAction
+ public LocalizeValue getPresentableText() {
+ //return PsiFormatUtil.formatVariable(variable, PsiFormatUtilBase.SHOW_TYPE, PsiSubstitutor.EMPTY);
+ return LocalizeValue.ofNullable(variable.getName());
+ }
- @Override
- public String getLocationString() {
- return "";
- }
+ @Override
+ public String getLocationString() {
+ return "";
+ }
- @Override
- public Image getIcon() {
- return IconDescriptorUpdaters.getIcon(variable, 0);
- }
- };
- }
+ @Override
+ @RequiredReadAction
+ public Image getIcon() {
+ return IconDescriptorUpdaters.getIcon(variable, 0);
+ }
+ };
+ }
}
diff --git a/plugin/src/main/java/com/intellij/java/impl/codeInsight/highlighting/HighlightOverridingMethodsHandler.java b/plugin/src/main/java/com/intellij/java/impl/codeInsight/highlighting/HighlightOverridingMethodsHandler.java
index 1091716e3a..4954077c82 100644
--- a/plugin/src/main/java/com/intellij/java/impl/codeInsight/highlighting/HighlightOverridingMethodsHandler.java
+++ b/plugin/src/main/java/com/intellij/java/impl/codeInsight/highlighting/HighlightOverridingMethodsHandler.java
@@ -91,13 +91,13 @@ public void computeUsages(List classes) {
if (myClass.getApplication().isUnitTestMode()) {
return;
}
- String name;
+ LocalizeValue name;
if (classes.size() == 1) {
ItemPresentation presentation = classes.get(0).getPresentation();
- name = presentation != null ? presentation.getPresentableText() : "";
+ name = presentation != null ? presentation.getPresentableText() : LocalizeValue.empty();
}
else {
- name = "";
+ name = LocalizeValue.empty();
}
myHintText = LocalizeValue.localizeTODO(
CodeInsightBundle.message("no.methods.overriding.0.are.found", classes.size(), name)
diff --git a/plugin/src/main/java/com/intellij/java/impl/codeInsight/highlighting/JavaHighlightUsagesDescriptionProvider.java b/plugin/src/main/java/com/intellij/java/impl/codeInsight/highlighting/JavaHighlightUsagesDescriptionProvider.java
index 911fcbdb07..ad69df9ba6 100644
--- a/plugin/src/main/java/com/intellij/java/impl/codeInsight/highlighting/JavaHighlightUsagesDescriptionProvider.java
+++ b/plugin/src/main/java/com/intellij/java/impl/codeInsight/highlighting/JavaHighlightUsagesDescriptionProvider.java
@@ -18,53 +18,70 @@
import com.intellij.java.language.psi.*;
import com.intellij.java.language.psi.util.PsiFormatUtil;
import com.intellij.java.language.psi.util.PsiFormatUtilBase;
+import consulo.annotation.access.RequiredReadAction;
import consulo.annotation.component.ExtensionImpl;
-import consulo.language.LangBundle;
import consulo.language.editor.highlight.HighlightUsagesDescriptionLocation;
+import consulo.language.localize.LanguageLocalize;
import consulo.language.psi.ElementDescriptionLocation;
import consulo.language.psi.ElementDescriptionProvider;
import consulo.language.psi.PsiElement;
-
+import consulo.localize.LocalizeValue;
/**
* @author yole
*/
@ExtensionImpl
public class JavaHighlightUsagesDescriptionProvider implements ElementDescriptionProvider {
- @Override
- public String getElementDescription(PsiElement element, ElementDescriptionLocation location) {
- if (!(location instanceof HighlightUsagesDescriptionLocation)) return null;
+ @Override
+ @RequiredReadAction
+ public LocalizeValue getElementDescription(PsiElement element, ElementDescriptionLocation location) {
+ if (!(location instanceof HighlightUsagesDescriptionLocation)) {
+ return LocalizeValue.empty();
+ }
- String elementName = null;
- if (element instanceof PsiClass) {
- elementName = ((PsiClass) element).getQualifiedName();
- if (elementName == null) {
- elementName = ((PsiClass) element).getName();
- }
- elementName = (((PsiClass) element).isInterface() ?
- LangBundle.message("java.terms.interface") :
- LangBundle.message("java.terms.class")) + " " + elementName;
- } else if (element instanceof PsiMethod) {
- elementName = PsiFormatUtil.formatMethod((PsiMethod) element,
- PsiSubstitutor.EMPTY, PsiFormatUtilBase.SHOW_NAME | PsiFormatUtilBase.SHOW_PARAMETERS |
- PsiFormatUtilBase.SHOW_CONTAINING_CLASS,
- PsiFormatUtilBase.SHOW_TYPE);
- elementName = LangBundle.message("java.terms.method") + " " + elementName;
- } else if (element instanceof PsiVariable) {
- elementName = PsiFormatUtil.formatVariable((PsiVariable) element,
- PsiFormatUtilBase.SHOW_NAME | PsiFormatUtilBase.SHOW_CONTAINING_CLASS,
- PsiSubstitutor.EMPTY);
- if (element instanceof PsiField) {
- elementName = LangBundle.message("java.terms.field") + " " + elementName;
- } else if (element instanceof PsiParameter) {
- elementName = LangBundle.message("java.terms.parameter") + " " + elementName;
- } else {
- elementName = LangBundle.message("java.terms.variable") + " " + elementName;
- }
- } else if (element instanceof PsiJavaPackage) {
- elementName = ((PsiJavaPackage) element).getQualifiedName();
- elementName = LangBundle.message("java.terms.package") + " " + elementName;
+ if (element instanceof PsiClass psiClass) {
+ String elementName = psiClass.getQualifiedName();
+ if (elementName == null) {
+ elementName = psiClass.getName();
+ }
+ return LocalizeValue.join(
+ psiClass.isInterface() ? LanguageLocalize.javaTermsInterface() : LanguageLocalize.javaTermsClass(),
+ LocalizeValue.space(),
+ LocalizeValue.ofNullable(elementName)
+ );
+ }
+ else if (element instanceof PsiMethod method) {
+ String elementName = PsiFormatUtil.formatMethod(
+ method,
+ PsiSubstitutor.EMPTY,
+ PsiFormatUtilBase.SHOW_NAME | PsiFormatUtilBase.SHOW_PARAMETERS | PsiFormatUtilBase.SHOW_CONTAINING_CLASS,
+ PsiFormatUtilBase.SHOW_TYPE
+ );
+ return LocalizeValue.join(LanguageLocalize.javaTermsMethod(), LocalizeValue.space(), LocalizeValue.of(elementName));
+ }
+ else if (element instanceof PsiVariable variable) {
+ String elementName = PsiFormatUtil.formatVariable(
+ variable,
+ PsiFormatUtilBase.SHOW_NAME | PsiFormatUtilBase.SHOW_CONTAINING_CLASS,
+ PsiSubstitutor.EMPTY
+ );
+ if (element instanceof PsiField) {
+ return LocalizeValue.join(LanguageLocalize.javaTermsField(), LocalizeValue.space(), LocalizeValue.of(elementName));
+ }
+ else if (element instanceof PsiParameter) {
+ return LocalizeValue.join(LanguageLocalize.javaTermsParameter(), LocalizeValue.space(), LocalizeValue.of(elementName));
+ }
+ else {
+ return LocalizeValue.join(LanguageLocalize.javaTermsVariable(), LocalizeValue.space(), LocalizeValue.of(elementName));
+ }
+ }
+ else if (element instanceof PsiJavaPackage javaPackage) {
+ return LocalizeValue.join(
+ LanguageLocalize.javaTermsPackage(),
+ LocalizeValue.space(),
+ LocalizeValue.of(javaPackage.getQualifiedName())
+ );
+ }
+ return LocalizeValue.empty();
}
- return elementName;
- }
}
diff --git a/plugin/src/main/java/com/intellij/java/impl/ide/navigationToolbar/JavaNavBarExtension.java b/plugin/src/main/java/com/intellij/java/impl/ide/navigationToolbar/JavaNavBarExtension.java
index 15d2500d24..0402486e80 100644
--- a/plugin/src/main/java/com/intellij/java/impl/ide/navigationToolbar/JavaNavBarExtension.java
+++ b/plugin/src/main/java/com/intellij/java/impl/ide/navigationToolbar/JavaNavBarExtension.java
@@ -12,14 +12,15 @@
import consulo.application.ui.UISettings;
import consulo.fileEditor.structureView.tree.NodeProvider;
import consulo.ide.navigationToolbar.StructureAwareNavBarModelExtension;
-import consulo.java.impl.JavaBundle;
+import consulo.java.localize.JavaLocalize;
import consulo.language.Language;
import consulo.language.psi.*;
+import consulo.localize.LocalizeValue;
import consulo.module.content.ProjectFileIndex;
import consulo.module.content.ProjectRootManager;
import consulo.usage.UsageViewShortNameLocation;
+import consulo.util.lang.StringUtil;
import consulo.virtualFileSystem.VirtualFile;
-
import org.jspecify.annotations.Nullable;
import java.util.List;
@@ -43,31 +44,32 @@ public String getPresentableText(Object object) {
@Override
@RequiredReadAction
public String getPresentableText(Object object, boolean forPopup) {
- if (object instanceof PsiMember) {
- if (forPopup && object instanceof PsiMethod) {
- return PsiFormatUtil.formatMethod((PsiMethod) object,
+ if (object instanceof PsiMember member) {
+ if (forPopup && object instanceof PsiMethod method) {
+ return PsiFormatUtil.formatMethod(
+ method,
PsiSubstitutor.EMPTY,
SHOW_NAME | TYPE_AFTER | SHOW_PARAMETERS,
- SHOW_TYPE);
+ SHOW_TYPE
+ );
}
- return ElementDescriptionUtil.getElementDescription((PsiElement) object, UsageViewShortNameLocation.INSTANCE);
- } else if (object instanceof PsiJavaPackage) {
- String name = ((PsiJavaPackage) object).getName();
- return name != null ? name : JavaBundle.message("dependencies.tree.node.default.package.abbreviation");
- } else if (object instanceof PsiDirectory && JrtFileSystem.isRoot(((PsiDirectory) object).getVirtualFile())) {
- return JavaBundle.message("jrt.node.short");
+ return ElementDescriptionUtil.getElementDescription(member, UsageViewShortNameLocation.INSTANCE).getNullIfEmpty();
+ } else if (object instanceof PsiJavaPackage javaPackage) {
+ return LocalizeValue.ofNullable(javaPackage.getName()).orIfEmpty(JavaLocalize.dependenciesTreeNodeDefaultPackageAbbreviation()).get();
+ } else if (object instanceof PsiDirectory directory && JrtFileSystem.isRoot(directory.getVirtualFile())) {
+ return JavaLocalize.jrtNodeShort().get();
} else if (object instanceof PsiLambdaExpression) {
return "Lambda";
}
return null;
}
- @RequiredReadAction
@Override
+ @RequiredReadAction
public PsiElement getParent(PsiElement psiElement) {
- if (psiElement instanceof PsiPackage) {
- PsiPackage parentPackage = ((PsiPackage) psiElement).getParentPackage();
- if (parentPackage != null && parentPackage.getQualifiedName().length() > 0) {
+ if (psiElement instanceof PsiPackage psiPackage) {
+ PsiPackage parentPackage = psiPackage.getParentPackage();
+ if (parentPackage != null && StringUtil.isNotEmpty(parentPackage.getQualifiedName())) {
return parentPackage;
}
}
@@ -114,9 +116,6 @@ protected List> getApplicableNodeProviders() {
@Override
protected boolean acceptParentFromModel(@Nullable PsiElement psiElement) {
- if (psiElement instanceof PsiJavaFile) {
- return ((PsiJavaFile) psiElement).getClasses().length > 1;
- }
- return true;
+ return !(psiElement instanceof PsiJavaFile javaFile) || javaFile.getClasses().length > 1;
}
}
diff --git a/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/AnonymousClassesSorter.java b/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/AnonymousClassesSorter.java
index a4baaa7b15..74ba222985 100644
--- a/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/AnonymousClassesSorter.java
+++ b/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/AnonymousClassesSorter.java
@@ -25,40 +25,38 @@
* @author Konstantin Bulenkov
*/
public class AnonymousClassesSorter implements Sorter {
- public static Sorter INSTANCE = new AnonymousClassesSorter();
+ public static Sorter INSTANCE = new AnonymousClassesSorter();
- private Comparator myComparator = new Comparator() {
- @Override
- public int compare(Object o1, Object o2) {
- String s1 = SorterUtil.getStringPresentation(o1);
- String s2 = SorterUtil.getStringPresentation(o2);
- if (s1.startsWith("$") && s2.startsWith("$")) {
- try {
- return Integer.parseInt(s1.substring(1)) - Integer.parseInt(s2.substring(1));
- } catch (NumberFormatException e) {//
+ private Comparator myComparator = (o1, o2) -> {
+ String s1 = SorterUtil.getStringPresentation(o1).get();
+ String s2 = SorterUtil.getStringPresentation(o2).get();
+ if (s1.startsWith("$") && s2.startsWith("$")) {
+ try {
+ return Integer.parseInt(s1.substring(1)) - Integer.parseInt(s2.substring(1));
+ }
+ catch (NumberFormatException e) {//
+ }
}
- }
- return 0;
+ return 0;
+ };
+
+ @Override
+ public Comparator getComparator() {
+ return myComparator;
}
- };
-
- @Override
- public Comparator getComparator() {
- return myComparator;
- }
- @Override
- public boolean isVisible() {
- return false;
- }
+ @Override
+ public boolean isVisible() {
+ return false;
+ }
- @Override
- public ActionPresentation getPresentation() {
- return ALPHA_SORTER.getPresentation();
- }
+ @Override
+ public ActionPresentation getPresentation() {
+ return ALPHA_SORTER.getPresentation();
+ }
- @Override
- public String getName() {
- return "ANONYMOUS_CLASSES_SORTER";
- }
+ @Override
+ public String getName() {
+ return "ANONYMOUS_CLASSES_SORTER";
+ }
}
diff --git a/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/ClassInitializerTreeElement.java b/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/ClassInitializerTreeElement.java
index 95475d5061..2fbfc509f4 100644
--- a/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/ClassInitializerTreeElement.java
+++ b/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/ClassInitializerTreeElement.java
@@ -19,59 +19,63 @@
import com.intellij.java.language.psi.PsiCodeBlock;
import com.intellij.java.language.psi.PsiModifier;
import com.intellij.java.language.psi.util.PsiUtil;
+import consulo.annotation.access.RequiredReadAction;
import consulo.fileEditor.structureView.StructureViewTreeElement;
-import consulo.java.analysis.codeInsight.JavaCodeInsightBundle;
+import consulo.java.analysis.codeInsight.localize.JavaCodeInsightLocalize;
import consulo.language.editor.structureView.PsiTreeElementBase;
import consulo.language.psi.PsiElement;
import consulo.language.psi.PsiWhiteSpace;
+import consulo.localize.LocalizeValue;
import consulo.util.lang.StringUtil;
import java.util.Collection;
import java.util.Collections;
public class ClassInitializerTreeElement extends PsiTreeElementBase implements AccessLevelProvider {
- public ClassInitializerTreeElement(PsiClassInitializer initializer) {
- super(initializer);
- }
-
- @Override
- public String getPresentableText() {
- PsiClassInitializer initializer = getElement();
- assert initializer != null;
- String isStatic = initializer.hasModifierProperty(PsiModifier.STATIC) ? PsiModifier.STATIC + " " : "";
- return JavaCodeInsightBundle.message("static.class.initializer", isStatic);
- }
-
- @Override
- public String getLocationString() {
- PsiClassInitializer initializer = getElement();
- assert initializer != null;
- PsiCodeBlock body = initializer.getBody();
- PsiElement first = body.getFirstBodyElement();
- if (first instanceof PsiWhiteSpace) {
- first = first.getNextSibling();
+ public ClassInitializerTreeElement(PsiClassInitializer initializer) {
+ super(initializer);
}
- if (first == body.getRBrace()) {
- first = null;
+
+ @Override
+ @RequiredReadAction
+ public LocalizeValue getPresentableText() {
+ PsiClassInitializer initializer = getElement();
+ assert initializer != null;
+ String isStatic = initializer.isStatic() ? PsiModifier.STATIC + " " : "";
+ return JavaCodeInsightLocalize.staticClassInitializer(isStatic);
}
- if (first != null) {
- return StringUtil.first(first.getText(), 20, true);
+
+ @Override
+ @RequiredReadAction
+ public String getLocationString() {
+ PsiClassInitializer initializer = getElement();
+ assert initializer != null;
+ PsiCodeBlock body = initializer.getBody();
+ PsiElement first = body.getFirstBodyElement();
+ if (first instanceof PsiWhiteSpace whiteSpace) {
+ first = whiteSpace.getNextSibling();
+ }
+ if (first == body.getRBrace()) {
+ first = null;
+ }
+ if (first != null) {
+ return StringUtil.first(first.getText(), 20, true);
+ }
+ return null;
}
- return null;
- }
- @Override
- public Collection getChildrenBase() {
- return Collections.emptyList();
- }
+ @Override
+ public Collection getChildrenBase() {
+ return Collections.emptyList();
+ }
- @Override
- public int getAccessLevel() {
- return PsiUtil.ACCESS_LEVEL_PRIVATE;
- }
+ @Override
+ public int getAccessLevel() {
+ return PsiUtil.ACCESS_LEVEL_PRIVATE;
+ }
- @Override
- public int getSubLevel() {
- return 0;
- }
+ @Override
+ public int getSubLevel() {
+ return 0;
+ }
}
diff --git a/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/JavaAnonymousClassTreeElement.java b/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/JavaAnonymousClassTreeElement.java
index 885e3556c6..b0220051ea 100644
--- a/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/JavaAnonymousClassTreeElement.java
+++ b/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/JavaAnonymousClassTreeElement.java
@@ -15,82 +15,76 @@
*/
package com.intellij.java.impl.ide.structureView.impl.java;
-import consulo.application.AllIcons;
+import consulo.annotation.access.RequiredReadAction;
import com.intellij.java.language.util.JavaAnonymousClassesHelper;
import com.intellij.java.language.psi.PsiAnonymousClass;
import com.intellij.java.language.psi.PsiClass;
+import consulo.localize.LocalizeValue;
+import consulo.platform.base.icon.PlatformIconGroup;
import consulo.ui.image.Image;
/**
* @author Konstantin Bulenkov
*/
-public class JavaAnonymousClassTreeElement extends JavaClassTreeElement
-{
- public static final JavaAnonymousClassTreeElement[] EMPTY_ARRAY = {};
+public class JavaAnonymousClassTreeElement extends JavaClassTreeElement {
+ public static final JavaAnonymousClassTreeElement[] EMPTY_ARRAY = {};
- private String myName;
- private String myBaseName;
+ private String myName;
+ private String myBaseName;
- public JavaAnonymousClassTreeElement(PsiAnonymousClass aClass)
- {
- super(aClass, false);
- }
+ public JavaAnonymousClassTreeElement(PsiAnonymousClass aClass) {
+ super(aClass, false);
+ }
- @Override
- public boolean isPublic()
- {
- return false;
- }
+ @Override
+ @RequiredReadAction
+ public boolean isPublic() {
+ return false;
+ }
- @Override
- public String getPresentableText()
- {
- if(myName != null)
- {
- return myName;
- }
- PsiClass element = getElement();
+ @Override
+ @RequiredReadAction
+ public LocalizeValue getPresentableText() {
+ if (myName != null) {
+ return LocalizeValue.of(myName);
+ }
+ PsiClass element = getElement();
- if(element != null)
- {
- myName = JavaAnonymousClassesHelper.getName((PsiAnonymousClass) element);
- if(myName != null)
- {
- return myName;
- }
- }
- return "Anonymous";
- }
+ if (element != null) {
+ myName = JavaAnonymousClassesHelper.getName((PsiAnonymousClass) element);
+ if (myName != null) {
+ return LocalizeValue.of(myName);
+ }
+ }
+ return LocalizeValue.localizeTODO("Anonymous");
+ }
- @Override
- public boolean isSearchInLocationString()
- {
- return true;
- }
+ @Override
+ public boolean isSearchInLocationString() {
+ return true;
+ }
- @Override
- public String getLocationString()
- {
- if(myBaseName == null)
- {
- PsiAnonymousClass anonymousClass = (PsiAnonymousClass) getElement();
- if(anonymousClass != null)
- {
- myBaseName = anonymousClass.getBaseClassType().getClassName();
- }
- }
- return myBaseName;
- }
+ @Override
+ @RequiredReadAction
+ public String getLocationString() {
+ if (myBaseName == null) {
+ PsiAnonymousClass anonymousClass = (PsiAnonymousClass) getElement();
+ if (anonymousClass != null) {
+ myBaseName = anonymousClass.getBaseClassType().getClassName();
+ }
+ }
+ return myBaseName;
+ }
- @Override
- public String toString()
- {
- return super.toString() + (myBaseName == null ? "" : " (" + getLocationString() + ")");
- }
+ @Override
+ @RequiredReadAction
+ public String toString() {
+ return super.toString() + (myBaseName == null ? "" : " (" + getLocationString() + ")");
+ }
- @Override
- public Image getIcon()
- {
- return AllIcons.Nodes.AnonymousClass;
- }
+ @Override
+ @RequiredReadAction
+ public Image getIcon() {
+ return PlatformIconGroup.nodesAnonymousclass();
+ }
}
diff --git a/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/JavaClassTreeElement.java b/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/JavaClassTreeElement.java
index a9ffad70a9..ff35213d32 100644
--- a/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/JavaClassTreeElement.java
+++ b/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/JavaClassTreeElement.java
@@ -3,10 +3,12 @@
import com.intellij.java.language.impl.psi.impl.PsiImplUtil;
import com.intellij.java.language.psi.*;
+import consulo.annotation.access.RequiredReadAction;
import consulo.fileEditor.structureView.StructureViewTreeElement;
import consulo.language.impl.psi.LightElement;
import consulo.language.psi.PsiElement;
import consulo.language.psi.PsiFile;
+import consulo.localize.LocalizeValue;
import java.util.*;
@@ -14,90 +16,92 @@
* @author Konstantin Bulenkov
*/
public class JavaClassTreeElement extends JavaClassTreeElementBase {
- public JavaClassTreeElement(PsiClass cls, boolean inherited) {
- super(inherited, cls);
- }
-
- /**
- * @noinspection unused
- * @deprecated use {@link #JavaClassTreeElement(PsiClass, boolean)}
- */
- @Deprecated
- public JavaClassTreeElement(PsiClass cls, boolean inherited, Set parents) {
- this(cls, inherited);
- }
+ public JavaClassTreeElement(PsiClass cls, boolean inherited) {
+ super(inherited, cls);
+ }
- @Override
- public Collection getChildrenBase() {
- return getClassChildren(getElement());
- }
+ /**
+ * @noinspection unused
+ * @deprecated use {@link #JavaClassTreeElement(PsiClass, boolean)}
+ */
+ @Deprecated
+ public JavaClassTreeElement(PsiClass cls, boolean inherited, Set parents) {
+ this(cls, inherited);
+ }
- static Collection getClassChildren(PsiClass aClass) {
- if (aClass == null) {
- return Collections.emptyList();
+ @Override
+ @RequiredReadAction
+ public Collection getChildrenBase() {
+ return getClassChildren(getElement());
}
- LinkedHashSet members = getOwnChildren(aClass);
- List children = new ArrayList<>(members.size());
+ @RequiredReadAction
+ static Collection getClassChildren(PsiClass aClass) {
+ if (aClass == null) {
+ return Collections.emptyList();
+ }
- for (PsiElement child : members) {
- if (!child.isValid()) {
- continue;
- }
- if (child instanceof PsiClass) {
- children.add(new JavaClassTreeElement((PsiClass)child, false));
- }
- else if (child instanceof PsiField) {
- children.add(new PsiFieldTreeElement((PsiField)child, false));
- }
- else if (child instanceof PsiMethod) {
- children.add(new PsiMethodTreeElement((PsiMethod)child, false));
- }
- else if (child instanceof PsiClassInitializer) {
- children.add(new ClassInitializerTreeElement((PsiClassInitializer)child));
- }
- }
- PsiRecordHeader header = aClass.getRecordHeader();
- if (header != null) {
- for (PsiRecordComponent recordComponent : header.getRecordComponents()) {
- children.add(new JavaRecordComponentTreeElement(recordComponent, false));
- }
+ Set members = getOwnChildren(aClass);
+ List children = new ArrayList<>(members.size());
+
+ for (PsiElement child : members) {
+ if (!child.isValid()) {
+ continue;
+ }
+ if (child instanceof PsiClass psiClass) {
+ children.add(new JavaClassTreeElement(psiClass, false));
+ }
+ else if (child instanceof PsiField field) {
+ children.add(new PsiFieldTreeElement(field, false));
+ }
+ else if (child instanceof PsiMethod method) {
+ children.add(new PsiMethodTreeElement(method, false));
+ }
+ else if (child instanceof PsiClassInitializer classInitializer) {
+ children.add(new ClassInitializerTreeElement(classInitializer));
+ }
+ }
+ PsiRecordHeader header = aClass.getRecordHeader();
+ if (header != null) {
+ for (PsiRecordComponent recordComponent : header.getRecordComponents()) {
+ children.add(new JavaRecordComponentTreeElement(recordComponent, false));
+ }
+ }
+ return children;
}
- return children;
- }
- static LinkedHashSet getOwnChildren(PsiClass aClass) {
- LinkedHashSet members = new LinkedHashSet<>();
- addPhysicalElements(aClass.getFields(), members, aClass);
- addPhysicalElements(aClass.getMethods(), members, aClass);
- addPhysicalElements(aClass.getInnerClasses(), members, aClass);
- addPhysicalElements(aClass.getInitializers(), members, aClass);
- return members;
- }
+ static LinkedHashSet getOwnChildren(PsiClass aClass) {
+ LinkedHashSet members = new LinkedHashSet<>();
+ addPhysicalElements(aClass.getFields(), members, aClass);
+ addPhysicalElements(aClass.getMethods(), members, aClass);
+ addPhysicalElements(aClass.getInnerClasses(), members, aClass);
+ addPhysicalElements(aClass.getInitializers(), members, aClass);
+ return members;
+ }
- private static void addPhysicalElements(PsiMember[] elements,
- Collection super PsiElement> to,
- PsiClass aClass) {
- for (PsiMember element : elements) {
- PsiElement mirror = PsiImplUtil.handleMirror(element);
- if (mirror instanceof LightElement) {
- continue;
- }
- if (mirror instanceof PsiMember && aClass.equals(((PsiMember)mirror).getContainingClass())) {
- to.add(mirror);
- }
+ private static void addPhysicalElements(PsiMember[] elements, Collection super PsiElement> to, PsiClass aClass) {
+ for (PsiMember element : elements) {
+ PsiElement mirror = PsiImplUtil.handleMirror(element);
+ if (mirror instanceof LightElement) {
+ continue;
+ }
+ if (mirror instanceof PsiMember && aClass.equals(((PsiMember) mirror).getContainingClass())) {
+ to.add(mirror);
+ }
+ }
}
- }
- @Override
- public String getPresentableText() {
- PsiClass o = getElement();
- return o == null ? "" : o.getName();
- }
+ @Override
+ @RequiredReadAction
+ public LocalizeValue getPresentableText() {
+ PsiClass o = getElement();
+ return o == null ? LocalizeValue.empty() : LocalizeValue.ofNullable(o.getName());
+ }
- @Override
- public boolean isPublic() {
- PsiClass o = getElement();
- return o != null && o.getParent() instanceof PsiFile || super.isPublic();
- }
+ @Override
+ @RequiredReadAction
+ public boolean isPublic() {
+ PsiClass o = getElement();
+ return o != null && o.getParent() instanceof PsiFile || super.isPublic();
+ }
}
diff --git a/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/JavaFileTreeElement.java b/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/JavaFileTreeElement.java
index 1d85fd16f7..bf5cc84251 100644
--- a/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/JavaFileTreeElement.java
+++ b/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/JavaFileTreeElement.java
@@ -15,8 +15,10 @@
*/
package com.intellij.java.impl.ide.structureView.impl.java;
+import consulo.annotation.access.RequiredReadAction;
import consulo.fileEditor.structureView.StructureViewTreeElement;
import consulo.language.editor.structureView.PsiTreeElementBase;
+import consulo.localize.LocalizeValue;
import consulo.navigation.ItemPresentation;
import com.intellij.java.language.psi.PsiClass;
import com.intellij.java.language.psi.PsiClassOwner;
@@ -25,34 +27,30 @@
import java.util.Collection;
import java.util.Collections;
-public class JavaFileTreeElement extends PsiTreeElementBase implements ItemPresentation
-{
- public JavaFileTreeElement(PsiClassOwner file)
- {
- super(file);
- }
+public class JavaFileTreeElement extends PsiTreeElementBase implements ItemPresentation {
+ public JavaFileTreeElement(PsiClassOwner file) {
+ super(file);
+ }
- @Override
- public String getPresentableText()
- {
- PsiClassOwner element = getElement();
- return element == null ? "" : element.getName();
- }
+ @Override
+ @RequiredReadAction
+ public LocalizeValue getPresentableText() {
+ PsiClassOwner element = getElement();
+ return element == null ? LocalizeValue.empty() : LocalizeValue.ofNullable(element.getName());
+ }
- @Override
- public Collection getChildrenBase()
- {
- PsiClassOwner element = getElement();
- if(element == null)
- {
- return Collections.emptyList();
- }
- PsiClass[] classes = element.getClasses();
- ArrayList result = new ArrayList<>();
- for(PsiClass aClass : classes)
- {
- result.add(new JavaClassTreeElement(aClass, false));
- }
- return result;
- }
+ @Override
+ @RequiredReadAction
+ public Collection getChildrenBase() {
+ PsiClassOwner element = getElement();
+ if (element == null) {
+ return Collections.emptyList();
+ }
+ PsiClass[] classes = element.getClasses();
+ ArrayList result = new ArrayList<>();
+ for (PsiClass aClass : classes) {
+ result.add(new JavaClassTreeElement(aClass, false));
+ }
+ return result;
+ }
}
diff --git a/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/JavaLambdaTreeElement.java b/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/JavaLambdaTreeElement.java
index a00467bc2e..1eb5d31248 100644
--- a/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/JavaLambdaTreeElement.java
+++ b/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/JavaLambdaTreeElement.java
@@ -15,9 +15,11 @@
*/
package com.intellij.java.impl.ide.structureView.impl.java;
-import consulo.application.AllIcons;
+import consulo.annotation.access.RequiredReadAction;
import consulo.fileEditor.structureView.StructureViewTreeElement;
import com.intellij.java.language.util.PsiLambdaNameHelper;
+import consulo.localize.LocalizeValue;
+import consulo.platform.base.icon.PlatformIconGroup;
import consulo.project.DumbService;
import com.intellij.java.language.psi.PsiLambdaExpression;
import com.intellij.java.language.psi.PsiType;
@@ -26,81 +28,69 @@
import java.util.Collection;
import java.util.Collections;
-public class JavaLambdaTreeElement extends JavaClassTreeElementBase
-{
- public static final JavaLambdaTreeElement[] EMPTY_ARRAY = {};
+public class JavaLambdaTreeElement extends JavaClassTreeElementBase {
+ public static final JavaLambdaTreeElement[] EMPTY_ARRAY = {};
- private String myName;
- private String myFunctionalName;
+ private String myName;
+ private String myFunctionalName;
- public JavaLambdaTreeElement(PsiLambdaExpression lambdaExpression)
- {
- super(false, lambdaExpression);
- }
+ public JavaLambdaTreeElement(PsiLambdaExpression lambdaExpression) {
+ super(false, lambdaExpression);
+ }
- @Override
- public boolean isPublic()
- {
- return false;
- }
+ @Override
+ public boolean isPublic() {
+ return false;
+ }
- @Override
- public String getPresentableText()
- {
- if(myName != null)
- {
- return myName;
- }
- PsiLambdaExpression element = getElement();
+ @Override
+ @RequiredReadAction
+ public LocalizeValue getPresentableText() {
+ if (myName != null) {
+ return LocalizeValue.of(myName);
+ }
+ PsiLambdaExpression element = getElement();
- if(element != null)
- {
- myName = PsiLambdaNameHelper.getVMName(element);
- return myName;
- }
- return "Lambda";
- }
+ if (element != null) {
+ myName = PsiLambdaNameHelper.getVMName(element);
+ return LocalizeValue.of(myName);
+ }
+ return LocalizeValue.localizeTODO("Lambda");
+ }
+ @Override
+ public boolean isSearchInLocationString() {
+ return true;
+ }
- @Override
- public boolean isSearchInLocationString()
- {
- return true;
- }
+ @Override
+ public String getLocationString() {
+ if (myFunctionalName == null) {
+ PsiLambdaExpression lambdaExpression = getElement();
+ if (lambdaExpression != null && !DumbService.isDumb(lambdaExpression.getProject())) {
+ PsiType interfaceType = lambdaExpression.getFunctionalInterfaceType();
+ if (interfaceType != null) {
+ myFunctionalName = interfaceType.getPresentableText();
+ }
+ }
+ }
+ return myFunctionalName;
+ }
- @Override
- public String getLocationString()
- {
- if(myFunctionalName == null)
- {
- PsiLambdaExpression lambdaExpression = getElement();
- if(lambdaExpression != null && !DumbService.isDumb(lambdaExpression.getProject()))
- {
- PsiType interfaceType = lambdaExpression.getFunctionalInterfaceType();
- if(interfaceType != null)
- {
- myFunctionalName = interfaceType.getPresentableText();
- }
- }
- }
- return myFunctionalName;
- }
+ @Override
+ @RequiredReadAction
+ public String toString() {
+ return super.toString() + (myFunctionalName == null ? "" : " (" + getLocationString() + ")");
+ }
- @Override
- public String toString()
- {
- return super.toString() + (myFunctionalName == null ? "" : " (" + getLocationString() + ")");
- }
+ @Override
+ public Collection getChildrenBase() {
+ return Collections.emptyList();
+ }
- @Override
- public Collection getChildrenBase()
- {
- return Collections.emptyList();
- }
-
- @Override
- public Image getIcon()
- {
- return AllIcons.Nodes.Lambda;
- }
+ @Override
+ @RequiredReadAction
+ public Image getIcon() {
+ return PlatformIconGroup.nodesLambda();
+ }
}
diff --git a/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/JavaVariableBaseTreeElement.java b/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/JavaVariableBaseTreeElement.java
index 34a57eb770..b3834f9106 100644
--- a/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/JavaVariableBaseTreeElement.java
+++ b/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/JavaVariableBaseTreeElement.java
@@ -3,39 +3,50 @@
import com.intellij.java.language.psi.PsiSubstitutor;
import com.intellij.java.language.psi.PsiVariable;
+import consulo.annotation.access.RequiredReadAction;
import consulo.fileEditor.structureView.tree.SortableTreeElement;
+import consulo.localize.LocalizeValue;
import consulo.project.DumbService;
import consulo.util.lang.StringUtil;
-import org.jspecify.annotations.Nullable;
import static com.intellij.java.language.psi.util.PsiFormatUtil.formatVariable;
import static com.intellij.java.language.psi.util.PsiFormatUtilBase.*;
abstract class JavaVariableBaseTreeElement extends JavaClassTreeElementBase implements SortableTreeElement {
- protected JavaVariableBaseTreeElement(boolean isInherited, T element) {
- super(isInherited, element);
- }
+ protected JavaVariableBaseTreeElement(boolean isInherited, T element) {
+ super(isInherited, element);
+ }
- @Override
- public @Nullable String getPresentableText() {
- T field = getElement();
- if (field == null) return "";
+ @Override
+ @RequiredReadAction
+ public LocalizeValue getPresentableText() {
+ T field = getElement();
+ if (field == null) {
+ return LocalizeValue.empty();
+ }
- boolean dumb = DumbService.isDumb(field.getProject());
- return StringUtil.replace(formatVariable(
- field,
- SHOW_NAME | (dumb ? 0 : SHOW_TYPE) | TYPE_AFTER | (dumb ? 0 : SHOW_INITIALIZER),
- PsiSubstitutor.EMPTY
- ), ":", ": ");
- }
+ boolean dumb = DumbService.isDumb(field.getProject());
+ return LocalizeValue.of(StringUtil.replace(
+ formatVariable(
+ field,
+ SHOW_NAME | (dumb ? 0 : SHOW_TYPE) | TYPE_AFTER | (dumb ? 0 : SHOW_INITIALIZER),
+ PsiSubstitutor.EMPTY
+ ),
+ ":",
+ ": "
+ ));
+ }
- @Override
- public String getAlphaSortKey() {
- T element = getElement();
- if (element != null) {
- String name = element.getName();
- if (name != null) return name;
+ @Override
+ @RequiredReadAction
+ public String getAlphaSortKey() {
+ T element = getElement();
+ if (element != null) {
+ String name = element.getName();
+ if (name != null) {
+ return name;
+ }
+ }
+ return "";
}
- return "";
- }
}
diff --git a/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/PropertyGroup.java b/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/PropertyGroup.java
index bc6358ad0d..622c8139b6 100644
--- a/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/PropertyGroup.java
+++ b/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/PropertyGroup.java
@@ -15,11 +15,13 @@
*/
package com.intellij.java.impl.ide.structureView.impl.java;
-import consulo.application.AllIcons;
+import consulo.annotation.access.RequiredReadAction;
import consulo.component.util.WeighedItem;
import consulo.fileEditor.structureView.tree.Group;
import consulo.fileEditor.structureView.tree.TreeElement;
import com.intellij.java.language.psi.*;
+import consulo.localize.LocalizeValue;
+import consulo.platform.base.icon.PlatformIconGroup;
import consulo.ui.ex.ColoredItemPresentation;
import consulo.navigation.ItemPresentation;
import consulo.codeEditor.CodeInsightColors;
@@ -29,224 +31,261 @@
import com.intellij.java.language.psi.util.PropertyUtil;
import com.intellij.java.language.psi.util.PsiUtil;
import consulo.ui.image.Image;
+import org.jspecify.annotations.Nullable;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Objects;
public class PropertyGroup implements Group, ColoredItemPresentation, AccessLevelProvider, WeighedItem {
- private final String myPropertyName;
- private final PsiType myPropertyType;
-
- private SmartPsiElementPointer myFieldPointer;
- private SmartPsiElementPointer myGetterPointer;
- private SmartPsiElementPointer mySetterPointer;
- private boolean myIsStatic;
- public static final Image PROPERTY_READ_ICON = AllIcons.Nodes.PropertyRead;
- public static final Image PROPERTY_READ_STATIC_ICON = AllIcons.Nodes.PropertyReadStatic;
- public static final Image PROPERTY_WRITE_ICON = AllIcons.Nodes.PropertyWrite;
- public static final Image PROPERTY_WRITE_STATIC_ICON = AllIcons.Nodes.PropertyWriteStatic;
- public static final Image PROPERTY_READ_WRITE_ICON = AllIcons.Nodes.PropertyReadWrite;
- public static final Image PROPERTY_READ_WRITE_STATIC_ICON = AllIcons.Nodes.PropertyReadWriteStatic;
- private final Project myProject;
- private final Collection myChildren = new ArrayList();
-
- private PropertyGroup(String propertyName, PsiType propertyType, boolean isStatic, Project project) {
- myPropertyName = propertyName;
- myPropertyType = propertyType;
- myIsStatic = isStatic;
- myProject = project;
- }
-
- public static PropertyGroup createOn(PsiElement object, TreeElement treeElement) {
- if (object instanceof PsiField) {
- PsiField field = (PsiField)object;
- PropertyGroup group = new PropertyGroup(PropertyUtil.suggestPropertyName(field), field.getType(),
- field.hasModifierProperty(PsiModifier.STATIC), object.getProject());
- group.setField(field);
- group.myChildren.add(treeElement);
- return group;
- }
- else if (object instanceof PsiMethod) {
- PsiMethod method = (PsiMethod)object;
- if (PropertyUtil.isSimplePropertyGetter(method)) {
- PropertyGroup group = new PropertyGroup(PropertyUtil.getPropertyNameByGetter(method), method.getReturnType(),
- method.hasModifierProperty(PsiModifier.STATIC), object.getProject());
- group.setGetter(method);
- group.myChildren.add(treeElement);
- return group;
- }
- else if (PropertyUtil.isSimplePropertySetter(method)) {
- PropertyGroup group =
- new PropertyGroup(PropertyUtil.getPropertyNameBySetter(method), method.getParameterList().getParameters()[0].getType(),
- method.hasModifierProperty(PsiModifier.STATIC), object.getProject());
- group.setSetter(method);
- group.myChildren.add(treeElement);
- return group;
- }
- }
- return null;
- }
-
- public Collection getChildren() {
- return myChildren;
- }
-
- public ItemPresentation getPresentation() {
- return this;
- }
-
- public Image getIcon() {
- if (isStatic()) {
- if (getGetter() != null && getSetter() != null) {
- return PROPERTY_READ_WRITE_STATIC_ICON;
- }
- else if (getGetter() != null) {
- return PROPERTY_READ_STATIC_ICON;
- }
- else {
- return PROPERTY_WRITE_STATIC_ICON;
- }
- }
- else {
- if (getGetter() != null && getSetter() != null) {
- return PROPERTY_READ_WRITE_ICON;
- }
- else if (getGetter() != null) {
- return PROPERTY_READ_ICON;
- }
- else {
- return PROPERTY_WRITE_ICON;
- }
- }
-
- }
-
- private boolean isStatic() {
- return myIsStatic;
- }
-
- public String getLocationString() {
- return null;
- }
-
- public String getPresentableText() {
- return myPropertyName + ": " + myPropertyType.getPresentableText();
- }
-
- public String toString() {
- return myPropertyName;
- }
-
-
- public boolean equals(Object o) {
- if (this == o) return true;
- if (!(o instanceof PropertyGroup)) return false;
-
- PropertyGroup propertyGroup = (PropertyGroup)o;
-
- if (myPropertyName != null ? !myPropertyName.equals(propertyGroup.myPropertyName) : propertyGroup.myPropertyName != null) return false;
-
- if (myPropertyType != null && !myPropertyType.isValid()) return false;
- if (propertyGroup.myPropertyType != null && !propertyGroup.myPropertyType.isValid()) return false;
-
- if (myPropertyType != null && myPropertyType.isValid()
- ? !myPropertyType.equals(propertyGroup.myPropertyType)
- : propertyGroup.myPropertyType != null) {
- return false;
- }
- return true;
- }
-
-
-
- public int hashCode() {
- int result;
- result = myPropertyName != null?myPropertyName.hashCode():0;
- result = 29 * result + (myPropertyType != null ? myPropertyType.hashCode() : 0);
- return result;
- }
-
-
- public String getGetterName() {
- return PropertyUtil.suggestGetterName(myPropertyName, myPropertyType);
- }
-
- public int getAccessLevel() {
- int result = PsiUtil.ACCESS_LEVEL_PRIVATE;
- if (getGetter() != null) {
- result = Math.max(result, PsiUtil.getAccessLevel(getGetter().getModifierList()));
- }
- if (getSetter() != null) {
- result = Math.max(result, PsiUtil.getAccessLevel(getSetter().getModifierList()));
- }
- if (getField() != null) {
- result = Math.max(result, PsiUtil.getAccessLevel(getField().getModifierList()));
- }
- return result;
- }
-
- public int getSubLevel() {
- return 0;
- }
-
- public void setField(PsiField field) {
- myFieldPointer = SmartPointerManager.getInstance(myProject).createSmartPsiElementPointer(field);
- myIsStatic &= field.hasModifierProperty(PsiModifier.STATIC);
- }
-
- public void setGetter(PsiMethod getter) {
- myGetterPointer = SmartPointerManager.getInstance(myProject).createSmartPsiElementPointer(getter);
- myIsStatic &= getter.hasModifierProperty(PsiModifier.STATIC);
- }
+ private final String myPropertyName;
+ private final PsiType myPropertyType;
+
+ private SmartPsiElementPointer myFieldPointer;
+ private SmartPsiElementPointer myGetterPointer;
+ private SmartPsiElementPointer mySetterPointer;
+ private boolean myIsStatic;
+ public static final Image PROPERTY_READ_ICON = PlatformIconGroup.nodesPropertyread();
+ public static final Image PROPERTY_READ_STATIC_ICON = PlatformIconGroup.nodesPropertyreadstatic();
+ public static final Image PROPERTY_WRITE_ICON = PlatformIconGroup.nodesPropertywrite();
+ public static final Image PROPERTY_WRITE_STATIC_ICON = PlatformIconGroup.nodesPropertywritestatic();
+ public static final Image PROPERTY_READ_WRITE_ICON = PlatformIconGroup.nodesPropertyreadwrite();
+ public static final Image PROPERTY_READ_WRITE_STATIC_ICON = PlatformIconGroup.nodesPropertyreadwritestatic();
+ private final Project myProject;
+ private final Collection myChildren = new ArrayList<>();
+
+ private PropertyGroup(String propertyName, PsiType propertyType, boolean isStatic, Project project) {
+ myPropertyName = propertyName;
+ myPropertyType = propertyType;
+ myIsStatic = isStatic;
+ myProject = project;
+ }
+
+ public static PropertyGroup createOn(PsiElement object, TreeElement treeElement) {
+ if (object instanceof PsiField field) {
+ PropertyGroup group = new PropertyGroup(
+ PropertyUtil.suggestPropertyName(field),
+ field.getType(),
+ field.isStatic(),
+ object.getProject()
+ );
+ group.setField(field);
+ group.myChildren.add(treeElement);
+ return group;
+ }
+ else if (object instanceof PsiMethod method) {
+ if (PropertyUtil.isSimplePropertyGetter(method)) {
+ PropertyGroup group = new PropertyGroup(
+ PropertyUtil.getPropertyNameByGetter(method),
+ method.getReturnType(),
+ method.isStatic(),
+ object.getProject()
+ );
+ group.setGetter(method);
+ group.myChildren.add(treeElement);
+ return group;
+ }
+ else if (PropertyUtil.isSimplePropertySetter(method)) {
+ PropertyGroup group =
+ new PropertyGroup(
+ PropertyUtil.getPropertyNameBySetter(method),
+ method.getParameterList().getParameters()[0].getType(),
+ method.isStatic(),
+ object.getProject()
+ );
+ group.setSetter(method);
+ group.myChildren.add(treeElement);
+ return group;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public Collection getChildren() {
+ return myChildren;
+ }
+
+ @Override
+ public ItemPresentation getPresentation() {
+ return this;
+ }
+
+ @Override
+ @RequiredReadAction
+ public Image getIcon() {
+ if (isStatic()) {
+ if (getGetter() != null && getSetter() != null) {
+ return PROPERTY_READ_WRITE_STATIC_ICON;
+ }
+ else if (getGetter() != null) {
+ return PROPERTY_READ_STATIC_ICON;
+ }
+ else {
+ return PROPERTY_WRITE_STATIC_ICON;
+ }
+ }
+ else {
+ if (getGetter() != null && getSetter() != null) {
+ return PROPERTY_READ_WRITE_ICON;
+ }
+ else if (getGetter() != null) {
+ return PROPERTY_READ_ICON;
+ }
+ else {
+ return PROPERTY_WRITE_ICON;
+ }
+ }
+ }
+
+ private boolean isStatic() {
+ return myIsStatic;
+ }
- public void setSetter(PsiMethod setter) {
- mySetterPointer = SmartPointerManager.getInstance(myProject).createSmartPsiElementPointer(setter);
- myIsStatic &= setter.hasModifierProperty(PsiModifier.STATIC);
- }
+ @Override
+ public String getLocationString() {
+ return null;
+ }
- public PsiField getField() {
- return (PsiField)(myFieldPointer == null ? null : myFieldPointer.getElement());
- }
+ @Override
+ public LocalizeValue getPresentableText() {
+ return LocalizeValue.of(myPropertyName + ": " + myPropertyType.getPresentableText());
+ }
- public PsiMethod getGetter() {
- return (PsiMethod)(myGetterPointer == null ? null : myGetterPointer.getElement());
- }
+ @Override
+ public String toString() {
+ return myPropertyName;
+ }
- public PsiMethod getSetter() {
- return (PsiMethod)(mySetterPointer == null ? null : mySetterPointer.getElement());
- }
+ @Override
+ public boolean equals(@Nullable Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof PropertyGroup that)) {
+ return false;
+ }
+
+ if (!Objects.equals(myPropertyName, that.myPropertyName)) {
+ return false;
+ }
+
+ if (myPropertyType != null && !myPropertyType.isValid()) {
+ return false;
+ }
+ if (that.myPropertyType != null && !that.myPropertyType.isValid()) {
+ return false;
+ }
+
+ return myPropertyType != null && myPropertyType.isValid()
+ ? myPropertyType.equals(that.myPropertyType)
+ : that.myPropertyType == null;
+ }
- void copyAccessorsFrom(PropertyGroup group) {
- if (group.getGetter() != null) setGetter(group.getGetter());
- if (group.getSetter() != null) setSetter(group.getSetter());
- if (group.getField() != null) setField(group.getField());
- myChildren.addAll(group.myChildren);
- }
- public TextAttributesKey getTextAttributesKey() {
- return isDeprecated() ? CodeInsightColors.DEPRECATED_ATTRIBUTES : null;
- }
+ @Override
+ public int hashCode() {
+ return 29 * Objects.hashCode(myPropertyName) + Objects.hashCode(myPropertyType);
+ }
- private boolean isDeprecated() {
- return isDeprecated(getField()) && isDeprecated(getGetter()) && isDeprecated(getSetter());
- }
+ public String getGetterName() {
+ return PropertyUtil.suggestGetterName(myPropertyName, myPropertyType);
+ }
- private static boolean isDeprecated(PsiElement element) {
- if (element == null) return false;
- if (!element.isValid()) return false;
- if (!(element instanceof PsiDocCommentOwner)) return false;
- return ((PsiDocCommentOwner)element).isDeprecated();
- }
+ @Override
+ public int getAccessLevel() {
+ int result = PsiUtil.ACCESS_LEVEL_PRIVATE;
+ if (getGetter() != null) {
+ result = Math.max(result, PsiUtil.getAccessLevel(getGetter().getModifierList()));
+ }
+ if (getSetter() != null) {
+ result = Math.max(result, PsiUtil.getAccessLevel(getSetter().getModifierList()));
+ }
+ if (getField() != null) {
+ result = Math.max(result, PsiUtil.getAccessLevel(getField().getModifierList()));
+ }
+ return result;
+ }
- public boolean isComplete() {
- return getGetter() != null || getSetter() != null;
- }
+ @Override
+ public int getSubLevel() {
+ return 0;
+ }
- public Object getValue() {
- return this;
- }
+ public void setField(PsiField field) {
+ myFieldPointer = SmartPointerManager.getInstance(myProject).createSmartPsiElementPointer(field);
+ myIsStatic &= field.isStatic();
+ }
+
+ public void setGetter(PsiMethod getter) {
+ myGetterPointer = SmartPointerManager.getInstance(myProject).createSmartPsiElementPointer(getter);
+ myIsStatic &= getter.isStatic();
+ }
- public int getWeight() {
- return 60;
- }
+ public void setSetter(PsiMethod setter) {
+ mySetterPointer = SmartPointerManager.getInstance(myProject).createSmartPsiElementPointer(setter);
+ myIsStatic &= setter.isStatic();
+ }
+
+ @RequiredReadAction
+ public PsiField getField() {
+ return (PsiField) (myFieldPointer == null ? null : myFieldPointer.getElement());
+ }
+
+ @RequiredReadAction
+ public PsiMethod getGetter() {
+ return (PsiMethod) (myGetterPointer == null ? null : myGetterPointer.getElement());
+ }
+
+ @RequiredReadAction
+ public PsiMethod getSetter() {
+ return (PsiMethod) (mySetterPointer == null ? null : mySetterPointer.getElement());
+ }
+
+ @RequiredReadAction
+ void copyAccessorsFrom(PropertyGroup group) {
+ if (group.getGetter() != null) {
+ setGetter(group.getGetter());
+ }
+ if (group.getSetter() != null) {
+ setSetter(group.getSetter());
+ }
+ if (group.getField() != null) {
+ setField(group.getField());
+ }
+ myChildren.addAll(group.myChildren);
+ }
+
+ @Override
+ @RequiredReadAction
+ public TextAttributesKey getTextAttributesKey() {
+ return isDeprecated() ? CodeInsightColors.DEPRECATED_ATTRIBUTES : null;
+ }
+
+ @RequiredReadAction
+ private boolean isDeprecated() {
+ return isDeprecated(getField()) && isDeprecated(getGetter()) && isDeprecated(getSetter());
+ }
+
+ @RequiredReadAction
+ private static boolean isDeprecated(PsiElement element) {
+ return element != null
+ && element.isValid()
+ && element instanceof PsiDocCommentOwner docCommentOwner
+ && docCommentOwner.isDeprecated();
+ }
+
+ @RequiredReadAction
+ public boolean isComplete() {
+ return getGetter() != null || getSetter() != null;
+ }
+
+ public Object getValue() {
+ return this;
+ }
+
+ @Override
+ public int getWeight() {
+ return 60;
+ }
}
diff --git a/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/PsiFieldTreeElement.java b/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/PsiFieldTreeElement.java
index 4d907528e7..a3a020bef8 100644
--- a/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/PsiFieldTreeElement.java
+++ b/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/PsiFieldTreeElement.java
@@ -5,6 +5,7 @@
import com.intellij.java.language.psi.PsiEnumConstantInitializer;
import com.intellij.java.language.psi.PsiField;
import com.intellij.java.language.psi.PsiSubstitutor;
+import consulo.annotation.access.RequiredReadAction;
import consulo.fileEditor.structureView.StructureViewTreeElement;
import consulo.fileEditor.structureView.tree.SortableTreeElement;
import consulo.project.DumbService;
@@ -16,23 +17,24 @@
import static com.intellij.java.language.psi.util.PsiFormatUtil.*;
public class PsiFieldTreeElement extends JavaVariableBaseTreeElement implements SortableTreeElement {
- public PsiFieldTreeElement(PsiField field, boolean isInherited) {
- super(isInherited, field);
- }
+ public PsiFieldTreeElement(PsiField field, boolean isInherited) {
+ super(isInherited, field);
+ }
- @Override
- public Collection getChildrenBase() {
- PsiField field = getField();
- if (field instanceof PsiEnumConstant) {
- PsiEnumConstantInitializer initializingClass = ((PsiEnumConstant)field).getInitializingClass();
- if (initializingClass != null) {
- return JavaClassTreeElement.getClassChildren(initializingClass);
- }
+ @Override
+ @RequiredReadAction
+ public Collection getChildrenBase() {
+ if (getField() instanceof PsiEnumConstant enumConstant) {
+ PsiEnumConstantInitializer initializingClass = enumConstant.getInitializingClass();
+ if (initializingClass != null) {
+ return JavaClassTreeElement.getClassChildren(initializingClass);
+ }
+ }
+ return Collections.emptyList();
}
- return Collections.emptyList();
- }
- public PsiField getField() {
- return getElement();
- }
+ @RequiredReadAction
+ public PsiField getField() {
+ return getElement();
+ }
}
diff --git a/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/PsiMethodTreeElement.java b/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/PsiMethodTreeElement.java
index f70ebeaba8..e8d9d61949 100644
--- a/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/PsiMethodTreeElement.java
+++ b/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/PsiMethodTreeElement.java
@@ -5,6 +5,7 @@
import com.intellij.java.language.psi.search.searches.SuperMethodsSearch;
import com.intellij.java.language.psi.util.MethodSignatureBackedByPsiMethod;
import com.intellij.java.language.psi.util.PsiFormatUtil;
+import consulo.annotation.access.RequiredReadAction;
import consulo.application.dumb.IndexNotReadyException;
import consulo.application.util.registry.Registry;
import consulo.codeEditor.CodeInsightColors;
@@ -15,6 +16,7 @@
import consulo.language.psi.PsiCompiledElement;
import consulo.language.psi.PsiFile;
import consulo.language.psi.SyntheticElement;
+import consulo.localize.LocalizeValue;
import consulo.project.DumbService;
import consulo.ui.ex.awt.UIUtil;
import consulo.util.lang.StringUtil;
@@ -27,118 +29,127 @@
import static com.intellij.java.language.psi.util.PsiFormatUtilBase.*;
public class PsiMethodTreeElement extends JavaClassTreeElementBase implements SortableTreeElement {
- public PsiMethodTreeElement(PsiMethod method, boolean isInherited) {
- super(isInherited, method);
- }
-
- @Override
- public Collection getChildrenBase() {
- List emptyResult = Collections.emptyList();
- PsiMethod element = getElement();
- if (element == null || element instanceof SyntheticElement || element instanceof LightElement) {
- return emptyResult;
+ public PsiMethodTreeElement(PsiMethod method, boolean isInherited) {
+ super(isInherited, method);
}
- PsiFile psiFile = element.getContainingFile();
- if (psiFile == null || psiFile instanceof PsiCompiledElement) {
- return emptyResult;
- }
-
- final ArrayList result = new ArrayList<>();
+ @Override
+ @RequiredReadAction
+ public Collection getChildrenBase() {
+ List emptyResult = Collections.emptyList();
+ PsiMethod element = getElement();
+ if (element == null || element instanceof SyntheticElement || element instanceof LightElement) {
+ return emptyResult;
+ }
- element.accept(new JavaRecursiveElementWalkingVisitor() {
- @Override
- public void visitClass(PsiClass aClass) {
- if (!(aClass instanceof PsiAnonymousClass) && !(aClass instanceof PsiTypeParameter)) {
- result.add(new JavaClassTreeElement(aClass, isInherited()));
+ PsiFile psiFile = element.getContainingFile();
+ if (psiFile == null || psiFile instanceof PsiCompiledElement) {
+ return emptyResult;
}
- }
- });
- return result;
- }
-
- @Override
- public String getPresentableText() {
- PsiMethod psiMethod = getElement();
- if (psiMethod == null) {
- return "";
+
+ final ArrayList result = new ArrayList<>();
+
+ element.accept(new JavaRecursiveElementWalkingVisitor() {
+ @Override
+ public void visitClass(PsiClass aClass) {
+ if (!(aClass instanceof PsiAnonymousClass) && !(aClass instanceof PsiTypeParameter)) {
+ result.add(new JavaClassTreeElement(aClass, isInherited()));
+ }
+ }
+ });
+ return result;
}
- boolean dumb = DumbService.isDumb(psiMethod.getProject());
- String method = PsiFormatUtil.formatMethod(psiMethod,
- PsiSubstitutor.EMPTY,
- SHOW_NAME | TYPE_AFTER | SHOW_PARAMETERS | (dumb ? 0 : SHOW_TYPE),
- dumb ? SHOW_NAME : SHOW_TYPE);
- return StringUtil.replace(method, ":", ": ");
- }
-
-
- @Override
- public String getLocationString() {
- if (!Registry.is("show.method.base.class.in.java.file.structure")) {
- return null;
+
+ @Override
+ @RequiredReadAction
+ public LocalizeValue getPresentableText() {
+ PsiMethod psiMethod = getElement();
+ if (psiMethod == null) {
+ return LocalizeValue.empty();
+ }
+ boolean dumb = DumbService.isDumb(psiMethod.getProject());
+ String method = PsiFormatUtil.formatMethod(
+ psiMethod,
+ PsiSubstitutor.EMPTY,
+ SHOW_NAME | TYPE_AFTER | SHOW_PARAMETERS | (dumb ? 0 : SHOW_TYPE),
+ dumb ? SHOW_NAME : SHOW_TYPE
+ );
+ return LocalizeValue.of(StringUtil.replace(method, ":", ": "));
}
- PsiMethod method = getElement();
- if (myLocation == null && method != null && !DumbService.isDumb(method.getProject())) {
- if (isInherited()) {
- return super.getLocationString();
- } else {
- try {
- MethodSignatureBackedByPsiMethod baseMethod = SuperMethodsSearch.search(method, null, true, false).findFirst();
- if (baseMethod != null && !method.isEquivalentTo(baseMethod.getMethod())) {
- PsiMethod base = baseMethod.getMethod();
- PsiClass baseClass = base.getContainingClass();
- if (baseClass != null /*&& !CommonClassNames.JAVA_LANG_OBJECT.equals(baseClass.getQualifiedName())*/) {
- if (baseClass.getMethods().length > 1) {
- myLocation = baseClass.getName();
- }
+
+ @Override
+ @RequiredReadAction
+ public String getLocationString() {
+ if (!Registry.is("show.method.base.class.in.java.file.structure")) {
+ return null;
+ }
+ PsiMethod method = getElement();
+ if (myLocation == null && method != null && !DumbService.isDumb(method.getProject())) {
+ if (isInherited()) {
+ return super.getLocationString();
+ }
+ else {
+ try {
+ MethodSignatureBackedByPsiMethod baseMethod = SuperMethodsSearch.search(method, null, true, false).findFirst();
+ if (baseMethod != null && !method.isEquivalentTo(baseMethod.getMethod())) {
+ PsiMethod base = baseMethod.getMethod();
+ PsiClass baseClass = base.getContainingClass();
+ if (baseClass != null /*&& !CommonClassNames.JAVA_LANG_OBJECT.equals(baseClass.getQualifiedName())*/) {
+ if (baseClass.getMethods().length > 1) {
+ myLocation = baseClass.getName();
+ }
+ }
+ }
+ }
+ catch (IndexNotReadyException e) {
+ //some searchers (EJB) require indices. What shall we do?
+ }
+
+ if (StringUtil.isEmpty(myLocation)) {
+ myLocation = "";
+ }
+ else {
+ char upArrow = '\u2191';
+ myLocation = UIUtil.getLabelFont().canDisplay(upArrow) ? upArrow + myLocation : myLocation;
+ }
}
- }
- } catch (IndexNotReadyException e) {
- //some searchers (EJB) require indices. What shall we do?
}
+ return StringUtil.isEmpty(myLocation) ? null : myLocation;
+ }
- if (StringUtil.isEmpty(myLocation)) {
- myLocation = "";
- } else {
- char upArrow = '\u2191';
- myLocation = UIUtil.getLabelFont().canDisplay(upArrow) ? upArrow + myLocation : myLocation;
+ @Override
+ public TextAttributesKey getTextAttributesKey() {
+ if (isInherited()) {
+ return CodeInsightColors.NOT_USED_ELEMENT_ATTRIBUTES;
}
- }
+ return super.getTextAttributesKey();
}
- return StringUtil.isEmpty(myLocation) ? null : myLocation;
- }
- @Override
- public TextAttributesKey getTextAttributesKey() {
- if (isInherited()) {
- return CodeInsightColors.NOT_USED_ELEMENT_ATTRIBUTES;
+ @RequiredReadAction
+ public PsiMethod getMethod() {
+ return getElement();
}
- return super.getTextAttributesKey();
- }
-
- public PsiMethod getMethod() {
- return getElement();
- }
-
- @Override
- public String getAlphaSortKey() {
- PsiMethod method = getElement();
- if (method != null) {
- return method.getName() + " " + StringUtil.join(method.getParameterList().getParameters(), psiParameter -> {
- PsiTypeElement typeElement = psiParameter.getTypeElement();
- return typeElement != null ? typeElement.getText() : "";
- }, " ");
+
+ @Override
+ @RequiredReadAction
+ public String getAlphaSortKey() {
+ PsiMethod method = getElement();
+ if (method != null) {
+ return method.getName() + " " + StringUtil.join(method.getParameterList().getParameters(), psiParameter -> {
+ PsiTypeElement typeElement = psiParameter.getTypeElement();
+ return typeElement != null ? typeElement.getText() : "";
+ }, " ");
+ }
+ return "";
+ }
+
+ @Override
+ public String getLocationPrefix() {
+ return " ";
+ }
+
+ @Override
+ public String getLocationSuffix() {
+ return "";
}
- return "";
- }
-
- @Override
- public String getLocationPrefix() {
- return " ";
- }
-
- @Override
- public String getLocationSuffix() {
- return "";
- }
}
diff --git a/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/SuperTypeGroup.java b/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/SuperTypeGroup.java
index 3ffd2d5686..f9c9b52c06 100644
--- a/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/SuperTypeGroup.java
+++ b/plugin/src/main/java/com/intellij/java/impl/ide/structureView/impl/java/SuperTypeGroup.java
@@ -19,111 +19,117 @@
import com.intellij.java.language.psi.PsiModifierList;
import com.intellij.java.language.psi.util.PsiUtil;
import consulo.annotation.access.RequiredReadAction;
-import consulo.application.AllIcons;
import consulo.fileEditor.structureView.tree.Group;
import consulo.fileEditor.structureView.tree.TreeElement;
import consulo.ide.localize.IdeLocalize;
import consulo.language.psi.SmartPointerManager;
import consulo.language.psi.SmartPsiElementPointer;
+import consulo.localize.LocalizeValue;
import consulo.navigation.ItemPresentation;
+import consulo.platform.base.icon.PlatformIconGroup;
import consulo.ui.image.Image;
import org.jspecify.annotations.Nullable;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Objects;
-public class SuperTypeGroup implements Group, ItemPresentation, AccessLevelProvider{
- private final SmartPsiElementPointer mySuperClassPointer;
- private final OwnershipType myOverrides;
- private final Collection myChildren = new ArrayList<>();
-
- public static enum OwnershipType {
- IMPLEMENTS,
- OVERRIDES,
- INHERITS
- }
-
- public SuperTypeGroup(PsiClass superClass, OwnershipType type) {
- myOverrides = type;
- mySuperClassPointer = SmartPointerManager.getInstance(superClass.getProject()).createSmartPsiElementPointer(superClass);
- }
-
- public Collection getChildren() {
- return myChildren;
- }
-
- @Nullable
- @RequiredReadAction
- private PsiClass getSuperClass() {
- return (PsiClass)mySuperClassPointer.getElement();
- }
-
- public ItemPresentation getPresentation() {
- return this;
- }
-
- public Image getIcon() {
- switch (myOverrides) {
- case IMPLEMENTS:
- return AllIcons.General.ImplementingMethod;
- case INHERITS:
- return AllIcons.General.InheritedMethod;
- case OVERRIDES:
- return AllIcons.General.OverridingMethod;
+public class SuperTypeGroup implements Group, ItemPresentation, AccessLevelProvider {
+ private final SmartPsiElementPointer mySuperClassPointer;
+ private final OwnershipType myOverrides;
+ private final Collection myChildren = new ArrayList<>();
+
+ public static enum OwnershipType {
+ IMPLEMENTS(PlatformIconGroup.gutterImplementingmethod()),
+ OVERRIDES(PlatformIconGroup.gutterOverridingmethod()),
+ INHERITS(PlatformIconGroup.hierarchySubtypes());
+
+ private final Image myIcon;
+
+ private OwnershipType(Image icon) {
+ myIcon = icon;
+ }
+
+ public Image getIcon() {
+ return myIcon;
+ }
+ }
+
+ public SuperTypeGroup(PsiClass superClass, OwnershipType type) {
+ myOverrides = type;
+ mySuperClassPointer = SmartPointerManager.getInstance(superClass.getProject()).createSmartPsiElementPointer(superClass);
+ }
+
+ @Override
+ public Collection getChildren() {
+ return myChildren;
+ }
+
+ @Nullable
+ @RequiredReadAction
+ private PsiClass getSuperClass() {
+ return (PsiClass) mySuperClassPointer.getElement();
+ }
+
+ @Override
+ public ItemPresentation getPresentation() {
+ return this;
+ }
+
+ @Override
+ public Image getIcon() {
+ return myOverrides.getIcon();
+ }
+
+ @Override
+ public String getLocationString() {
+ return null;
}
- return null; // Can't be
- }
-
- public String getLocationString() {
- return null;
- }
-
- @RequiredReadAction
- public String getPresentableText() {
- return toString();
- }
-
- @RequiredReadAction
- public String toString() {
- PsiClass superClass = getSuperClass();
- return superClass != null ? superClass.getName() : IdeLocalize.nodeStructureviewInvalid().get();
- }
-
- @RequiredReadAction
- public boolean equals(Object o) {
- if (this == o) return true;
- if (!(o instanceof SuperTypeGroup)) return false;
-
- SuperTypeGroup superTypeGroup = (SuperTypeGroup)o;
-
- if (myOverrides != superTypeGroup.myOverrides) return false;
- PsiClass superClass = getSuperClass();
- return superClass != null ? superClass.equals(superTypeGroup.getSuperClass()) : superTypeGroup.getSuperClass() == null;
- }
-
- @RequiredReadAction
- public int hashCode() {
- PsiClass superClass = getSuperClass();
- return superClass != null ? superClass .hashCode() : 0;
- }
-
- public Object getValue() {
- return this;
- }
-
- @RequiredReadAction
- public int getAccessLevel() {
- PsiClass superClass = getSuperClass();
- PsiModifierList modifierList = superClass == null ? null : superClass.getModifierList();
- return modifierList == null ? PsiUtil.ACCESS_LEVEL_PUBLIC : PsiUtil.getAccessLevel(modifierList);
- }
-
- public int getSubLevel() {
- return 1;
- }
-
- public void addMethod(TreeElement superMethod) {
- myChildren.add(superMethod);
- }
+ @Override
+ @RequiredReadAction
+ public LocalizeValue getPresentableText() {
+ PsiClass superClass = getSuperClass();
+ return superClass != null ? LocalizeValue.ofNullable(superClass.getName()) : IdeLocalize.nodeStructureviewInvalid();
+ }
+
+ @Override
+ @RequiredReadAction
+ public String toString() {
+ return getPresentableText().get();
+ }
+
+ @Override
+ @RequiredReadAction
+ public boolean equals(@Nullable Object o) {
+ return this == o
+ || o instanceof SuperTypeGroup that && myOverrides == that.myOverrides && Objects.equals(getSuperClass(), that.getSuperClass());
+ }
+
+ @Override
+ @RequiredReadAction
+ public int hashCode() {
+ return Objects.hashCode(getSuperClass());
+ }
+
+ public Object getValue() {
+ return this;
+ }
+
+ @Override
+ @RequiredReadAction
+ public int getAccessLevel() {
+ PsiClass superClass = getSuperClass();
+ PsiModifierList modifierList = superClass == null ? null : superClass.getModifierList();
+ return modifierList == null ? PsiUtil.ACCESS_LEVEL_PUBLIC : PsiUtil.getAccessLevel(modifierList);
+ }
+
+ @Override
+ public int getSubLevel() {
+ return 1;
+ }
+
+ public void addMethod(TreeElement superMethod) {
+ myChildren.add(superMethod);
+ }
}
diff --git a/plugin/src/main/java/com/intellij/java/impl/ide/util/JavaDeleteTypeDescriptionProvider.java b/plugin/src/main/java/com/intellij/java/impl/ide/util/JavaDeleteTypeDescriptionProvider.java
index 54e372a9e6..d64fb8dfad 100644
--- a/plugin/src/main/java/com/intellij/java/impl/ide/util/JavaDeleteTypeDescriptionProvider.java
+++ b/plugin/src/main/java/com/intellij/java/impl/ide/util/JavaDeleteTypeDescriptionProvider.java
@@ -22,29 +22,34 @@
import consulo.language.psi.ElementDescriptionLocation;
import consulo.language.psi.ElementDescriptionProvider;
import consulo.language.psi.PsiElement;
+import consulo.localize.LocalizeValue;
/**
* @author yole
*/
@ExtensionImpl
public class JavaDeleteTypeDescriptionProvider implements ElementDescriptionProvider {
- public String getElementDescription(PsiElement element, ElementDescriptionLocation location) {
- if (location instanceof DeleteTypeDescriptionLocation deleteTypeDescriptionLocation && deleteTypeDescriptionLocation.isPlural()) {
- if (element instanceof PsiMethod) {
- return IdeLocalize.promptDeleteMethod(2).get();
- } else if (element instanceof PsiField) {
- return IdeLocalize.promptDeleteField(2).get();
- } else if (element instanceof PsiClass psiClass) {
- if (psiClass.isInterface()) {
- return IdeLocalize.promptDeleteInterface(2).get();
+ @Override
+ public LocalizeValue getElementDescription(PsiElement element, ElementDescriptionLocation location) {
+ if (location instanceof DeleteTypeDescriptionLocation deleteTypeDescriptionLocation && deleteTypeDescriptionLocation.isPlural()) {
+ if (element instanceof PsiMethod) {
+ return IdeLocalize.promptDeleteMethod(2);
+ }
+ else if (element instanceof PsiField) {
+ return IdeLocalize.promptDeleteField(2);
+ }
+ else if (element instanceof PsiClass psiClass) {
+ if (psiClass.isInterface()) {
+ return IdeLocalize.promptDeleteInterface(2);
+ }
+ return element instanceof PsiTypeParameter
+ ? IdeLocalize.promptDeleteTypeParameter(2)
+ : IdeLocalize.promptDeleteClass(2);
+ }
+ else if (element instanceof PsiJavaPackage) {
+ return IdeLocalize.promptDeletePackage(2);
+ }
}
- return element instanceof PsiTypeParameter
- ? IdeLocalize.promptDeleteTypeParameter(2).get()
- : IdeLocalize.promptDeleteClass(2).get();
- } else if (element instanceof PsiJavaPackage) {
- return IdeLocalize.promptDeletePackage(2).get();
- }
+ return LocalizeValue.empty();
}
- return null;
- }
}
diff --git a/plugin/src/main/java/com/intellij/java/impl/refactoring/extractclass/ExtractEnumProcessor.java b/plugin/src/main/java/com/intellij/java/impl/refactoring/extractclass/ExtractEnumProcessor.java
index 4218453d49..62f60e5c4e 100644
--- a/plugin/src/main/java/com/intellij/java/impl/refactoring/extractclass/ExtractEnumProcessor.java
+++ b/plugin/src/main/java/com/intellij/java/impl/refactoring/extractclass/ExtractEnumProcessor.java
@@ -124,7 +124,7 @@ public List findEnumConstantUsages(List fiel
result.add(new ConflictUsageInfo(
expression,
LocalizeValue.localizeTODO(
- StringUtil.capitalize(RefactoringUIUtil.getDescription(element, false)) + " is out of project"
+ RefactoringUIUtil.getDescription(element, false).capitalize().get() + " is out of project"
)
));
}
diff --git a/plugin/src/main/java/com/intellij/java/impl/refactoring/inheritanceToDelegation/InheritanceToDelegationProcessor.java b/plugin/src/main/java/com/intellij/java/impl/refactoring/inheritanceToDelegation/InheritanceToDelegationProcessor.java
index 123ce7060f..e2f173d3bb 100644
--- a/plugin/src/main/java/com/intellij/java/impl/refactoring/inheritanceToDelegation/InheritanceToDelegationProcessor.java
+++ b/plugin/src/main/java/com/intellij/java/impl/refactoring/inheritanceToDelegation/InheritanceToDelegationProcessor.java
@@ -234,7 +234,7 @@ private void analyzeConflicts(UsageInfo[] usage, MultiMap RefactoringUIUtil.getDescription(psiClass, false),
+ psiClass -> RefactoringUIUtil.getDescription(psiClass, false).get(),
","
)
)
@@ -392,8 +393,8 @@ public static void addInaccessibleMemberConflicts(
for (PsiMember container : containers) {
Set referencedInaccessible = containersToReferenced.get(container);
for (PsiMember referenced : referencedInaccessible) {
- String referencedDescription = RefactoringUIUtil.getDescription(referenced, true);
- String containerDescription = RefactoringUIUtil.getDescription(container, true);
+ LocalizeValue referencedDescription = RefactoringUIUtil.getDescription(referenced, true);
+ LocalizeValue containerDescription = RefactoringUIUtil.getDescription(container, true);
LocalizeValue message = RefactoringLocalize.zeroThatIsUsedInInlinedMethodIsNotAccessibleFromCallSiteSIn1(
referencedDescription,
containerDescription
diff --git a/plugin/src/main/java/com/intellij/java/impl/refactoring/makeStatic/MakeMethodOrClassStaticProcessor.java b/plugin/src/main/java/com/intellij/java/impl/refactoring/makeStatic/MakeMethodOrClassStaticProcessor.java
index 340d78a144..35009b7bff 100644
--- a/plugin/src/main/java/com/intellij/java/impl/refactoring/makeStatic/MakeMethodOrClassStaticProcessor.java
+++ b/plugin/src/main/java/com/intellij/java/impl/refactoring/makeStatic/MakeMethodOrClassStaticProcessor.java
@@ -138,14 +138,14 @@ protected MultiMap getConflictDescriptions(UsageInfo[
processed.add(referencedElement);
if (referencedElement instanceof PsiField field) {
if (mySettings.getNameForField(field) == null) {
- String description = RefactoringUIUtil.getDescription(field, true);
+ LocalizeValue description = RefactoringUIUtil.getDescription(field, true);
LocalizeValue message =
RefactoringLocalize.zeroUsesNonStatic1WhichIsNotPassedAsAParameter(typeString, description);
conflicts.putValue(field, message);
}
}
else {
- String description = RefactoringUIUtil.getDescription(referencedElement, true);
+ LocalizeValue description = RefactoringUIUtil.getDescription(referencedElement, true);
LocalizeValue message = RefactoringLocalize.zeroUses1WhichNeedsClassInstance(typeString, description);
conflicts.putValue(referencedElement, message);
}
diff --git a/plugin/src/main/java/com/intellij/java/impl/refactoring/move/moveClassesOrPackages/MoveClassToInnerProcessor.java b/plugin/src/main/java/com/intellij/java/impl/refactoring/move/moveClassesOrPackages/MoveClassToInnerProcessor.java
index ffb046b274..d99eed3fa3 100644
--- a/plugin/src/main/java/com/intellij/java/impl/refactoring/move/moveClassesOrPackages/MoveClassToInnerProcessor.java
+++ b/plugin/src/main/java/com/intellij/java/impl/refactoring/move/moveClassesOrPackages/MoveClassToInnerProcessor.java
@@ -355,7 +355,7 @@ public synchronized void addConflict(PsiElement targetElement, PsiElement source
myReportedContainers.add(container);
String targetDescription = (targetElement == myClassToMove)
? "Class " + CommonRefactoringUtil.htmlEmphasize(myClassToMove.getName())
- : StringUtil.capitalize(RefactoringUIUtil.getDescription(targetElement, true));
+ : RefactoringUIUtil.getDescription(targetElement, true).capitalize().get();
LocalizeValue message = RefactoringLocalize.elementWillNoLongerBeAccessible(
targetDescription,
RefactoringUIUtil.getDescription(container, true)
diff --git a/plugin/src/main/java/com/intellij/java/impl/refactoring/move/moveClassesOrPackages/MoveDirectoryWithClassesProcessor.java b/plugin/src/main/java/com/intellij/java/impl/refactoring/move/moveClassesOrPackages/MoveDirectoryWithClassesProcessor.java
index c34413c2d8..e58b69313a 100644
--- a/plugin/src/main/java/com/intellij/java/impl/refactoring/move/moveClassesOrPackages/MoveDirectoryWithClassesProcessor.java
+++ b/plugin/src/main/java/com/intellij/java/impl/refactoring/move/moveClassesOrPackages/MoveDirectoryWithClassesProcessor.java
@@ -102,7 +102,7 @@ protected UsageViewDescriptor createUsageViewDescriptor(UsageInfo[] usages) {
}
protected String getTargetName() {
- return RefactoringUIUtil.getDescription(getTargetDirectory(null).getTargetDirectory(), false);
+ return RefactoringUIUtil.getDescription(getTargetDirectory(null).getTargetDirectory(), false).get();
}
@Override
diff --git a/plugin/src/main/java/com/intellij/java/impl/refactoring/move/moveInner/MoveInnerProcessor.java b/plugin/src/main/java/com/intellij/java/impl/refactoring/move/moveInner/MoveInnerProcessor.java
index cf98e9fabc..5d3992c5bb 100644
--- a/plugin/src/main/java/com/intellij/java/impl/refactoring/move/moveInner/MoveInnerProcessor.java
+++ b/plugin/src/main/java/com/intellij/java/impl/refactoring/move/moveInner/MoveInnerProcessor.java
@@ -393,11 +393,11 @@ private static void registerConflict(
containerSet.add(resolved);
String placesDescription;
if (containerSet.size() == 1) {
- placesDescription = RefactoringUIUtil.getDescription(resolved, true);
+ placesDescription = RefactoringUIUtil.getDescription(resolved, true).get();
}
else {
placesDescription = "- " +
- StringUtil.join(containerSet, element -> RefactoringUIUtil.getDescription(element, true), "
- ") +
+ StringUtil.join(containerSet, element -> RefactoringUIUtil.getDescription(element, true).get(), "
- ") +
"
";
}
LocalizeValue message =
diff --git a/plugin/src/main/java/com/intellij/java/impl/refactoring/rename/LocalHidesRenamedLocalUsageInfo.java b/plugin/src/main/java/com/intellij/java/impl/refactoring/rename/LocalHidesRenamedLocalUsageInfo.java
index 308d6dd02b..be2785290c 100644
--- a/plugin/src/main/java/com/intellij/java/impl/refactoring/rename/LocalHidesRenamedLocalUsageInfo.java
+++ b/plugin/src/main/java/com/intellij/java/impl/refactoring/rename/LocalHidesRenamedLocalUsageInfo.java
@@ -40,7 +40,7 @@ public LocalHidesRenamedLocalUsageInfo(PsiElement element, PsiElement conflictin
public LocalizeValue getDescription() {
PsiElement element = getElement();
String type = element == null ? "element" : UsageViewUtil.getType(element);
- String elemDescr = RefactoringUIUtil.getDescription(myConflictingElement, true);
+ LocalizeValue elemDescr = RefactoringUIUtil.getDescription(myConflictingElement, true);
return RefactoringLocalize.thereIsAlreadyA0ItWillConflictWithTheRenamed1(elemDescr, type);
}
}
diff --git a/plugin/src/main/java/com/intellij/java/impl/refactoring/replaceConstructorWithFactory/ReplaceConstructorWithFactoryProcessor.java b/plugin/src/main/java/com/intellij/java/impl/refactoring/replaceConstructorWithFactory/ReplaceConstructorWithFactoryProcessor.java
index 0bb9a025d4..b4489e17d3 100644
--- a/plugin/src/main/java/com/intellij/java/impl/refactoring/replaceConstructorWithFactory/ReplaceConstructorWithFactoryProcessor.java
+++ b/plugin/src/main/java/com/intellij/java/impl/refactoring/replaceConstructorWithFactory/ReplaceConstructorWithFactoryProcessor.java
@@ -159,7 +159,7 @@ protected boolean preprocessUsages(SimpleReference refUsages) {
}
Set reportedContainers = new HashSet<>();
- String targetClassDescription = RefactoringUIUtil.getDescription(myTargetClass, true);
+ LocalizeValue targetClassDescription = RefactoringUIUtil.getDescription(myTargetClass, true);
for (UsageInfo usage : usages) {
PsiElement container = ConflictsUtil.getContainer(usage.getElement());
if (!reportedContainers.contains(container)) {
diff --git a/plugin/src/main/java/com/intellij/java/impl/refactoring/util/ConflictsUtil.java b/plugin/src/main/java/com/intellij/java/impl/refactoring/util/ConflictsUtil.java
index 0808ebb642..ca1a88b01c 100644
--- a/plugin/src/main/java/com/intellij/java/impl/refactoring/util/ConflictsUtil.java
+++ b/plugin/src/main/java/com/intellij/java/impl/refactoring/util/ConflictsUtil.java
@@ -72,8 +72,8 @@ public static void checkMethodConflicts(
if (method != null && method != refactoredMethod) {
if (aClass.equals(method.getContainingClass())) {
- String classDescr = aClass instanceof PsiAnonymousClass
- ? RefactoringLocalize.currentClass().get()
+ LocalizeValue classDescr = aClass instanceof PsiAnonymousClass
+ ? RefactoringLocalize.currentClass()
: RefactoringUIUtil.getDescription(aClass, false);
conflicts.putValue(
method,
@@ -130,23 +130,21 @@ public static void checkFieldConflicts(@Nullable PsiClass aClass, String newName
PsiField existingField = aClass != null ? aClass.findFieldByName(newName, true) : null;
if (existingField != null) {
if (aClass.equals(existingField.getContainingClass())) {
- String className = aClass instanceof PsiAnonymousClass
- ? RefactoringLocalize.currentClass().get()
+ LocalizeValue className = aClass instanceof PsiAnonymousClass
+ ? RefactoringLocalize.currentClass()
: RefactoringUIUtil.getDescription(aClass, false);
LocalizeValue conflict = RefactoringLocalize.field0IsAlreadyDefinedInThe1(existingField.getName(), className);
conflicts.putValue(existingField, conflict);
}
- else { // method somewhere in base class
- if (!existingField.isPrivate()) {
- String fieldInfo = PsiFormatUtil.formatVariable(
- existingField,
- PsiFormatUtil.SHOW_NAME | PsiFormatUtil.SHOW_TYPE | PsiFormatUtil.TYPE_AFTER,
- PsiSubstitutor.EMPTY
- );
- String className = RefactoringUIUtil.getDescription(existingField.getContainingClass(), false);
- LocalizeValue descr = RefactoringLocalize.field0WillHideField1OfTheBaseClass(newName, fieldInfo, className);
- conflicts.putValue(existingField, descr);
- }
+ else if (!existingField.isPrivate()) { // method somewhere in base class
+ String fieldInfo = PsiFormatUtil.formatVariable(
+ existingField,
+ PsiFormatUtil.SHOW_NAME | PsiFormatUtil.SHOW_TYPE | PsiFormatUtil.TYPE_AFTER,
+ PsiSubstitutor.EMPTY
+ );
+ LocalizeValue className = RefactoringUIUtil.getDescription(existingField.getContainingClass(), false);
+ LocalizeValue descr = RefactoringLocalize.field0WillHideField1OfTheBaseClass(newName, fieldInfo, className);
+ conflicts.putValue(existingField, descr);
}
}
}
diff --git a/plugin/src/main/java/com/intellij/java/impl/refactoring/util/JavaNonCodeSearchElementDescriptionProvider.java b/plugin/src/main/java/com/intellij/java/impl/refactoring/util/JavaNonCodeSearchElementDescriptionProvider.java
index 404102d478..ac7cebe5fc 100644
--- a/plugin/src/main/java/com/intellij/java/impl/refactoring/util/JavaNonCodeSearchElementDescriptionProvider.java
+++ b/plugin/src/main/java/com/intellij/java/impl/refactoring/util/JavaNonCodeSearchElementDescriptionProvider.java
@@ -18,39 +18,50 @@
import com.intellij.java.language.psi.PsiClass;
import com.intellij.java.language.psi.PsiJavaPackage;
import com.intellij.java.language.psi.PsiMember;
+import consulo.annotation.access.RequiredReadAction;
import consulo.annotation.component.ExtensionImpl;
-import consulo.util.lang.StringUtil;
+import consulo.language.editor.refactoring.util.NonCodeSearchDescriptionLocation;
import consulo.language.psi.ElementDescriptionLocation;
import consulo.language.psi.ElementDescriptionProvider;
import consulo.language.psi.PsiElement;
-import consulo.language.editor.refactoring.util.NonCodeSearchDescriptionLocation;
+import consulo.localize.LocalizeValue;
/**
* @author yole
*/
@ExtensionImpl
public class JavaNonCodeSearchElementDescriptionProvider implements ElementDescriptionProvider {
- @Override
- public String getElementDescription(PsiElement element, ElementDescriptionLocation location) {
- if (!(location instanceof NonCodeSearchDescriptionLocation)) return null;
- NonCodeSearchDescriptionLocation ncdLocation = (NonCodeSearchDescriptionLocation) location;
- if (element instanceof PsiJavaPackage) {
- return ncdLocation.isNonJava() ? ((PsiJavaPackage) element).getQualifiedName() : StringUtil.notNullize(((PsiJavaPackage) element).getName());
- }
- if (element instanceof PsiClass) {
- return ncdLocation.isNonJava() ? ((PsiClass) element).getQualifiedName() : ((PsiClass) element).getName();
- }
- if (element instanceof PsiMember) {
- PsiMember member = (PsiMember) element;
- String name = member.getName();
- if (name == null) return null;
- if (!ncdLocation.isNonJava()) {
- return name;
- }
- PsiClass containingClass = member.getContainingClass();
- if (containingClass == null || containingClass.getQualifiedName() == null) return null;
- return containingClass.getQualifiedName() + "." + name;
+ @Override
+ @RequiredReadAction
+ public LocalizeValue getElementDescription(PsiElement element, ElementDescriptionLocation location) {
+ if (!(location instanceof NonCodeSearchDescriptionLocation)) {
+ return LocalizeValue.empty();
+ }
+ NonCodeSearchDescriptionLocation ncdLocation = (NonCodeSearchDescriptionLocation) location;
+ if (element instanceof PsiJavaPackage javaPackage) {
+ return ncdLocation.isNonJava()
+ ? LocalizeValue.ofNullable(javaPackage.getQualifiedName())
+ : LocalizeValue.ofNullable(javaPackage.getName());
+ }
+ if (element instanceof PsiClass psiClass) {
+ return ncdLocation.isNonJava()
+ ? LocalizeValue.ofNullable(psiClass.getQualifiedName())
+ : LocalizeValue.ofNullable(psiClass.getName());
+ }
+ if (element instanceof PsiMember member) {
+ String name = member.getName();
+ if (name == null) {
+ return LocalizeValue.empty();
+ }
+ if (!ncdLocation.isNonJava()) {
+ return LocalizeValue.of(name);
+ }
+ PsiClass containingClass = member.getContainingClass();
+ if (containingClass == null || containingClass.getQualifiedName() == null) {
+ return LocalizeValue.empty();
+ }
+ return LocalizeValue.of(containingClass.getQualifiedName() + "." + name);
+ }
+ return LocalizeValue.empty();
}
- return null;
- }
}
diff --git a/plugin/src/main/java/com/intellij/java/impl/refactoring/util/JavaRefactoringElementDescriptionProvider.java b/plugin/src/main/java/com/intellij/java/impl/refactoring/util/JavaRefactoringElementDescriptionProvider.java
index d85b9bc746..9859120d76 100644
--- a/plugin/src/main/java/com/intellij/java/impl/refactoring/util/JavaRefactoringElementDescriptionProvider.java
+++ b/plugin/src/main/java/com/intellij/java/impl/refactoring/util/JavaRefactoringElementDescriptionProvider.java
@@ -17,6 +17,7 @@
import com.intellij.java.language.psi.*;
import com.intellij.java.language.psi.util.PsiFormatUtil;
+import consulo.annotation.access.RequiredReadAction;
import consulo.annotation.component.ExtensionImpl;
import consulo.language.editor.refactoring.localize.RefactoringLocalize;
import consulo.language.editor.refactoring.util.CommonRefactoringUtil;
@@ -25,62 +26,76 @@
import consulo.language.psi.ElementDescriptionLocation;
import consulo.language.psi.ElementDescriptionProvider;
import consulo.language.psi.PsiElement;
+import consulo.localize.LocalizeValue;
@ExtensionImpl
public class JavaRefactoringElementDescriptionProvider implements ElementDescriptionProvider {
- public String getElementDescription(PsiElement element, ElementDescriptionLocation location) {
- if (!(location instanceof RefactoringDescriptionLocation)) return null;
- RefactoringDescriptionLocation rdLocation = (RefactoringDescriptionLocation) location;
+ @Override
+ @RequiredReadAction
+ public LocalizeValue getElementDescription(PsiElement element, ElementDescriptionLocation location) {
+ if (!(location instanceof RefactoringDescriptionLocation rdLocation)) {
+ return LocalizeValue.empty();
+ }
- if (element instanceof PsiField field) {
- int options = PsiFormatUtil.SHOW_NAME;
- if (rdLocation.includeParent()) {
- options |= PsiFormatUtil.SHOW_CONTAINING_CLASS;
- }
- String fieldEmphasized = CommonRefactoringUtil.htmlEmphasize(PsiFormatUtil.formatVariable(field, options, PsiSubstitutor.EMPTY));
- return RefactoringLocalize.fieldDescription(fieldEmphasized).get();
- }
+ if (element instanceof PsiField field) {
+ int options = PsiFormatUtil.SHOW_NAME;
+ if (rdLocation.includeParent()) {
+ options |= PsiFormatUtil.SHOW_CONTAINING_CLASS;
+ }
+ String fieldEmphasized = CommonRefactoringUtil.htmlEmphasize(PsiFormatUtil.formatVariable(
+ field,
+ options,
+ PsiSubstitutor.EMPTY
+ ));
+ return RefactoringLocalize.fieldDescription(fieldEmphasized);
+ }
- if (element instanceof PsiMethod method) {
- int options = PsiFormatUtil.SHOW_NAME | PsiFormatUtil.SHOW_PARAMETERS;
- if (rdLocation.includeParent()) {
- options |= PsiFormatUtil.SHOW_CONTAINING_CLASS;
- }
- String empasizedMethod =
- CommonRefactoringUtil.htmlEmphasize(PsiFormatUtil.formatMethod(method, PsiSubstitutor.EMPTY, options, PsiFormatUtil.SHOW_TYPE));
- return method.isConstructor()
- ? RefactoringLocalize.constructorDescription(empasizedMethod).get()
- : RefactoringLocalize.methodDescription(empasizedMethod).get();
- }
+ if (element instanceof PsiMethod method) {
+ int options = PsiFormatUtil.SHOW_NAME | PsiFormatUtil.SHOW_PARAMETERS;
+ if (rdLocation.includeParent()) {
+ options |= PsiFormatUtil.SHOW_CONTAINING_CLASS;
+ }
+ String emphasizedMethod = CommonRefactoringUtil.htmlEmphasize(PsiFormatUtil.formatMethod(
+ method,
+ PsiSubstitutor.EMPTY,
+ options,
+ PsiFormatUtil.SHOW_TYPE
+ ));
+ return method.isConstructor()
+ ? RefactoringLocalize.constructorDescription(emphasizedMethod)
+ : RefactoringLocalize.methodDescription(emphasizedMethod);
+ }
- if (element instanceof PsiClassInitializer) {
- PsiClassInitializer initializer = (PsiClassInitializer) element;
- boolean isStatic = initializer.hasModifierProperty(PsiModifier.STATIC);
- String elementDescription = getElementDescription(initializer.getContainingClass(), RefactoringDescriptionLocation.WITHOUT_PARENT);
- return isStatic
- ? RefactoringLocalize.staticInitializerDescription(elementDescription).get()
- : RefactoringLocalize.instanceInitializerDescription(elementDescription).get();
- }
+ if (element instanceof PsiClassInitializer initializer) {
+ boolean isStatic = initializer.isStatic();
+ LocalizeValue elementDescription = getElementDescription(
+ initializer.getContainingClass(),
+ RefactoringDescriptionLocation.WITHOUT_PARENT
+ );
+ return isStatic
+ ? RefactoringLocalize.staticInitializerDescription(elementDescription)
+ : RefactoringLocalize.instanceInitializerDescription(elementDescription);
+ }
- if (element instanceof PsiParameter parameter) {
- String paramNameEmpasized = CommonRefactoringUtil.htmlEmphasize(parameter.getName());
- return parameter.getDeclarationScope() instanceof PsiForeachStatement
- ? RefactoringLocalize.localVariableDescription(paramNameEmpasized).get()
- : RefactoringLocalize.parameterDescription(paramNameEmpasized).get();
- }
+ if (element instanceof PsiParameter parameter) {
+ String paramNameEmphasized = CommonRefactoringUtil.htmlEmphasize(parameter.getName());
+ return parameter.getDeclarationScope() instanceof PsiForeachStatement
+ ? RefactoringLocalize.localVariableDescription(paramNameEmphasized)
+ : RefactoringLocalize.parameterDescription(paramNameEmphasized);
+ }
- if (element instanceof PsiLocalVariable localVariable) {
- return RefactoringLocalize.localVariableDescription(CommonRefactoringUtil.htmlEmphasize(localVariable.getName())).get();
- }
+ if (element instanceof PsiLocalVariable localVariable) {
+ return RefactoringLocalize.localVariableDescription(CommonRefactoringUtil.htmlEmphasize(localVariable.getName()));
+ }
- if (element instanceof PsiJavaPackage javaPackage) {
- return RefactoringLocalize.packageDescription(CommonRefactoringUtil.htmlEmphasize(javaPackage.getName())).get();
- }
+ if (element instanceof PsiJavaPackage javaPackage) {
+ return RefactoringLocalize.packageDescription(CommonRefactoringUtil.htmlEmphasize(javaPackage.getName()));
+ }
- if (element instanceof PsiClass psiClass) {
- //TODO : local & anonymous
- return RefactoringLocalize.classDescription(CommonRefactoringUtil.htmlEmphasize(DescriptiveNameUtil.getDescriptiveName(psiClass))).get();
+ if (element instanceof PsiClass psiClass) {
+ //TODO : local & anonymous
+ return RefactoringLocalize.classDescription(CommonRefactoringUtil.htmlEmphasize(DescriptiveNameUtil.getDescriptiveName(psiClass)));
+ }
+ return LocalizeValue.empty();
}
- return null;
- }
}
diff --git a/plugin/src/main/java/com/intellij/java/impl/refactoring/util/RefactoringConflictsUtil.java b/plugin/src/main/java/com/intellij/java/impl/refactoring/util/RefactoringConflictsUtil.java
index 4fe0c33294..658d3299e1 100644
--- a/plugin/src/main/java/com/intellij/java/impl/refactoring/util/RefactoringConflictsUtil.java
+++ b/plugin/src/main/java/com/intellij/java/impl/refactoring/util/RefactoringConflictsUtil.java
@@ -19,28 +19,27 @@
import com.intellij.java.language.psi.util.PsiUtil;
import com.intellij.java.language.util.VisibilityUtil;
import consulo.annotation.access.RequiredReadAction;
+import consulo.java.localize.JavaRefactoringLocalize;
import consulo.language.editor.refactoring.localize.RefactoringLocalize;
-import consulo.localize.LocalizeValue;
-import consulo.module.Module;
-import consulo.module.content.util.ModuleContentUtil;
-import consulo.project.Project;
-import consulo.module.content.ModuleRootManager;
-import consulo.module.content.ProjectRootManager;
-import consulo.virtualFileSystem.VirtualFile;
-import consulo.language.psi.*;
+import consulo.language.editor.refactoring.ui.RefactoringUIUtil;
+import consulo.language.editor.refactoring.util.CommonRefactoringUtil;
import consulo.language.impl.psi.LightElement;
+import consulo.language.psi.*;
import consulo.language.psi.scope.GlobalSearchScope;
import consulo.language.psi.scope.PsiSearchScopeUtil;
import consulo.language.psi.search.ReferencesSearch;
import consulo.language.psi.util.PsiTreeUtil;
-import consulo.language.psi.PsiUtilCore;
-import consulo.language.editor.refactoring.util.CommonRefactoringUtil;
+import consulo.language.util.IncorrectOperationException;
+import consulo.localize.LocalizeValue;
+import consulo.module.Module;
+import consulo.module.content.ModuleRootManager;
+import consulo.module.content.ProjectRootManager;
+import consulo.module.content.util.ModuleContentUtil;
+import consulo.project.Project;
import consulo.usage.MoveRenameUsageInfo;
-import consulo.language.editor.refactoring.ui.RefactoringUIUtil;
import consulo.usage.UsageInfo;
-import consulo.language.util.IncorrectOperationException;
import consulo.util.collection.MultiMap;
-
+import consulo.virtualFileSystem.VirtualFile;
import org.jspecify.annotations.Nullable;
import java.util.Collection;
@@ -233,10 +232,10 @@ else if (newContext instanceof PsiClass psiClass
if (fieldInSubClass != null && fieldInSubClass != refMember) {
conflicts.putValue(
refMember,
- LocalizeValue.localizeTODO(
- CommonRefactoringUtil.capitalize(RefactoringUIUtil.getDescription(fieldInSubClass, true)) +
- " would hide " + RefactoringUIUtil.getDescription(refMember, true) +
- " which is used by moved " + RefactoringUIUtil.getDescription(member, false)
+ JavaRefactoringLocalize.dialogMessage0WouldHideWhich1UsedByMoved2(
+ RefactoringUIUtil.getDescription(fieldInSubClass, true).capitalize(),
+ RefactoringUIUtil.getDescription(refMember, true),
+ RefactoringUIUtil.getDescription(member, false)
)
);
}
@@ -297,9 +296,9 @@ public void visitReferenceElement(PsiJavaCodeReferenceElement reference) {
&& !CommonRefactoringUtil.isAncestor(resolved, scopes)
&& !PsiSearchScopeUtil.isInScope(resolveScope, resolved)
&& !(resolved instanceof LightElement)) {
- String scopeDescription = RefactoringUIUtil.getDescription(ConflictsUtil.getContainer(reference), true);
+ LocalizeValue scopeDescription = RefactoringUIUtil.getDescription(ConflictsUtil.getContainer(reference), true);
LocalizeValue message = RefactoringLocalize.zeroReferencedIn1WillNotBeAccessibleInModule2(
- CommonRefactoringUtil.capitalize(RefactoringUIUtil.getDescription(resolved, true)),
+ RefactoringUIUtil.getDescription(resolved, true).capitalize(),
scopeDescription,
CommonRefactoringUtil.htmlEmphasize(targetModule.getName())
);
@@ -332,7 +331,7 @@ public void visitReferenceElement(PsiJavaCodeReferenceElement reference) {
else {
container = usageFile;
}
- String scopeDescription = RefactoringUIUtil.getDescription(container, true);
+ LocalizeValue scopeDescription = RefactoringUIUtil.getDescription(container, true);
VirtualFile usageVFile = usageFile.getVirtualFile();
if (usageVFile != null) {
Module module = ProjectRootManager.getInstance(project).getFileIndex().getModuleForFile(usageVFile);
@@ -342,7 +341,7 @@ public void visitReferenceElement(PsiJavaCodeReferenceElement reference) {
? moveRenameUsageInfo.getReferencedElement()
: usage.getElement();
assert referencedElement != null : usage;
- String description = RefactoringUIUtil.getDescription(referencedElement, true);
+ LocalizeValue description = RefactoringUIUtil.getDescription(referencedElement, true);
String emphasizedName = CommonRefactoringUtil.htmlEmphasize(module.getName());
if (module == targetModule && isInTestSources) {
message = RefactoringLocalize.zeroReferencedIn1WillNotBeAccessibleFromProductionOfModule2(
diff --git a/plugin/src/main/java/com/intellij/java/impl/slicer/SliceManager.java b/plugin/src/main/java/com/intellij/java/impl/slicer/SliceManager.java
index fcf60b60f5..ff569c5833 100644
--- a/plugin/src/main/java/com/intellij/java/impl/slicer/SliceManager.java
+++ b/plugin/src/main/java/com/intellij/java/impl/slicer/SliceManager.java
@@ -35,6 +35,7 @@
import consulo.language.psi.PsiManager;
import consulo.language.psi.event.PsiTreeChangeAdapter;
import consulo.language.psi.event.PsiTreeChangeEvent;
+import consulo.localize.LocalizeValue;
import consulo.project.Project;
import consulo.project.ui.wm.ToolWindowManager;
import consulo.ui.ex.awt.UIUtil;
@@ -198,11 +199,10 @@ public static String getElementDescription(String prefix, PsiElement element, St
if (elementToSlice == null) {
elementToSlice = element;
}
- String desc = ElementDescriptionUtil.getElementDescription(elementToSlice, RefactoringDescriptionLocation.WITHOUT_PARENT);
- return "" + UIUtil.getCssFontDeclaration(getLabelFont()) + "" + (prefix == null ? "" : prefix) + StringUtil.first(
- desc,
- 100,
- true) + (suffix == null ? "" : suffix) +
+ LocalizeValue desc = ElementDescriptionUtil.getElementDescription(elementToSlice, RefactoringDescriptionLocation.WITHOUT_PARENT);
+ return "" + UIUtil.getCssFontDeclaration(getLabelFont()) + "" + (prefix == null ? "" : prefix) +
+ StringUtil.first(desc.get(), 100, true) +
+ (suffix == null ? "" : suffix) +
"";
}
diff --git a/plugin/src/main/java/com/intellij/java/impl/usageView/JavaUsageViewDescriptionProvider.java b/plugin/src/main/java/com/intellij/java/impl/usageView/JavaUsageViewDescriptionProvider.java
index 1390cedf39..b87d68801a 100644
--- a/plugin/src/main/java/com/intellij/java/impl/usageView/JavaUsageViewDescriptionProvider.java
+++ b/plugin/src/main/java/com/intellij/java/impl/usageView/JavaUsageViewDescriptionProvider.java
@@ -17,50 +17,60 @@
import com.intellij.java.language.psi.*;
import com.intellij.java.language.psi.util.PsiFormatUtil;
+import consulo.annotation.access.RequiredReadAction;
import consulo.annotation.component.ExtensionImpl;
-import consulo.language.LangBundle;
+import consulo.language.localize.LanguageLocalize;
import consulo.language.psi.ElementDescriptionLocation;
import consulo.language.psi.ElementDescriptionProvider;
import consulo.language.psi.PsiElement;
-import consulo.usage.UsageViewBundle;
+import consulo.localize.LocalizeValue;
import consulo.usage.UsageViewLongNameLocation;
import consulo.usage.UsageViewShortNameLocation;
-
+import consulo.usage.localize.UsageLocalize;
/**
* @author yole
*/
@ExtensionImpl
public class JavaUsageViewDescriptionProvider implements ElementDescriptionProvider {
- public String getElementDescription(PsiElement element, ElementDescriptionLocation location) {
- if (location instanceof UsageViewShortNameLocation) {
- if (element instanceof PsiThrowStatement) {
- return UsageViewBundle.message("usage.target.exception");
- }
- }
+ @Override
+ @RequiredReadAction
+ public LocalizeValue getElementDescription(PsiElement element, ElementDescriptionLocation location) {
+ if (location instanceof UsageViewShortNameLocation) {
+ if (element instanceof PsiThrowStatement) {
+ return UsageLocalize.usageTargetException();
+ }
+ }
- if (location instanceof UsageViewLongNameLocation) {
- if (element instanceof PsiJavaPackage) {
- return ((PsiJavaPackage) element).getQualifiedName();
- } else if (element instanceof PsiClass) {
- if (element instanceof PsiAnonymousClass) {
- return LangBundle.message("java.terms.anonymous.class");
- } else {
- String ret = ((PsiClass) element).getQualifiedName(); // It happens for local classes
- if (ret == null) {
- ret = ((PsiClass) element).getName();
- }
- return ret;
+ if (location instanceof UsageViewLongNameLocation) {
+ if (element instanceof PsiJavaPackage javaPackage) {
+ return LocalizeValue.ofNullable(javaPackage.getQualifiedName());
+ }
+ else if (element instanceof PsiClass psiClass) {
+ if (element instanceof PsiAnonymousClass) {
+ return LanguageLocalize.javaTermsAnonymousClass();
+ }
+ else {
+ String ret = psiClass.getQualifiedName(); // It happens for local classes
+ if (ret == null) {
+ ret = psiClass.getName();
+ }
+ return LocalizeValue.ofNullable(ret);
+ }
+ }
+ else if (element instanceof PsiVariable variable) {
+ return LocalizeValue.ofNullable(variable.getName());
+ }
+ else if (element instanceof PsiMethod method) {
+ return LocalizeValue.of(PsiFormatUtil.formatMethod(
+ method,
+ PsiSubstitutor.EMPTY,
+ PsiFormatUtil.SHOW_NAME | PsiFormatUtil.SHOW_PARAMETERS,
+ PsiFormatUtil.SHOW_TYPE
+ ));
+ }
}
- } else if (element instanceof PsiVariable) {
- return ((PsiVariable) element).getName();
- } else if (element instanceof PsiMethod) {
- PsiMethod psiMethod = (PsiMethod) element;
- return PsiFormatUtil.formatMethod(psiMethod, PsiSubstitutor.EMPTY,
- PsiFormatUtil.SHOW_NAME | PsiFormatUtil.SHOW_PARAMETERS, PsiFormatUtil.SHOW_TYPE);
- }
- }
- return null;
- }
+ return LocalizeValue.empty();
+ }
}
diff --git a/plugin/src/main/resources/LOCALIZE-LIB/en_US/consulo.java.JavaRefactoringLocalize.yaml b/plugin/src/main/resources/LOCALIZE-LIB/en_US/consulo.java.JavaRefactoringLocalize.yaml
index 1c79fddca1..ee31aec15c 100644
--- a/plugin/src/main/resources/LOCALIZE-LIB/en_US/consulo.java.JavaRefactoringLocalize.yaml
+++ b/plugin/src/main/resources/LOCALIZE-LIB/en_US/consulo.java.JavaRefactoringLocalize.yaml
@@ -549,3 +549,5 @@ wrap.return.value.title:
text: Wrap Return Value
wrapped.return.command.name:
text: Wrapped return as {0} for {1}{2}{3}()
+dialog.message.0.would.hide.which.1.used.by.moved.2:
+ text: '{0} would hide {1} which is used by moved {2}.'
\ No newline at end of file