@Override public void init(PsiElement element){ myDecl = (XmlAttributeDecl) element; myRequired = myDecl.isAttributeRequired(); myFixed = myDecl.isAttributeFixed(); myEnumerated = myDecl.isEnumerated(); }
@Override public ElementPattern<? extends PsiElement> getPattern() { return or( XmlPatterns.xmlTag().withMetaData( or(StandardPatterns.instanceOf(XmlElementDescriptor.class), StandardPatterns.instanceOf(XmlAttributeDescriptor.class)) ), psiElement(XmlElementDecl.class), psiElement(XmlAttributeDecl.class), XmlPatterns.xmlTag().withDescriptor( or(StandardPatterns.instanceOf(XmlElementDescriptor.class), StandardPatterns.instanceOf(XmlAttributeDescriptor.class)) ) ); }
@Override public ElementPattern<? extends PsiElement> getPattern() { return or( XmlPatterns.xmlTag().withMetaData( or(PlatformPatterns.instanceOf(XmlElementDescriptor.class), PlatformPatterns.instanceOf(XmlAttributeDescriptor.class)) ), psiElement(XmlElementDecl.class), psiElement(XmlAttributeDecl.class), XmlPatterns.xmlTag().withDescriptor( or(PlatformPatterns.instanceOf(XmlElementDescriptor.class), PlatformPatterns.instanceOf(XmlAttributeDescriptor.class)) ) ); }
@Override public void contributeMetaData(final MetaDataRegistrar registrar) { { registrar.registerMetaData(new AndFilter(new NamespaceFilter(XmlUtil.SCHEMA_URIS), new ClassFilter(XmlDocument.class)), SchemaNSDescriptor.class); registrar.registerMetaData(new AndFilter(XmlTagFilter.INSTANCE, new NamespaceFilter(XmlUtil.SCHEMA_URIS), new XmlTextFilter("schema")), SchemaNSDescriptor.class); } { registrar.registerMetaData(new OrFilter(new AndFilter(new ContentFilter(new OrFilter(new ClassFilter(XmlElementDecl.class), new ClassFilter(XmlEntityDecl.class), new ClassFilter (XmlConditionalSection.class), new ClassFilter(XmlEntityRef.class))), new ClassFilter(XmlDocument.class)), new ClassFilter(XmlMarkupDecl.class)), XmlNSDescriptorImpl.class); } { registrar.registerMetaData(new AndFilter(XmlTagFilter.INSTANCE, new NamespaceFilter(XmlUtil.SCHEMA_URIS), new XmlTextFilter("element")), XmlElementDescriptorImpl.class); } { registrar.registerMetaData(new AndFilter(XmlTagFilter.INSTANCE, new NamespaceFilter(XmlUtil.SCHEMA_URIS), new XmlTextFilter("attribute")), XmlAttributeDescriptorImpl.class); } { registrar.registerMetaData(new ClassFilter(XmlElementDecl.class), com.intellij.xml.impl.dtd.XmlElementDescriptorImpl.class); } { registrar.registerMetaData(new ClassFilter(XmlAttributeDecl.class), com.intellij.xml.impl.dtd.XmlAttributeDescriptorImpl.class); } { registrar.registerMetaData(new AndFilter(new ClassFilter(XmlDocument.class), new TargetNamespaceFilter(XmlUtil.XHTML_URI), new NamespaceFilter(XmlUtil.SCHEMA_URIS)), RelaxedHtmlFromSchemaNSDescriptor.class); } { registrar.registerMetaData(new AndFilter(XmlTagFilter.INSTANCE, new NamespaceFilter(XmlUtil.SCHEMA_URIS), new XmlTextFilter("complexType", "simpleType", "group", "attributeGroup")), NamedObjectDescriptor.class); } }
@Override @NotNull public String getType(@NotNull PsiElement element) { if(element instanceof XmlTag) { final PsiMetaData metaData = ((XmlTag) element).getMetaData(); if(metaData != null && metaData.getDeclaration() instanceof XmlTag) { return ((XmlTag) metaData.getDeclaration()).getName(); } return LangBundle.message("xml.terms.xml.tag"); } if(element instanceof XmlElementDecl) { return LangBundle.message("xml.terms.tag"); } else if(element instanceof XmlAttributeDecl) { return LangBundle.message("xml.terms.attribute"); } else if(element instanceof XmlAttributeValue) { return LangBundle.message("xml.terms.attribute.value"); } else if(element instanceof XmlEntityDecl) { return LangBundle.message("xml.terms.entity"); } else if(element instanceof XmlAttribute) { return LangBundle.message("xml.terms.attribute"); } else if(element instanceof XmlComment) { return LangBundle.message("xml.terms.variable"); } throw new IllegalArgumentException("Cannot get type for " + element); }
public XmlAttributeDescriptorImpl(XmlAttributeDecl decl) { init(decl); }
public void init(PsiElement element){ myDecl = (XmlAttributeDecl) element; myRequired = myDecl.isAttributeRequired(); myFixed = myDecl.isAttributeFixed(); myEnumerated = myDecl.isEnumerated(); }
@Override public boolean canFindUsagesFor(@NotNull PsiElement element) { return element instanceof XmlElementDecl || element instanceof XmlAttributeDecl || element instanceof XmlEntityDecl || element instanceof XmlTag || element instanceof XmlAttributeValue || element instanceof PsiFile || element instanceof XmlComment; }