Package org.angularjs.codeInsight

Source Code of org.angularjs.codeInsight.AngularJSHtmlExtension

package org.angularjs.codeInsight;

import com.intellij.psi.PsiFile;
import com.intellij.psi.impl.source.xml.SchemaPrefix;
import com.intellij.psi.xml.XmlAttribute;
import com.intellij.psi.xml.XmlTag;
import com.intellij.xml.HtmlXmlExtension;
import org.angularjs.index.AngularIndexUtil;

/**
* @author Dennis.Ushakov
*/
public class AngularJSHtmlExtension extends HtmlXmlExtension {
  @Override
  public boolean isAvailable(PsiFile file) {
    return super.isAvailable(file) && AngularIndexUtil.hasAngularJS(file.getProject());
  }

  @Override
  public boolean isRequiredAttributeImplicitlyPresent(XmlTag tag, String attrName) {
    for (XmlAttribute attribute : tag.getAttributes()) {
      if (("ng-" + attrName).equals(DirectiveUtil.normalizeAttributeName(attribute.getName()))) {
        return true;
      }
    }

    return super.isRequiredAttributeImplicitlyPresent(tag, attrName);
  }

  @Override
  public SchemaPrefix getPrefixDeclaration(XmlTag context, String namespacePrefix) {
    if ("ng".equals(namespacePrefix)) {
      return new SchemaPrefix(null, null, namespacePrefix);
    }
    return super.getPrefixDeclaration(context, namespacePrefix);
  }
}
TOP

Related Classes of org.angularjs.codeInsight.AngularJSHtmlExtension

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.