From 1f2daf306b7fd57118040acda959c7d0399a99fb Mon Sep 17 00:00:00 2001 From: UNV Date: Sun, 11 Oct 2026 18:53:27 +0300 Subject: [PATCH] Fixing compilation errors after platform localization. Some refactoring. --- .../grammar/impl/BnfDescriptionProvider.java | 27 ++++++++++------- .../grammar/impl/BnfFindUsagesProvider.java | 6 ++-- .../grammar/impl/BnfStructureViewFactory.java | 29 ++++++++++--------- .../LivePreviewStructureViewFactory.java | 27 ++++++++--------- .../impl/refactor/InlineRuleDialog.java | 7 ++--- 5 files changed, 50 insertions(+), 46 deletions(-) diff --git a/grammar-kit/src/main/java/org/intellij/grammar/impl/BnfDescriptionProvider.java b/grammar-kit/src/main/java/org/intellij/grammar/impl/BnfDescriptionProvider.java index 81f7e18c..3a2d94de 100644 --- a/grammar-kit/src/main/java/org/intellij/grammar/impl/BnfDescriptionProvider.java +++ b/grammar-kit/src/main/java/org/intellij/grammar/impl/BnfDescriptionProvider.java @@ -19,6 +19,7 @@ import consulo.annotation.component.ExtensionImpl; import consulo.language.psi.PsiElement; import consulo.application.util.matcher.NameUtil; +import consulo.localize.LocalizeValue; import consulo.usage.UsageViewNodeTextLocation; import consulo.usage.UsageViewShortNameLocation; import consulo.usage.UsageViewTypeLocation; @@ -35,36 +36,40 @@ /** * @author gregory - * Date: 2011-07-17 + * @since 2011-07-17 */ @ExtensionImpl public class BnfDescriptionProvider implements ElementDescriptionProvider { @Override @RequiredReadAction - public String getElementDescription(@Nonnull PsiElement psiElement, @Nonnull ElementDescriptionLocation location) { + public LocalizeValue getElementDescription(@Nonnull PsiElement psiElement, @Nonnull ElementDescriptionLocation location) { if (location == UsageViewNodeTextLocation.INSTANCE && psiElement instanceof BnfComposite) { - return getElementDescription(psiElement, UsageViewTypeLocation.INSTANCE) + " " + - "'" + getElementDescription(psiElement, UsageViewShortNameLocation.INSTANCE) + "'"; + return LocalizeValue.of( + getElementDescription(psiElement, UsageViewTypeLocation.INSTANCE).get() + " " + + "'" + getElementDescription(psiElement, UsageViewShortNameLocation.INSTANCE).get() + "'" + ); } if (psiElement instanceof BnfRule rule) { if (location == UsageViewTypeLocation.INSTANCE) { - return "Grammar Rule"; + return LocalizeValue.localizeTODO("Grammar Rule"); } - return rule.getName(); + return LocalizeValue.of(rule.getName()); } else if (psiElement instanceof BnfAttr attr) { if (location == UsageViewTypeLocation.INSTANCE) { BnfRule rule = PsiTreeUtil.getParentOfType(psiElement, BnfRule.class); - return (rule == null ? "Grammar " : "Rule ") + "Attribute"; + return rule == null ? LocalizeValue.localizeTODO("Grammar Attribute") : LocalizeValue.localizeTODO("Rule Attribute"); } - return attr.getName(); + return LocalizeValue.of(attr.getName()); } else if (psiElement instanceof BnfComposite) { if (location == UsageViewTypeLocation.INSTANCE) { - return StringUtil.join(NameUtil.nameToWords(psiElement.getNode().getElementType().toString()), " "); + return LocalizeValue.of(StringUtil.join(NameUtil.nameToWords(psiElement.getNode().getElementType().toString()), " ")); } - return psiElement instanceof PsiNamedElement namedElement ? namedElement.getName() : psiElement.getClass().getSimpleName(); + return psiElement instanceof PsiNamedElement namedElement + ? LocalizeValue.ofNullable(namedElement.getName()) + : LocalizeValue.of(psiElement.getClass().getSimpleName()); } - return null; + return LocalizeValue.empty(); } } diff --git a/grammar-kit/src/main/java/org/intellij/grammar/impl/BnfFindUsagesProvider.java b/grammar-kit/src/main/java/org/intellij/grammar/impl/BnfFindUsagesProvider.java index f0e02cd1..245a9547 100644 --- a/grammar-kit/src/main/java/org/intellij/grammar/impl/BnfFindUsagesProvider.java +++ b/grammar-kit/src/main/java/org/intellij/grammar/impl/BnfFindUsagesProvider.java @@ -42,19 +42,19 @@ public boolean canFindUsagesFor(@Nonnull PsiElement psiElement) { @Nonnull @Override public String getType(@Nonnull PsiElement element) { - return ElementDescriptionUtil.getElementDescription(element, UsageViewTypeLocation.INSTANCE); + return ElementDescriptionUtil.getElementDescription(element, UsageViewTypeLocation.INSTANCE).get(); } @Nonnull @Override public String getDescriptiveName(@Nonnull PsiElement element) { - return ElementDescriptionUtil.getElementDescription(element, UsageViewLongNameLocation.INSTANCE); + return ElementDescriptionUtil.getElementDescription(element, UsageViewLongNameLocation.INSTANCE).get(); } @Nonnull @Override public String getNodeText(@Nonnull PsiElement element, boolean useFullName) { - return ElementDescriptionUtil.getElementDescription(element, UsageViewNodeTextLocation.INSTANCE); + return ElementDescriptionUtil.getElementDescription(element, UsageViewNodeTextLocation.INSTANCE).get(); } @Nonnull diff --git a/grammar-kit/src/main/java/org/intellij/grammar/impl/BnfStructureViewFactory.java b/grammar-kit/src/main/java/org/intellij/grammar/impl/BnfStructureViewFactory.java index 5ecd9dac..1415231b 100644 --- a/grammar-kit/src/main/java/org/intellij/grammar/impl/BnfStructureViewFactory.java +++ b/grammar-kit/src/main/java/org/intellij/grammar/impl/BnfStructureViewFactory.java @@ -30,6 +30,7 @@ import consulo.language.icon.IconDescriptorUpdaters; import consulo.language.psi.PsiElement; import consulo.language.psi.PsiFile; +import consulo.localize.LocalizeValue; import consulo.platform.base.icon.PlatformIconGroup; import consulo.ui.image.Image; import consulo.util.collection.ContainerUtil; @@ -86,7 +87,7 @@ public boolean isAlwaysShowsPlus(StructureViewTreeElement element) { @Override public boolean isAlwaysLeaf(StructureViewTreeElement element) { - final Object value = element.getValue(); + Object value = element.getValue(); return value instanceof BnfRule || value instanceof BnfAttr; } @@ -102,7 +103,6 @@ protected boolean isSuitable(PsiElement element) { } public static class MyElement extends PsiTreeElementBase implements SortableTreeElement { - public MyElement(PsiElement element) { super(element); } @@ -110,17 +110,18 @@ public MyElement(PsiElement element) { @Override @RequiredReadAction public String getAlphaSortKey() { - return getPresentableText(); + return getPresentableText().get(); } @Nonnull @Override + @RequiredReadAction public Collection getChildrenBase() { PsiElement element = getElement(); if (element instanceof BnfRule || element instanceof BnfAttr) { return Collections.emptyList(); } - final ArrayList result = new ArrayList<>(); + List result = new ArrayList<>(); if (element instanceof BnfFile bnfFile) { for (BnfAttrs o : bnfFile.getAttributes()) { result.add(new MyElement(o)); @@ -139,33 +140,33 @@ else if (element instanceof BnfAttrs bnfAttrs) { @Override @RequiredReadAction - public String getPresentableText() { + public LocalizeValue getPresentableText() { PsiElement element = getElement(); if (element instanceof BnfRule rule) { - return rule.getName(); + return LocalizeValue.of(rule.getName()); } else if (element instanceof BnfAttr attr) { - return getAttrDisplayName(attr); + return LocalizeValue.of(getAttrDisplayName(attr)); } else if (element instanceof BnfAttrs attrs) { List attrList = attrs.getAttrList(); - final BnfAttr firstAttr = ContainerUtil.getFirstItem(attrList); + BnfAttr firstAttr = ContainerUtil.getFirstItem(attrList); if (firstAttr == null) { - return "Attributes { }"; + return LocalizeValue.localizeTODO("Attributes { }"); } String suffix = attrList.size() > 1 ? " & " + attrList.size() + " more..." : " "; - return "Attributes { " + getAttrDisplayName(firstAttr) + suffix + "}"; + return LocalizeValue.localizeTODO("Attributes { " + getAttrDisplayName(firstAttr) + suffix + "}"); } else if (element instanceof BnfFileImpl file) { - return file.getName(); + return LocalizeValue.of(file.getName()); } - return "" + element; + return LocalizeValue.of(String.valueOf(element)); } @RequiredReadAction private static String getAttrDisplayName(BnfAttr attr) { - final BnfAttrPattern attrPattern = attr.getAttrPattern(); - final BnfExpression attrValue = attr.getExpression(); + BnfAttrPattern attrPattern = attr.getAttrPattern(); + BnfExpression attrValue = attr.getExpression(); String attrValueText = attrValue == null ? "" : attrValue instanceof BnfValueList ? "[ ... ]" : attrValue.getText(); return attr.getName() + (attrPattern == null ? "" : attrPattern.getText()) + " = " + attrValueText; } diff --git a/grammar-kit/src/main/java/org/intellij/grammar/impl/livePreview/LivePreviewStructureViewFactory.java b/grammar-kit/src/main/java/org/intellij/grammar/impl/livePreview/LivePreviewStructureViewFactory.java index 5c8dc440..16a8a371 100644 --- a/grammar-kit/src/main/java/org/intellij/grammar/impl/livePreview/LivePreviewStructureViewFactory.java +++ b/grammar-kit/src/main/java/org/intellij/grammar/impl/livePreview/LivePreviewStructureViewFactory.java @@ -35,6 +35,7 @@ import consulo.language.psi.PsiErrorElement; import consulo.language.psi.PsiFile; import consulo.language.psi.PsiWhiteSpace; +import consulo.localize.LocalizeValue; import consulo.ui.ex.ColoredItemPresentation; import consulo.ui.image.Image; import consulo.util.lang.StringUtil; @@ -44,7 +45,8 @@ import org.intellij.grammar.psi.BnfRule; import jakarta.annotation.Nonnull; -import jakarta.annotation.Nullable; +import org.jspecify.annotations.Nullable; + import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -132,42 +134,41 @@ public Collection getChildrenBase() { @Override @RequiredReadAction public String getAlphaSortKey() { - return getPresentableText(); + return getPresentableText().get(); } @Nonnull @Override @RequiredReadAction - public String getPresentableText() { + public LocalizeValue getPresentableText() { PsiElement element = getElement(); ASTNode node = element != null ? element.getNode() : null; IElementType elementType = node != null ? node.getElementType() : null; if (element instanceof LeafPsiElement) { - return elementType + ": '" + element.getText() + "'"; + return LocalizeValue.of(elementType + ": '" + element.getText() + "'"); } else if (element instanceof PsiErrorElement errorElem) { - return "PsiErrorElement: '" + errorElem.getErrorDescription() + "'"; + return LocalizeValue.of("PsiErrorElement: '" + errorElem.getErrorDescription() + "'"); } else if (elementType instanceof LivePreviewElementType.RuleType ruleType) { BnfRule rule = ruleType.getRule(element.getProject()); if (rule != null) { BnfFile file = (BnfFile)rule.getContainingFile(); String className = getRulePsiClassName(rule, getPsiClassFormat(file)); - return className + ": '" + StringUtil.first(element.getText(), 30, true) + "'"; + return LocalizeValue.of(className + ": '" + StringUtil.first(element.getText(), 30, true) + "'"); } } - return elementType + ""; + return LocalizeValue.of(String.valueOf(elementType)); } - @Nullable @Override - public String getLocationString() { + public @Nullable String getLocationString() { return null; } - @Nullable @Override - public Image getIcon() { + @RequiredReadAction + public @Nullable Image getIcon() { PsiElement element = getElement(); if (element instanceof PsiErrorElement) { return null; //AllIcons.General.Error; @@ -183,9 +184,9 @@ else if (element instanceof LeafPsiElement) { return null; } - @Nullable @Override - public TextAttributesKey getTextAttributesKey() { + @RequiredReadAction + public @Nullable TextAttributesKey getTextAttributesKey() { return getElement() instanceof PsiErrorElement ? CodeInsightColors.ERRORS_ATTRIBUTES : null; } } diff --git a/grammar-kit/src/main/java/org/intellij/grammar/impl/refactor/InlineRuleDialog.java b/grammar-kit/src/main/java/org/intellij/grammar/impl/refactor/InlineRuleDialog.java index 5ef7e18b..8dd59043 100644 --- a/grammar-kit/src/main/java/org/intellij/grammar/impl/refactor/InlineRuleDialog.java +++ b/grammar-kit/src/main/java/org/intellij/grammar/impl/refactor/InlineRuleDialog.java @@ -24,11 +24,8 @@ import org.intellij.grammar.psi.BnfRule; /** - * Created by IntelliJ IDEA. - * Date: 8/11/11 - * Time: 4:04 PM - * * @author Vadim Romansky + * @since 2011-08-11 */ public class InlineRuleDialog extends InlineOptionsDialog { private final PsiReference myReference; @@ -48,7 +45,7 @@ public InlineRuleDialog(Project project, BnfRule rule, PsiReference ref) { @Override protected LocalizeValue getNameLabelText() { - return LocalizeValue.localizeTODO(ElementDescriptionUtil.getElementDescription(myElement, UsageViewNodeTextLocation.INSTANCE)); + return ElementDescriptionUtil.getElementDescription(myElement, UsageViewNodeTextLocation.INSTANCE); } @Override