mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[devkit] plugin.xml: verify <override-text> capitalization
GitOrigin-RevId: 3eedf536a0c975ab3aa825262a27b5005707998f
This commit is contained in:
committed by
intellij-monorepo-bot
parent
481d701c47
commit
336042ac45
@@ -28,10 +28,7 @@ import com.intellij.xml.util.XmlUtil;
|
||||
import org.jetbrains.annotations.Nls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.idea.devkit.dom.Action;
|
||||
import org.jetbrains.idea.devkit.dom.ActionOrGroup;
|
||||
import org.jetbrains.idea.devkit.dom.Extension;
|
||||
import org.jetbrains.idea.devkit.dom.IdeaPlugin;
|
||||
import org.jetbrains.idea.devkit.dom.*;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
@@ -48,11 +45,24 @@ public class PluginXmlCapitalizationInspection extends BasicDomElementsInspectio
|
||||
if (element instanceof ActionOrGroup) {
|
||||
checkActionOrGroup((ActionOrGroup)element, holder);
|
||||
}
|
||||
else if (element instanceof OverrideText) {
|
||||
checkOverrideText((OverrideText)element, holder);
|
||||
}
|
||||
else if (element instanceof Extension) {
|
||||
checkExtension((Extension)element, holder);
|
||||
}
|
||||
}
|
||||
|
||||
private static void checkOverrideText(OverrideText overrideText, DomElementAnnotationHolder holder) {
|
||||
if (checkCapitalization(holder, overrideText.getText(), Nls.Capitalization.Title)) return;
|
||||
|
||||
Action action = overrideText.getParentOfType(Action.class, true);
|
||||
assert action != null;
|
||||
final String resourceKey = "action." + action.getId().getStringValue() + "." + overrideText.getPlace().getStringValue() + ".text";
|
||||
checkPropertyCapitalization(holder, overrideText, Nls.Capitalization.Title,
|
||||
resourceKey, true);
|
||||
}
|
||||
|
||||
private static void checkActionOrGroup(ActionOrGroup actionOrGroup, DomElementAnnotationHolder holder) {
|
||||
checkActionOrGroupCapitalization(holder, actionOrGroup, ActionOrGroupText.TEXT);
|
||||
checkActionOrGroupCapitalization(holder, actionOrGroup, ActionOrGroupText.DESCRIPTION);
|
||||
@@ -90,7 +100,16 @@ public class PluginXmlCapitalizationInspection extends BasicDomElementsInspectio
|
||||
final Nls.Capitalization capitalization = actionOrGroupText.myCapitalization;
|
||||
if (checkCapitalization(holder, genericDomValue, capitalization)) return;
|
||||
|
||||
final IdeaPlugin ideaPlugin = DomUtil.getParentOfType(actionOrGroup, IdeaPlugin.class, true);
|
||||
checkPropertyCapitalization(holder, actionOrGroup, capitalization,
|
||||
"action." + actionOrGroup.getId().getStringValue() + actionOrGroupText.mySuffix,
|
||||
actionOrGroupText.myRequired.apply(actionOrGroup));
|
||||
}
|
||||
|
||||
private static void checkPropertyCapitalization(DomElementAnnotationHolder holder,
|
||||
DomElement domElement,
|
||||
Nls.Capitalization capitalization,
|
||||
String resourceKey, boolean required) {
|
||||
final IdeaPlugin ideaPlugin = DomUtil.getParentOfType(domElement, IdeaPlugin.class, true);
|
||||
if (ideaPlugin == null) return;
|
||||
|
||||
final XmlElement resourceBundleTag = ideaPlugin.getResourceBundle().getXmlElement();
|
||||
@@ -103,15 +122,14 @@ public class PluginXmlCapitalizationInspection extends BasicDomElementsInspectio
|
||||
final PropertiesFileImpl bundleFile = ObjectUtils.tryCast(bundleReference.resolve(), PropertiesFileImpl.class);
|
||||
if (bundleFile == null) return;
|
||||
|
||||
final String resourceKey = "action." + actionOrGroup.getId().getStringValue() + actionOrGroupText.mySuffix;
|
||||
final Property property = ObjectUtils.tryCast(bundleFile.findPropertyByKey(resourceKey), Property.class);
|
||||
if (property == null) {
|
||||
if (actionOrGroupText.myRequired.apply(actionOrGroup)) {
|
||||
holder.createProblem(actionOrGroup, "Missing resource bundle key '" + resourceKey + "'");
|
||||
if (required) {
|
||||
holder.createProblem(domElement, "Missing resource bundle key '" + resourceKey + "'");
|
||||
}
|
||||
}
|
||||
else {
|
||||
highlightCapitalization(holder, actionOrGroup, property.getValue(), capitalization, property);
|
||||
highlightCapitalization(holder, domElement, property.getValue(), capitalization, property);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+3
@@ -8,3 +8,6 @@ action.BundleActionWrongCasing.description=lower case description
|
||||
|
||||
action.BundleGroupWrongCasing.text=group lower case text
|
||||
action.BundleGroupWrongCasing.description=group lower case description
|
||||
|
||||
action.OverrideBundleAction.ViaBundle.text=Action Text Override Via Bundle
|
||||
action.OverrideBundleAction.ViaBundleWrongCase.text=Action Text Override Via Bundle lower case
|
||||
+13
@@ -33,5 +33,18 @@
|
||||
|
||||
<group id="BundleGroupWithoutAnyKeys"/>
|
||||
<<warning descr="String 'group lower case description' is not properly capitalized. It should have sentence capitalization"><warning descr="String 'group lower case text' is not properly capitalized. It should have title capitalization">group</warning></warning> id="BundleGroupWrongCasing"/>
|
||||
|
||||
|
||||
<!-- override-text -->
|
||||
<action id="OverrideAction" text="Override Action Text">
|
||||
<override-text place="MainEditor" text="Main Editor Action Title"/>
|
||||
<override-text place="MainEditorWrong" text="<warning descr="String 'lower case' is not properly capitalized. It should have title capitalization">lower case</warning>"/>
|
||||
</action>
|
||||
|
||||
<action id="OverrideBundleAction" text="Override Bundle Action Text">
|
||||
<override-text place="ViaBundle"/>
|
||||
<<warning descr="String 'Action Text Override Via Bundle lower case' is not properly capitalized. It should have title capitalization">override-text</warning> place="ViaBundleWrongCase"/>
|
||||
<<warning descr="Missing resource bundle key 'action.OverrideBundleAction.ViaBundleMissingKey.text'">override-text</warning> place="ViaBundleMissingKey"/>
|
||||
</action>
|
||||
</actions>
|
||||
</idea-plugin>
|
||||
Reference in New Issue
Block a user