类com.intellij.psi.PsiElementVisitor源码实例Demo

下面列出了怎么用com.intellij.psi.PsiElementVisitor的API类实例代码及写法,或者点击链接到github查看源代码。

@NotNull
public PsiElementVisitor buildVisitor(final @NotNull ProblemsHolder holder, boolean isOnTheFly) {
    if(!Symfony2ProjectComponent.isEnabled(holder.getProject())) {
        return super.buildVisitor(holder, isOnTheFly);
    }

    return new PsiElementVisitor() {
        @Override
        public void visitElement(PsiElement element) {
            if(TwigPattern.getAutocompletableRoutePattern().accepts(element) && TwigUtil.isValidStringWithoutInterpolatedOrConcat(element)) {
                invoke(element, holder);
            }

            super.visitElement(element);
        }
    };
}
 
@NotNull
@Override
public PsiElementVisitor buildRealVisitor(@NotNull ProblemsHolder problemsHolder, boolean b) {
    return new PhpElementVisitor() {

        @Override
        public void visitPhpClassReference(ClassReference classReference) {
            Set<String> deprecatedClassNames = getDeprecatedClassNames(classReference.getProject());
            if (deprecatedClassNames.contains(classReference.getFQN())) {
                problemsHolder.registerProblem(classReference, "Class scheduled for removal in upcoming TYPO3 version, consider using an alternative");
            }

            super.visitPhpClassReference(classReference);
        }
    };
}
 
源代码3 项目: BashSupport   文件: EvaluateExpansionInspection.java
@NotNull
@Override
public PsiElementVisitor buildVisitor(@NotNull final ProblemsHolder holder, final boolean isOnTheFly) {
    return new BashVisitor() {
        @Override
        public void visitExpansion(BashExpansion expansion) {
            if (isOnTheFly && expansion.isValidExpansion()) {
                boolean bash4 = BashProjectSettings.storedSettings(holder.getProject()).isSupportBash4();
                holder.registerProblem(expansion, "Evaluate expansion", new EvaluateExpansionQuickfix(expansion, bash4));
            }
        }
    };
}
 
@Nonnull
@Override
public PsiElementVisitor buildVisitor(@Nonnull ProblemsHolder holder, boolean isOnTheFly)
{
	if(Unity3dModuleExtensionUtil.getRootModule(holder.getProject()) == null)
	{
		return PsiElementVisitor.EMPTY_VISITOR;
	}

	return new CSharpElementVisitor()
	{
		@Override
		@RequiredReadAction
		public void visitMethodDeclaration(CSharpMethodDeclaration declaration)
		{
			UnityFunctionManager.FunctionInfo magicMethod = UnityEventCSharpMethodLineMarkerProvider.findMagicMethod(declaration);
			if(magicMethod != null)
			{
				PsiElement codeBlock = declaration.getCodeBlock().getElement();
				if(codeBlock == null || codeBlock instanceof CSharpBlockStatementImpl && ((CSharpBlockStatementImpl) codeBlock).getStatements().length == 0)
				{
					PsiElement nameIdentifier = declaration.getNameIdentifier();
					assert nameIdentifier != null;
					holder.registerProblem(nameIdentifier, Unity3dBundle.message("empty.magic.method.inspection.message"), new RemoveMethodFix(declaration));
				}
			}
		}
	};
}
 
@NotNull
@Override
public PsiElementVisitor buildVisitor(final @NotNull ProblemsHolder holder, boolean isOnTheFly) {
    return new PsiElementVisitor() {
        @Override
        public void visitElement(PsiElement element) {
            if (element instanceof PhpDocTag && AnnotationUtil.isAnnotationPhpDocTag((PhpDocTag) element)) {
                visitAnnotationDocTag((PhpDocTag) element, holder);
            }

            super.visitElement(element);
        }
    };
}
 
@Nonnull
@Override
public PsiElementVisitor buildVisitor(@Nonnull ProblemsHolder holder, boolean isOnTheFly)
{
	if(Unity3dModuleExtensionUtil.getRootModule(holder.getProject()) == null)
	{
		return PsiElementVisitor.EMPTY_VISITOR;
	}

	return new CSharpElementVisitor()
	{
		@Override
		@RequiredReadAction
		public void visitMethodDeclaration(CSharpMethodDeclaration declaration)
		{
			String name = declaration.getName();
			if("OnGUI".equals(name))
			{
				UnityFunctionManager.FunctionInfo magicMethod = UnityEventCSharpMethodLineMarkerProvider.findMagicMethod(declaration);
				if(magicMethod != null)
				{
					PsiElement nameIdentifier = declaration.getNameIdentifier();
					assert nameIdentifier != null;
					holder.registerProblem(nameIdentifier, Unity3dBundle.message("ongui.method.inspection.message"), new UnityEmptyMagicMethodInspection.RemoveMethodFix(declaration));
				}
			}
		}
	};
}
 
@NotNull
@Override
public PsiElementVisitor buildVisitor(@NotNull ProblemsHolder problemsHolder, boolean b) {
    if (!TYPO3CMSProjectSettings.getInstance(problemsHolder.getProject()).pluginEnabled) {
        return new PhpElementVisitor() {
        };
    }

    return buildRealVisitor(problemsHolder, b);
}
 
@NotNull
@Override
public PsiElementVisitor buildRealVisitor(@NotNull ProblemsHolder problemsHolder, boolean b) {
    return new PhpElementVisitor() {
        @Override
        public void visitPhpConstantReference(ConstantReference reference) {
            if (DeprecationUtility.isDeprecated(problemsHolder.getProject(), reference)) {
                problemsHolder.registerProblem(reference, "Constant scheduled for removal in upcoming TYPO3 version, consider using an alternative");
            }

            super.visitPhpConstantReference(reference);
        }
    };
}
 
源代码9 项目: intellij-haskforce   文件: HaskellBkindImpl.java
public void accept(@NotNull PsiElementVisitor visitor) {
  if (visitor instanceof HaskellVisitor) accept((HaskellVisitor)visitor);
  else super.accept(visitor);
}
 
源代码10 项目: intellij-xquery   文件: XQueryPITestImpl.java
public void accept(@NotNull PsiElementVisitor visitor) {
  if (visitor instanceof XQueryVisitor) accept((XQueryVisitor)visitor);
  else super.accept(visitor);
}
 
public void accept(@NotNull PsiElementVisitor visitor) {
  if (visitor instanceof CypherVisitor) accept((CypherVisitor)visitor);
  else super.accept(visitor);
}
 
public void accept(@NotNull PsiElementVisitor visitor) {
  if (visitor instanceof MelVisitor) accept((MelVisitor)visitor);
  else super.accept(visitor);
}
 
public void accept(@NotNull PsiElementVisitor visitor) {
  if (visitor instanceof CypherVisitor) accept((CypherVisitor)visitor);
  else super.accept(visitor);
}
 
源代码14 项目: nix-idea   文件: NixExprSimpleImpl.java
public void accept(@NotNull PsiElementVisitor visitor) {
  if (visitor instanceof NixVisitor) accept((NixVisitor)visitor);
  else super.accept(visitor);
}
 
源代码15 项目: intellij-thrift   文件: ThriftConstListImpl.java
public void accept(@NotNull PsiElementVisitor visitor) {
  if (visitor instanceof ThriftVisitor) accept((ThriftVisitor)visitor);
  else super.accept(visitor);
}
 
源代码16 项目: mule-intellij-plugins   文件: WeaveHeaderImpl.java
public void accept(@NotNull PsiElementVisitor visitor) {
  if (visitor instanceof WeaveVisitor) accept((WeaveVisitor)visitor);
  else super.accept(visitor);
}
 
源代码17 项目: intellij-xquery   文件: XQuerySeparatorImpl.java
public void accept(@NotNull PsiElementVisitor visitor) {
  if (visitor instanceof XQueryVisitor) accept((XQueryVisitor)visitor);
  else super.accept(visitor);
}
 
public void accept(@NotNull PsiElementVisitor visitor) {
  if (visitor instanceof GraphQLVisitor) accept((GraphQLVisitor)visitor);
  else super.accept(visitor);
}
 
源代码19 项目: intellij-yang   文件: YangTypeBodyStmtsImpl.java
public void accept(@NotNull PsiElementVisitor visitor) {
  if (visitor instanceof YangVisitor) ((YangVisitor)visitor).visitTypeBodyStmts(this);
  else super.accept(visitor);
}
 
public void accept(@NotNull PsiElementVisitor visitor) {
  if (visitor instanceof SQFPsiVisitor) accept((SQFPsiVisitor)visitor);
  else super.accept(visitor);
}
 
源代码21 项目: intellij-haskforce   文件: HaskellCdeclImpl.java
public void accept(@NotNull PsiElementVisitor visitor) {
  if (visitor instanceof HaskellVisitor) accept((HaskellVisitor)visitor);
  else super.accept(visitor);
}
 
源代码22 项目: arma-intellij-plugin   文件: SQFPsiCommandImpl.java
public void accept(@NotNull PsiElementVisitor visitor) {
  if (visitor instanceof SQFPsiVisitor) accept((SQFPsiVisitor)visitor);
  else super.accept(visitor);
}
 
源代码23 项目: mule-intellij-plugins   文件: WeaveDataTypeImpl.java
public void accept(@NotNull PsiElementVisitor visitor) {
  if (visitor instanceof WeaveVisitor) accept((WeaveVisitor)visitor);
  else super.accept(visitor);
}
 
public void accept(@NotNull PsiElementVisitor visitor) {
  if (visitor instanceof CypherVisitor) accept((CypherVisitor)visitor);
  else super.accept(visitor);
}
 
public void accept(@NotNull PsiElementVisitor visitor) {
  if (visitor instanceof YangVisitor) ((YangVisitor)visitor).visitLeafrefSpecification(this);
  else super.accept(visitor);
}
 
public void accept(@NotNull PsiElementVisitor visitor) {
  if (visitor instanceof WeaveVisitor) accept((WeaveVisitor)visitor);
  else super.accept(visitor);
}
 
public void accept(@NotNull PsiElementVisitor visitor) {
  if (visitor instanceof XQueryVisitor) accept((XQueryVisitor)visitor);
  else super.accept(visitor);
}
 
源代码28 项目: intellij-xquery   文件: XQueryEscapeQuotImpl.java
public void accept(@NotNull PsiElementVisitor visitor) {
  if (visitor instanceof XQueryVisitor) accept((XQueryVisitor)visitor);
  else super.accept(visitor);
}
 
@NotNull
@Override
public PsiElementVisitor buildVisitor(@NotNull ProblemsHolder problemsHolder, boolean b) {
    if (!TYPO3CMSProjectSettings.getInstance(problemsHolder.getProject()).pluginEnabled) {
        return new PhpElementVisitor() {
        };
    }

    // the internal type was deprecated on 9 and dropped on 10
    if (TYPO3Utility.compareMajorMinorVersion(problemsHolder.getProject(), "9.0") < 0) {
        return new PhpElementVisitor() {
        };
    }

    return new PhpElementVisitor() {
        @Override
        public void visitPhpElement(PhpPsiElement element) {

            boolean isArrayStringValue = PhpElementsUtil.isStringArrayValue().accepts(element);
            if (!isArrayStringValue || !insideTCAColumnDefinition(element)) {
                return;
            }


            String arrayIndex = extractArrayIndexFromValue(element);
            if (arrayIndex != null && arrayIndex.equals("internal_type")) {
                if (element instanceof StringLiteralExpression) {
                    String internalType = ((StringLiteralExpression) element).getContents();

                    if (!internalType.equals("file_reference") && !internalType.equals("file")) {
                        return;
                    }

                    // the internal type was deprecated on 9 and dropped on 10
                    if (TYPO3Utility.compareMajorMinorVersion(problemsHolder.getProject(), "10.0") < 0) {
                        problemsHolder.registerProblem(element, String.format("Internal type '%s' is deprecated, will be removed with v10.0", internalType), ProblemHighlightType.LIKE_DEPRECATED);

                        return;
                    }

                    problemsHolder.registerProblem(element, String.format("Internal type '%s' was removed prior to v10.0", internalType), ProblemHighlightType.GENERIC_ERROR_OR_WARNING);
                }
            }
        }
    };
}
 
public void accept(@NotNull PsiElementVisitor visitor) {
  if (visitor instanceof CypherVisitor) accept((CypherVisitor)visitor);
  else super.accept(visitor);
}
 
 类所在包
 同包方法