mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[devkit] IdeaVersion: "since|until-build" -> BuildNumber
GitOrigin-RevId: 7cdbfa441780467c60b398c62ef39dc283376893
This commit is contained in:
committed by
intellij-monorepo-bot
parent
2b18c7283f
commit
2526c4eebf
+1
-1
@@ -160,7 +160,7 @@ inspections.plugin.xml.ep.both.name.and.qualifiedName=<extensionPoint> must not
|
||||
inspections.plugin.xml.ep.missing.name.and.qualifiedName=<extensionPoint> must specify either 'name' or 'qualifiedName' attribute
|
||||
inspections.plugin.xml.use.defaultExtensionNs=Use defaultExtensionNs instead
|
||||
inspections.plugin.xml.specify.defaultExtensionNs.explicitly=Specify defaultExtensionNs="{0}" explicitly
|
||||
inspections.plugin.xml.until.since.build.invalid=<html>Invalid build number ''{0}'' (<a href="http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/build_number_ranges.html">Documentation</a>)</html>
|
||||
inspections.plugin.xml.invalid.build.number=<html>Invalid build number ''{0}'' (<a href="http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/build_number_ranges.html">Documentation</a>)</html>
|
||||
inspections.plugin.xml.until.build.use.asterisk.instead.of.big.number=Don''t use ''{0}'' in ''until-build'', use ''*'' instead
|
||||
inspections.plugin.xml.until.build.misleading.plain.number=Plain numbers in ''until-build'' attribute may be misleading. ''{0}'' means the same as ''{0}.0'', so the plugin won''t be compatible with {0}.* builds. It''s better to specify ''{1}'' instead.
|
||||
inspections.plugin.xml.until.build.must.be.greater.than.since.build="until-build" must be greater than "since-build"
|
||||
|
||||
@@ -15,22 +15,24 @@
|
||||
*/
|
||||
package org.jetbrains.idea.devkit.dom;
|
||||
|
||||
import com.intellij.util.xml.DomElement;
|
||||
import com.intellij.util.xml.GenericAttributeValue;
|
||||
import com.intellij.util.xml.Required;
|
||||
import com.intellij.util.xml.Stubbed;
|
||||
import com.intellij.openapi.util.BuildNumber;
|
||||
import com.intellij.util.xml.*;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.idea.devkit.DevKitBundle;
|
||||
|
||||
public interface IdeaVersion extends DomElement {
|
||||
|
||||
@NotNull
|
||||
@Required
|
||||
@Stubbed
|
||||
GenericAttributeValue<String> getSinceBuild();
|
||||
@Convert(BuildNumberConverter.class)
|
||||
GenericAttributeValue<BuildNumber> getSinceBuild();
|
||||
|
||||
@NotNull
|
||||
@Stubbed
|
||||
GenericAttributeValue<String> getUntilBuild();
|
||||
@Convert(BuildNumberConverter.class)
|
||||
GenericAttributeValue<BuildNumber> getUntilBuild();
|
||||
|
||||
|
||||
/**
|
||||
@@ -47,4 +49,26 @@ public interface IdeaVersion extends DomElement {
|
||||
@NotNull
|
||||
@Deprecated
|
||||
GenericAttributeValue<String> getMax();
|
||||
|
||||
|
||||
class BuildNumberConverter extends Converter<BuildNumber> {
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public BuildNumber fromString(@Nullable String s, ConvertContext context) {
|
||||
return s == null ? null : BuildNumber.fromStringOrNull(s);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public String toString(@Nullable BuildNumber number, ConvertContext context) {
|
||||
return number == null ? null : number.asString();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public String getErrorMessage(@Nullable String s, ConvertContext context) {
|
||||
return DevKitBundle.message("inspections.plugin.xml.invalid.build.number", s);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -476,15 +476,15 @@ public class PluginXmlDomInspection extends BasicDomElementsInspection<IdeaPlugi
|
||||
highlightAttributeNotUsedAnymore(ideaVersion.getMax(), holder);
|
||||
highlightUntilBuild(ideaVersion, holder);
|
||||
|
||||
GenericAttributeValue<String> sinceBuild = ideaVersion.getSinceBuild();
|
||||
GenericAttributeValue<String> untilBuild = ideaVersion.getUntilBuild();
|
||||
GenericAttributeValue<BuildNumber> sinceBuild = ideaVersion.getSinceBuild();
|
||||
GenericAttributeValue<BuildNumber> untilBuild = ideaVersion.getUntilBuild();
|
||||
if (!DomUtil.hasXml(sinceBuild) &&
|
||||
!DomUtil.hasXml(untilBuild)) {
|
||||
return;
|
||||
}
|
||||
|
||||
BuildNumber sinceBuildNumber = parseBuildNumber(sinceBuild, holder);
|
||||
BuildNumber untilBuildNumber = parseBuildNumber(untilBuild, holder);
|
||||
BuildNumber sinceBuildNumber = sinceBuild.getValue();
|
||||
BuildNumber untilBuildNumber = untilBuild.getValue();
|
||||
if (sinceBuildNumber == null || untilBuildNumber == null) return;
|
||||
|
||||
int compare = Comparing.compare(sinceBuildNumber, untilBuildNumber);
|
||||
@@ -493,18 +493,6 @@ public class PluginXmlDomInspection extends BasicDomElementsInspection<IdeaPlugi
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private static BuildNumber parseBuildNumber(GenericAttributeValue<String> build,
|
||||
DomElementAnnotationHolder holder) {
|
||||
try {
|
||||
return BuildNumber.fromString(build.getStringValue());
|
||||
}
|
||||
catch (RuntimeException e) {
|
||||
holder.createProblem(build, DevKitBundle.message("inspections.plugin.xml.until.since.build.invalid", build.getStringValue()));
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private static void highlightUntilBuild(IdeaVersion ideaVersion, DomElementAnnotationHolder holder) {
|
||||
String untilBuild = ideaVersion.getUntilBuild().getStringValue();
|
||||
if (untilBuild != null && isStarSupported(ideaVersion.getSinceBuild().getStringValue())) {
|
||||
|
||||
@@ -120,8 +120,8 @@ class MissingRecentApiInspection : LocalInspectionTool() {
|
||||
private fun getSinceUntilRange(pluginXml: XmlFile): SinceUntilRange? {
|
||||
val ideaPlugin = DescriptorUtil.getIdeaPlugin(pluginXml) ?: return null
|
||||
val ideaVersion = ideaPlugin.rootElement.ideaVersion
|
||||
val sinceBuild = ideaVersion.sinceBuild.stringValue.orEmpty().let { BuildNumber.fromStringOrNull(it) }
|
||||
val untilBuild = ideaVersion.untilBuild.stringValue.orEmpty().let { BuildNumber.fromStringOrNull(it) }
|
||||
val sinceBuild = ideaVersion.sinceBuild.value
|
||||
val untilBuild = ideaVersion.untilBuild.value
|
||||
return SinceUntilRange(sinceBuild, untilBuild)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user