package com.intellij.xml; import com.intellij.ide.highlighter.HtmlFileType; import com.intellij.psi.PsiFile; import com.intellij.psi.xml.XmlDocument; import com.intellij.xml.util.HtmlUtil; import org.jetbrains.annotations.Nullable; /** * @author Dmitry Avdeev * Date: 24.10.13 */ public class HtmlXmlExtension extends DefaultXmlExtension { @Override public boolean isAvailable(PsiFile file) { return file.getFileType() == HtmlFileType.INSTANCE; } @Nullable @Override public String[][] getNamespacesFromDocument(XmlDocument parent, boolean declarationsExist) { String[][] namespaces = super.getNamespacesFromDocument(parent, false); if (namespaces == null || !HtmlUtil.isHtml5Document(parent)) return namespaces; for (String[] namespace : namespaces) { if ("xlink".equals(namespace[0])) return namespaces; } String[][] newNamespaces = new String[namespaces.length + 1][2]; System.arraycopy(namespaces, 0, newNamespaces, 0, namespaces.length); newNamespaces[namespaces.length] = new String[] {"xlink", "http://www.w3.org/1999/xlink"}; return newNamespaces; } }