mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
make DomElement#getXmlTag nullable and adapt some clients
inspired by https://github.com/JetBrains/intellij-community/pull/796
This commit is contained in:
@@ -162,7 +162,7 @@ public abstract class AntDomProject extends AntDomNamedElement implements Proper
|
||||
}
|
||||
|
||||
public AntInstallation getAntInstallation() {
|
||||
final AntConfigurationBase configuration = AntConfigurationBase.getInstance(getXmlTag().getProject());
|
||||
final AntConfigurationBase configuration = AntConfigurationBase.getInstance(getManager().getProject());
|
||||
AntInstallation antInstallation = null;
|
||||
if (configuration != null) {
|
||||
antInstallation = configuration.getProjectDefaultAnt();
|
||||
|
||||
@@ -16,12 +16,18 @@
|
||||
package org.jetbrains.idea.devkit.dom;
|
||||
|
||||
import com.intellij.ide.presentation.Presentation;
|
||||
import com.intellij.psi.xml.XmlTag;
|
||||
import com.intellij.util.xml.*;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@Presentation(typeName = "Extension")
|
||||
public interface Extension extends DomElement {
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
XmlTag getXmlTag();
|
||||
|
||||
@NameValue
|
||||
@Required(value = false)
|
||||
GenericAttributeValue<String> getId();
|
||||
|
||||
@@ -18,6 +18,7 @@ package org.jetbrains.idea.devkit.dom;
|
||||
import com.intellij.ide.presentation.Presentation;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiField;
|
||||
import com.intellij.psi.xml.XmlTag;
|
||||
import com.intellij.util.xml.*;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -33,6 +34,11 @@ public interface ExtensionPoint extends DomElement {
|
||||
IDEA_APPLICATION
|
||||
}
|
||||
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
XmlTag getXmlTag();
|
||||
|
||||
@NotNull
|
||||
@Stubbed
|
||||
@NameValue
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package org.jetbrains.idea.devkit.dom;
|
||||
|
||||
import com.intellij.psi.xml.XmlTag;
|
||||
import com.intellij.util.xml.*;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -24,6 +25,10 @@ import java.util.List;
|
||||
|
||||
public interface Extensions extends DomElement {
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
XmlTag getXmlTag();
|
||||
|
||||
@NonNls
|
||||
String DEFAULT_PREFIX = "com.intellij";
|
||||
|
||||
|
||||
@@ -99,9 +99,9 @@ fun checkProperXmlFileForExtension(element: Extension,
|
||||
|
||||
for (childDescription in element.genericInfo.fixedChildrenDescriptions) {
|
||||
val domElement = childDescription.getValues(element).firstOrNull() ?: continue
|
||||
val text = domElement.xmlTag?.value?.text ?: continue
|
||||
val project = domElement.xmlTag.project
|
||||
val psiClass = JavaPsiFacade.getInstance(project).findClass(text, GlobalSearchScope.projectScope(project))
|
||||
val tag = domElement.xmlTag ?: continue
|
||||
val project = tag.project
|
||||
val psiClass = JavaPsiFacade.getInstance(project).findClass(tag.value.text, GlobalSearchScope.projectScope(project))
|
||||
if (psiClass != null && checkProperXmlFileForClass(element, holder, psiClass, ignoreClassList)) return
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,6 @@ import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.util.InheritanceUtil;
|
||||
import com.intellij.psi.xml.XmlAttribute;
|
||||
import com.intellij.psi.xml.XmlAttributeValue;
|
||||
import com.intellij.psi.xml.XmlTag;
|
||||
import com.intellij.refactoring.rename.UnresolvableCollisionUsageInfo;
|
||||
import com.intellij.refactoring.rename.naming.AutomaticRenamer;
|
||||
import com.intellij.refactoring.rename.naming.AutomaticRenamerFactory;
|
||||
@@ -91,11 +90,7 @@ public class InspectionAutomaticRenamerFactory implements AutomaticRenamerFactor
|
||||
@Nullable
|
||||
private static XmlAttribute getInspectionShortNameAttribute(Module module, PsiClass inspectionClass) {
|
||||
Extension extension = InspectionDescriptionInfo.findExtension(module, inspectionClass);
|
||||
if (extension == null) {
|
||||
return null;
|
||||
}
|
||||
XmlTag tag = extension.getXmlTag();
|
||||
return tag == null ? null : tag.getAttribute("shortName");
|
||||
return extension == null ? null : extension.getXmlTag().getAttribute("shortName");
|
||||
}
|
||||
|
||||
private static boolean isGetShortNameMethodOverridden(PsiClass inspectionClass) {
|
||||
|
||||
@@ -21,7 +21,6 @@ import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.idea.devkit.dom.Extension;
|
||||
import org.jetbrains.idea.devkit.dom.ExtensionPoint;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.function.BiFunction;
|
||||
|
||||
@@ -89,9 +88,6 @@ public abstract class ExtensionLocator {
|
||||
@Override
|
||||
public List<ExtensionCandidate> findCandidates() {
|
||||
XmlTag epTag = myExtensionPoint.getXmlTag();
|
||||
if (epTag == null) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
// We must search for the last part of EP name, because for instance 'com.intellij.console.folding' extension
|
||||
// may be declared as <extensions defaultExtensionNs="com"><intellij.console.folding ...
|
||||
|
||||
@@ -36,6 +36,7 @@ import java.lang.reflect.Type;
|
||||
public interface DomElement extends AnnotatedElement, UserDataHolder {
|
||||
DomElement[] EMPTY_ARRAY = new DomElement[0];
|
||||
|
||||
@Nullable
|
||||
XmlTag getXmlTag();
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user