下面列出了怎么用com.intellij.psi.SyntheticElement的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
@RequiredUIAccess
public boolean isAvailable(@Nonnull Project project, Editor editor, @Nonnull PsiElement psi)
{
CSharpExpressionStatementImpl exprStmt = PsiTreeUtil.getParentOfType(psi, CSharpExpressionStatementImpl.class);
if(psi instanceof SyntheticElement || exprStmt == null)
{
return false;
}
DotNetExpression expression = exprStmt.getExpression();
if(expression instanceof CSharpAssignmentExpressionImpl)
{
return false;
}
DotNetTypeRef ref = expression.toTypeRef(true);
return !(ref == DotNetTypeRef.ERROR_TYPE || DotNetTypeRefUtil.isVmQNameEqual(ref, expression, DotNetTypes.System.Void));
}
@Nullable
private PsiClass getTargetClass(Editor editor, PsiFile file) {
int offset = editor.getCaretModel().getOffset();
PsiElement element = file.findElementAt(offset);
if (element == null) {
return null;
}
final PsiClass target = PsiTreeUtil.getParentOfType(element, PsiClass.class);
return target instanceof SyntheticElement ? null : target;
}
@Override
public boolean isEnabledOnElements(@Nonnull PsiElement[] elements) {
if (elements.length != 1) return false;
PsiElement element = elements[0];
return element instanceof PsiNamedElement && !(element instanceof SyntheticElement);
}