當前位置: 首頁>>代碼示例>>Java>>正文


Java XmlHighlightVisitor類代碼示例

本文整理匯總了Java中com.intellij.codeInsight.daemon.impl.analysis.XmlHighlightVisitor的典型用法代碼示例。如果您正苦於以下問題:Java XmlHighlightVisitor類的具體用法?Java XmlHighlightVisitor怎麽用?Java XmlHighlightVisitor使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


XmlHighlightVisitor類屬於com.intellij.codeInsight.daemon.impl.analysis包,在下文中一共展示了XmlHighlightVisitor類的14個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: doCheckRefs

import com.intellij.codeInsight.daemon.impl.analysis.XmlHighlightVisitor; //導入依賴的package包/類
private static void doCheckRefs(final XmlElement element, final ProblemsHolder holder) {
  for (PsiReference ref : element.getReferences()) {
    ProgressManager.checkCanceled();
    if (XmlHighlightVisitor.hasBadResolve(ref, true)) {
      if (ref.getElement() instanceof XmlElementContentSpec) {
        final String image = ref.getCanonicalText();
        if (image.equals("-") || image.equals("O")) continue;
      }
      holder.registerProblem(ref);
    }
  }
}
 
開發者ID:jskierbi,項目名稱:intellij-ce-playground,代碼行數:13,代碼來源:CheckDtdReferencesInspection.java

示例2: updateMap

import com.intellij.codeInsight.daemon.impl.analysis.XmlHighlightVisitor; //導入依賴的package包/類
private void updateMap(@NotNull final XmlAttribute attribute, @NotNull final XmlAttributeValue value, final boolean soft) {
  final String id = XmlHighlightVisitor.getUnquotedValue(value, attribute.getParent());
  if (XmlUtil.isSimpleValue(id, value) &&
      PsiTreeUtil.getChildOfType(value, OuterLanguageElement.class) == null) {
    myHolder.registerId(id, value, soft);
  }
}
 
開發者ID:jskierbi,項目名稱:intellij-ce-playground,代碼行數:8,代碼來源:XmlRefCountHolder.java

示例3: checkValue

import com.intellij.codeInsight.daemon.impl.analysis.XmlHighlightVisitor; //導入依賴的package包/類
@Override
protected void checkValue(XmlAttributeValue value, XmlFile file, XmlRefCountHolder refHolder, XmlTag tag, ProblemsHolder holder) {

  String idRef = XmlHighlightVisitor.getUnquotedValue(value, tag);

  if (tag instanceof HtmlTag) {
    idRef = idRef.toLowerCase();
  }

  if (XmlUtil.isSimpleValue(idRef, value) && refHolder.isIdReferenceValue(value)) {
    boolean hasIdDeclaration = refHolder.hasIdDeclaration(idRef);
    if (!hasIdDeclaration && tag instanceof HtmlTag) {
      hasIdDeclaration = refHolder.hasIdDeclaration(value.getValue());
    }

    if (!hasIdDeclaration) {
      for(XmlIdContributor contributor: Extensions.getExtensions(XmlIdContributor.EP_NAME)) {
        if (contributor.suppressExistingIdValidation(file)) {
          return;
        }
      }

      final FileViewProvider viewProvider = tag.getContainingFile().getViewProvider();
      if (viewProvider instanceof MultiplePsiFilesPerDocumentFileViewProvider) {
        holder.registerProblem(value, XmlErrorMessages.message("invalid.id.reference"), ProblemHighlightType.LIKE_UNKNOWN_SYMBOL,
                               new XmlDeclareIdInCommentAction(idRef));

      }
      else {
        holder.registerProblem(value, XmlErrorMessages.message("invalid.id.reference"), ProblemHighlightType.LIKE_UNKNOWN_SYMBOL);
      }
    }
  }
}
 
開發者ID:jskierbi,項目名稱:intellij-ce-playground,代碼行數:35,代碼來源:XmlInvalidIdInspection.java

示例4: doHighlighting

import com.intellij.codeInsight.daemon.impl.analysis.XmlHighlightVisitor; //導入依賴的package包/類
@NotNull
@Override
protected List<HighlightInfo> doHighlighting() {
  if(myTestJustJaxpValidation) {
    XmlHighlightVisitor.setDoJaxpTesting(true);
  }

  final List<HighlightInfo> highlightInfos = super.doHighlighting();
  if(myTestJustJaxpValidation) {
    XmlHighlightVisitor.setDoJaxpTesting(false);
  }

  return highlightInfos;
}
 
開發者ID:jskierbi,項目名稱:intellij-ce-playground,代碼行數:15,代碼來源:XmlHighlightingTest.java

示例5: getReferencesByElement

import com.intellij.codeInsight.daemon.impl.analysis.XmlHighlightVisitor; //導入依賴的package包/類
@NotNull
@Override
public PsiReference[] getReferencesByElement(@NotNull PsiElement element, @NotNull ProcessingContext context) {

  if (XmlSchemaTagsProcessor.PROCESSING_FLAG.get() != null || context.get(SUPPRESS) != null) {
    return PsiReference.EMPTY_ARRAY;
  }
  @SuppressWarnings("unchecked") PsiElement host = getHost((T)element);
  if (host instanceof PsiLanguageInjectionHost && InjectedLanguageUtil.hasInjections((PsiLanguageInjectionHost)host)) {
    return PsiReference.EMPTY_ARRAY;
  }
  String unquotedValue = ElementManipulators.getValueText(element);
  if (XmlHighlightVisitor.skipValidation(element) || !XmlUtil.isSimpleValue(unquotedValue, element)) {
    return PsiReference.EMPTY_ARRAY;
  }
  @SuppressWarnings("unchecked") final Object descriptor = getDescriptor((T)element);
  if (descriptor instanceof XmlEnumerationDescriptor) {
    XmlEnumerationDescriptor enumerationDescriptor = (XmlEnumerationDescriptor)descriptor;

    if (enumerationDescriptor.isFixed() || enumerationDescriptor.isEnumerated((XmlElement)element)) {
      //noinspection unchecked
      return enumerationDescriptor.getValueReferences((XmlElement)element, unquotedValue);
    }
    else if (unquotedValue.equals(enumerationDescriptor.getDefaultValue())) {  // todo case insensitive
      return ContainerUtil.map2Array(enumerationDescriptor.getValueReferences((XmlElement)element, unquotedValue), PsiReference.class,
                                     new Function<PsiReference, PsiReference>() {
                                       @Override
                                       public PsiReference fun(PsiReference reference) {
                                         return PsiDelegateReference.createSoft(reference, true);
                                       }
                                     });
    }
  }
  return PsiReference.EMPTY_ARRAY;
}
 
開發者ID:jskierbi,項目名稱:intellij-ce-playground,代碼行數:36,代碼來源:XmlEnumeratedValueReferenceProvider.java

示例6: updateMap

import com.intellij.codeInsight.daemon.impl.analysis.XmlHighlightVisitor; //導入依賴的package包/類
private void updateMap(@NotNull final XmlAttribute attribute, @NotNull final XmlAttributeValue value, final boolean soft) {
  final String id = XmlHighlightVisitor.getUnquotedValue(value, attribute.getParent());
  if (XmlUtil.isSimpleXmlAttributeValue(id, value) &&
      PsiTreeUtil.getChildOfType(value, OuterLanguageElement.class) == null) {
    myHolder.registerId(id, value, soft);
  }
}
 
開發者ID:lshain-android-source,項目名稱:tools-idea,代碼行數:8,代碼來源:XmlRefCountHolder.java

示例7: checkValue

import com.intellij.codeInsight.daemon.impl.analysis.XmlHighlightVisitor; //導入依賴的package包/類
protected void checkValue(XmlAttributeValue value, XmlFile file, XmlRefCountHolder refHolder, XmlTag tag, ProblemsHolder holder) {

    String idRef = XmlHighlightVisitor.getUnquotedValue(value, tag);

    if (tag instanceof HtmlTag) {
      idRef = idRef.toLowerCase();
    }

    if (XmlUtil.isSimpleXmlAttributeValue(idRef, value) && refHolder.isIdReferenceValue(value)) {
      boolean hasIdDeclaration = refHolder.hasIdDeclaration(idRef);
      if (!hasIdDeclaration && tag instanceof HtmlTag) {
        hasIdDeclaration = refHolder.hasIdDeclaration(value.getValue());
      }

      if (!hasIdDeclaration) {
        for(XmlIdContributor contributor: Extensions.getExtensions(XmlIdContributor.EP_NAME)) {
          if (contributor.suppressExistingIdValidation(file)) {
            return;
          }
        }

        final FileViewProvider viewProvider = tag.getContainingFile().getViewProvider();
        if (viewProvider instanceof MultiplePsiFilesPerDocumentFileViewProvider) {
          holder.registerProblem(value, XmlErrorMessages.message("invalid.id.reference"), ProblemHighlightType.LIKE_UNKNOWN_SYMBOL,
                                 new XmlDeclareIdInCommentAction(idRef));

        }
        else {
          holder.registerProblem(value, XmlErrorMessages.message("invalid.id.reference"), ProblemHighlightType.LIKE_UNKNOWN_SYMBOL);
        }
      }
    }
  }
 
開發者ID:lshain-android-source,項目名稱:tools-idea,代碼行數:34,代碼來源:XmlInvalidIdInspection.java

示例8: checkValue

import com.intellij.codeInsight.daemon.impl.analysis.XmlHighlightVisitor; //導入依賴的package包/類
protected void checkValue(XmlAttributeValue value, XmlFile file, XmlRefCountHolder refHolder, XmlTag tag, ProblemsHolder holder) {

    String idRef = XmlHighlightVisitor.getUnquotedValue(value, tag);

    if (tag instanceof HtmlTag) {
      idRef = idRef.toLowerCase();
    }

    if (XmlUtil.isSimpleValue(idRef, value) && refHolder.isIdReferenceValue(value)) {
      boolean hasIdDeclaration = refHolder.hasIdDeclaration(idRef);
      if (!hasIdDeclaration && tag instanceof HtmlTag) {
        hasIdDeclaration = refHolder.hasIdDeclaration(value.getValue());
      }

      if (!hasIdDeclaration) {
        for(XmlIdContributor contributor: Extensions.getExtensions(XmlIdContributor.EP_NAME)) {
          if (contributor.suppressExistingIdValidation(file)) {
            return;
          }
        }

        final FileViewProvider viewProvider = tag.getContainingFile().getViewProvider();
        if (viewProvider instanceof MultiplePsiFilesPerDocumentFileViewProvider) {
          holder.registerProblem(value, XmlErrorMessages.message("invalid.id.reference"), ProblemHighlightType.LIKE_UNKNOWN_SYMBOL,
                                 new XmlDeclareIdInCommentAction(idRef));

        }
        else {
          holder.registerProblem(value, XmlErrorMessages.message("invalid.id.reference"), ProblemHighlightType.LIKE_UNKNOWN_SYMBOL);
        }
      }
    }
  }
 
開發者ID:consulo,項目名稱:consulo-xml,代碼行數:34,代碼來源:XmlInvalidIdInspection.java

示例9: getReferencesByElement

import com.intellij.codeInsight.daemon.impl.analysis.XmlHighlightVisitor; //導入依賴的package包/類
@NotNull
@Override
public PsiReference[] getReferencesByElement(@NotNull PsiElement element, @NotNull ProcessingContext context)
{

	if(XmlSchemaTagsProcessor.PROCESSING_FLAG.get() != null || context.get(SUPPRESS) != null)
	{
		return PsiReference.EMPTY_ARRAY;
	}
	@SuppressWarnings("unchecked") PsiElement host = getHost((T) element);
	if(host instanceof PsiLanguageInjectionHost && InjectedLanguageUtil.hasInjections((PsiLanguageInjectionHost) host))
	{
		return PsiReference.EMPTY_ARRAY;
	}
	String unquotedValue = ElementManipulators.getValueText(element);
	if(XmlHighlightVisitor.skipValidation(element) || !XmlUtil.isSimpleValue(unquotedValue, element))
	{
		return PsiReference.EMPTY_ARRAY;
	}
	@SuppressWarnings("unchecked") final Object descriptor = getDescriptor((T) element);
	if(descriptor instanceof XmlEnumerationDescriptor)
	{
		XmlEnumerationDescriptor enumerationDescriptor = (XmlEnumerationDescriptor) descriptor;

		if(enumerationDescriptor.isFixed() || enumerationDescriptor.isEnumerated((XmlElement) element))
		{
			//noinspection unchecked
			return enumerationDescriptor.getValueReferences((XmlElement) element, unquotedValue);
		}
		else if(unquotedValue.equals(enumerationDescriptor.getDefaultValue()))
		{  // todo case insensitive
			return ContainerUtil.map2Array(enumerationDescriptor.getValueReferences((XmlElement) element, unquotedValue), PsiReference.class, reference -> PsiDelegateReference.createSoft
					(reference, true));
		}
	}
	return PsiReference.EMPTY_ARRAY;
}
 
開發者ID:consulo,項目名稱:consulo-xml,代碼行數:38,代碼來源:XmlEnumeratedValueReferenceProvider.java

示例10: hasBadResolve

import com.intellij.codeInsight.daemon.impl.analysis.XmlHighlightVisitor; //導入依賴的package包/類
private static boolean hasBadResolve(PsiReference reference) {
  return XmlHighlightVisitor.hasBadResolve(reference, true);
}
 
開發者ID:jskierbi,項目名稱:intellij-ce-playground,代碼行數:4,代碼來源:DomHighlightingHelperImpl.java

示例11: DomElementResolveProblemDescriptorImpl

import com.intellij.codeInsight.daemon.impl.analysis.XmlHighlightVisitor; //導入依賴的package包/類
public DomElementResolveProblemDescriptorImpl(@NotNull final GenericDomValue domElement, @NotNull final PsiReference reference, LocalQuickFix... quickFixes) {
   super(domElement, reference instanceof FileReference ? ProblemsHolder.unresolvedReferenceMessage(reference) : XmlHighlightVisitor.getErrorDescription(reference), HighlightSeverity.ERROR, quickFixes);
   myReference = reference;
}
 
開發者ID:jskierbi,項目名稱:intellij-ce-playground,代碼行數:5,代碼來源:DomElementResolveProblemDescriptorImpl.java

示例12: checkTag

import com.intellij.codeInsight.daemon.impl.analysis.XmlHighlightVisitor; //導入依賴的package包/類
@Override
protected void checkTag(@NotNull final XmlTag tag, @NotNull final ProblemsHolder holder, final boolean isOnTheFly) {
  if (!(tag.getParent() instanceof XmlTag)) {
    final PsiFile psiFile = tag.getContainingFile();
    if (!(psiFile instanceof XmlFile)) {
      return;
    }

    XmlFile xmlFile = (XmlFile) psiFile;

    final XmlDocument document = xmlFile.getDocument();
    if (document == null) {
      return;
    }

    XmlProlog prolog = document.getProlog();
    if (prolog == null || XmlHighlightVisitor.skipValidation(prolog)) {
      return;
    }

    final XmlDoctype doctype = prolog.getDoctype();

    if (doctype == null) {
      return;
    }

    XmlElement nameElement = doctype.getNameElement();

    if (nameElement == null) {
      return;
    }

    String name = tag.getName();
    String text = nameElement.getText();
    if (tag instanceof HtmlTag) {
      name = name.toLowerCase();
      text = text.toLowerCase();
    }

    if (!name.equals(text)) {
      name = XmlUtil.findLocalNameByQualifiedName(name);

      if (!name.equals(text)) {
        if (tag instanceof HtmlTag) {
          return; // it is legal to have html / head / body omitted
        }
        final LocalQuickFix localQuickFix = new MyLocalQuickFix(doctype.getNameElement().getText());

        holder.registerProblem(XmlChildRole.START_TAG_NAME_FINDER.findChild(tag.getNode()).getPsi(),
          XmlErrorMessages.message("wrong.root.element"),
          ProblemHighlightType.LIKE_UNKNOWN_SYMBOL, localQuickFix
        );

        final ASTNode astNode = XmlChildRole.CLOSING_TAG_NAME_FINDER.findChild(tag.getNode());
        if (astNode != null) {
          holder.registerProblem(astNode.getPsi(),
            XmlErrorMessages.message("wrong.root.element"),
            ProblemHighlightType.LIKE_UNKNOWN_SYMBOL, localQuickFix
          );
        }
      }
    }
  }
}
 
開發者ID:jskierbi,項目名稱:intellij-ce-playground,代碼行數:65,代碼來源:XmlWrongRootElementInspection.java

示例13: HtmlClosingTagErrorFilter

import com.intellij.codeInsight.daemon.impl.analysis.XmlHighlightVisitor; //導入依賴的package包/類
public HtmlClosingTagErrorFilter(XmlHighlightVisitor xmlHighlightVisitor) {
  assert xmlHighlightVisitor != null;
}
 
開發者ID:jskierbi,項目名稱:intellij-ce-playground,代碼行數:4,代碼來源:HtmlClosingTagErrorFilter.java

示例14: DomElementResolveProblemDescriptorImpl

import com.intellij.codeInsight.daemon.impl.analysis.XmlHighlightVisitor; //導入依賴的package包/類
public DomElementResolveProblemDescriptorImpl(@NotNull final GenericDomValue domElement, @NotNull final PsiReference reference, LocalQuickFix... quickFixes) {
  super(domElement, reference instanceof FileReference ? ProblemsHolder.unresolvedReferenceMessage(reference) : XmlHighlightVisitor.getErrorDescription(reference), HighlightSeverity.ERROR, quickFixes);
  myReference = reference;
}
 
開發者ID:consulo,項目名稱:consulo-xml,代碼行數:5,代碼來源:DomElementResolveProblemDescriptorImpl.java


注:本文中的com.intellij.codeInsight.daemon.impl.analysis.XmlHighlightVisitor類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。