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

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

源代码1 项目: 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);
}
 
源代码2 项目: intellij-latte   文件: LattePhpVariableUtil.java
@Nullable
private static LattePhpType findPrevPhpType(LattePhpVariable element) {
    LattePhpTypedPartElement typedElement = PsiTreeUtil.getParentOfType(element, LattePhpTypedPartElement.class);
    if (typedElement != null) {
        return typedElement.getPhpType();
    }
    LattePhpStatementPartElement statementPart = element.getPhpStatementPart();
    if (statementPart == null) {
        return null;
    }
    PsiElement phpTypeElement = PsiTreeUtil.skipWhitespacesBackward(statementPart.getPhpStatement());
    return phpTypeElement instanceof LattePhpTypeElement
            ? ((LattePhpTypeElement) phpTypeElement).getPhpType()
            : (phpTypeElement instanceof LattePhpStatement ? ((LattePhpStatement) phpTypeElement).getPhpType() : null);
}
 
源代码3 项目: intellij-latte   文件: LattePsiImplUtil.java
public static boolean isDefinitionInForeach(@NotNull PsiElement element) {
	PsiElement parent = element.getParent();
	if (parent != null && parent.getNode().getElementType() == PHP_FOREACH) {
		PsiElement prevElement = PsiTreeUtil.skipWhitespacesBackward(element);
		IElementType type = prevElement != null ? prevElement.getNode().getElementType() : null;
		return type == T_PHP_AS || type == T_PHP_DOUBLE_ARROW;

	} else if (parent != null && parent.getNode().getElementType() == PHP_ARRAY_OF_VARIABLES) {
		return isDefinitionInForeach(parent);
	}
	return false;
}
 
源代码4 项目: intellij-latte   文件: LattePsiImplUtil.java
public static boolean isStatic(@NotNull PsiElement element) {
	PsiElement prev = PsiTreeUtil.skipWhitespacesBackward(element);
	return prev != null && prev.getNode().getElementType() == T_PHP_DOUBLE_COLON;
}
 
源代码5 项目: intellij-latte   文件: LattePsiImplUtil.java
public static boolean isFunction(@NotNull PsiElement element) {
	PsiElement prev = PsiTreeUtil.skipWhitespacesBackward(element);
	return prev == null || (prev.getNode().getElementType() != T_PHP_DOUBLE_COLON && prev.getNode().getElementType() != T_PHP_OBJECT_OPERATOR);
}