com.intellij.psi.util.PsiTreeUtil#skipWhitespacesForward ( )源码实例Demo

下面列出了com.intellij.psi.util.PsiTreeUtil#skipWhitespacesForward ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: intellij-latte   文件: LattePhpVariableUtil.java
public static boolean isNextDefinitionOperator(@NotNull PsiElement element) {
    PsiElement found = null;
    if (element instanceof LattePhpVariable && ((LattePhpVariable) element).getPhpStatementPart() != null) {
        found = ((LattePhpVariable) element).getPhpStatementPart().getPhpStatement();
    } else if (element.getParent() instanceof LattePhpArrayOfVariables) {
        found = element.getParent();
    }

    if (found == null) {
        LattePhpTypedArguments typedArgs = PsiTreeUtil.getParentOfType(element, LattePhpTypedArguments.class);
        found = typedArgs != null ? typedArgs : element;
    }

    PsiElement nextElement = PsiTreeUtil.skipWhitespacesForward(found);
    return nextElement != null && nextElement.getNode().getElementType() == LatteTypes.T_PHP_DEFINITION_OPERATOR;
}
 
源代码2 项目: intellij-latte   文件: LattePsiImplUtil.java
public static boolean isDefinitionInFor(@NotNull LattePhpVariable element) {
	LatteNetteAttrValue parentAttr = PsiTreeUtil.getParentOfType(element, LatteNetteAttrValue.class);
	if (parentAttr != null) {
		PsiElement nextElement = PsiTreeUtil.skipWhitespacesForward(element);
		if (nextElement == null || nextElement.getNode().getElementType() != LatteTypes.T_PHP_DEFINITION_OPERATOR) {
			return false;
		}
		PsiElement prevElement = PsiTreeUtil.skipWhitespacesBackward(parentAttr);
		if (prevElement == null || prevElement.getNode().getElementType() != LatteTypes.T_PHP_DEFINITION_OPERATOR) {
			return false;
		}

		prevElement = PsiTreeUtil.skipWhitespacesBackward(prevElement);
		return prevElement != null && prevElement.getText().equals("n:for");
	}
	return LatteUtil.matchParentMacroName(element, "for") && LattePhpVariableUtil.isNextDefinitionOperator(element);
}
 
源代码3 项目: reasonml-idea-plugin   文件: PsiIncludeImpl.java
@NotNull
@Override
public String getPath() {
    PsiElement firstChild = PsiTreeUtil.skipWhitespacesForward(getFirstChild());
    if (firstChild instanceof PsiFunctorCall) {
        return ((PsiFunctorCall) firstChild).getFunctorName();
    }
    return firstChild == null ? "" : ORUtil.getTextUntilClass(firstChild, PsiConstraints.class);
}
 
源代码4 项目: reasonml-idea-plugin   文件: PsiOpenImpl.java
@NotNull
@Override
public String getPath() {
    PsiElement firstChild = PsiTreeUtil.skipWhitespacesForward(getFirstChild());
    if (firstChild instanceof PsiFunctorCall) {
        return ((PsiFunctorCall) firstChild).getFunctorName();
    }
    return firstChild == null ? "" : ORUtil.getTextUntilTokenType(firstChild, null);
}
 
源代码5 项目: reasonml-idea-plugin   文件: PsiIncludeImpl.java
@Override
public boolean useFunctor() {
    PsiElement firstChild = PsiTreeUtil.skipWhitespacesForward(getFirstChild());
    return firstChild instanceof PsiFunctorCall;
}
 
源代码6 项目: reasonml-idea-plugin   文件: PsiOpenImpl.java
@Override
public boolean useFunctor() {
    PsiElement firstChild = PsiTreeUtil.skipWhitespacesForward(getFirstChild());
    return firstChild instanceof PsiFunctorCall;
}
 
源代码7 项目: intellij-latte   文件: LattePhpVariableUtil.java
public static LattePhpType detectVariableType(@NotNull LattePhpVariable element) {
    String variableName = element.getVariableName();
    List<PsiPositionedElement> all = LatteUtil.findVariablesInFileBeforeElement(
            element,
            element.getContainingFile().getOriginalFile().getVirtualFile(),
            element.getVariableName()
    );
    List<PsiPositionedElement> definitions = all.stream().filter(
            psiPositionedElement -> psiPositionedElement.getElement() instanceof LattePhpVariable
                    && ((LattePhpVariable) psiPositionedElement.getElement()).isDefinition()
    ).collect(Collectors.toList());

    LattePhpStatementPartElement mainStatementPart = element.getPhpStatementPart();

    for (PsiPositionedElement positionedElement : definitions) {
        if (!(positionedElement.getElement() instanceof LattePhpVariable)) {
            continue;
        }

        PsiElement current = positionedElement.getElement();
        if (
                ((LattePhpVariable) current).isVarTypeDefinition()
                        || ((LattePhpVariable) current).isVarDefinition()
                        || ((LattePhpVariable) current).isPhpArrayVarDefinition()
                        || ((LattePhpVariable) current).isCaptureDefinition()
                        || ((LattePhpVariable) current).isBlockDefineVarDefinition()
                        || ((LattePhpVariable) current).isDefinitionInForeach()
        ) {
            int startDepth = 0;
            if (!(current.getParent() instanceof LattePhpArrayOfVariables)) {
                LattePhpType prevPhpType = findPrevPhpType((LattePhpVariable) current);
                if (prevPhpType != null) {
                    return prevPhpType;
                }
            } else {
                startDepth = 1;
            }

            if (((LattePhpVariable) current).isDefinitionInForeach()) {
                PsiElement nextElement = PsiTreeUtil.skipWhitespacesForward(current);
                IElementType type = nextElement != null ? nextElement.getNode().getElementType() : null;
                if (type != T_PHP_DOUBLE_ARROW) {
                    LattePhpForeach phpForeach = PsiTreeUtil.getParentOfType(current, LattePhpForeach.class);
                    if (phpForeach != null && phpForeach.getPhpExpression().getPhpStatementList().size() > 0) {
                        return phpForeach.getPhpExpression().getPhpType().withDepth(startDepth + 1);
                    }
                }
            }

            LattePhpStatementPartElement statementPart = ((LattePhpVariable) current).getPhpStatementPart();
            LattePhpContent phpContent = PsiTreeUtil.getParentOfType(current, LattePhpContent.class);
            if (phpContent != null && statementPart != mainStatementPart) {
                return detectVariableType(phpContent, startDepth);
            }
            return LattePhpType.MIXED;
        }
    }

    LattePhpType templateType = detectVariableTypeFromTemplateType(element, variableName);
    if (templateType != null) {
        return templateType;
    }

    LatteVariableSettings defaultVariable = LatteConfiguration.getInstance(element.getProject()).getVariable(variableName);
    if (defaultVariable != null) {
        return defaultVariable.toPhpType();
    }

    return LattePhpType.MIXED;
}