本文整理汇总了Java中com.intellij.lang.javascript.psi.JSDefinitionExpression类的典型用法代码示例。如果您正苦于以下问题:Java JSDefinitionExpression类的具体用法?Java JSDefinitionExpression怎么用?Java JSDefinitionExpression使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
JSDefinitionExpression类属于com.intellij.lang.javascript.psi包,在下文中一共展示了JSDefinitionExpression类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: isReferenceTo
import com.intellij.lang.javascript.psi.JSDefinitionExpression; //导入依赖的package包/类
@Override
@RequiredReadAction
public boolean isReferenceTo(PsiElement element)
{
final PsiElement element2 = resolve();
boolean proxyExpanded = false;
if(element instanceof JSDefinitionExpression)
{
final JSExpression expression = ((JSDefinitionExpression) element).getExpression();
if(expression instanceof JSReferenceExpression)
{
return ((JSReferenceExpression) expression).isReferenceTo(element2);
}
}
if(element != element2 && element instanceof JSProperty && element2 instanceof JSProperty)
{
return ((JSProperty) element).getName().equals(((JSProperty) element2).getName());
}
return proxyExpanded && element == element2;
}
示例2: createVisitor
import com.intellij.lang.javascript.psi.JSDefinitionExpression; //导入依赖的package包/类
@Override
protected JSElementVisitor createVisitor(final ProblemsHolder holder)
{
return new JSElementVisitor()
{
@Override
public void visitJSReferenceExpression(final JSReferenceExpression node)
{
for(ResolveResult r : node.multiResolve(false))
{
final PsiElement element = r.getElement();
if((element instanceof JSDefinitionExpression && element.getParent() instanceof JSAssignmentExpression) || element == node.getParent())
{
continue;
}
if(JSDocumentationUtils.isDeprecated(element))
{
holder.registerProblem(node.getReferenceNameElement(), JavaScriptBundle.message("javascript.deprecated.symbol.used.name.message"),
ProblemHighlightType.LIKE_DEPRECATED);
break;
}
}
}
};
}
示例3: getDefinitions
import com.intellij.lang.javascript.psi.JSDefinitionExpression; //导入依赖的package包/类
public Collection<JSDefinitionExpression> getDefinitions() {
final PsiElement firstChild = getFirstChild();
if (firstChild instanceof JSDefinitionExpression) {
return Collections.singletonList((JSDefinitionExpression) firstChild);
}
if (firstChild instanceof JSParenthesizedExpression) {
final PsiElement commaExpression = PsiTreeUtil.findChildOfType(firstChild, JSCommaExpression.class);
if (commaExpression != null) {
return PsiTreeUtil.findChildrenOfType(commaExpression, JSDefinitionExpression.class);
}
}
return Collections.emptyList();
}
示例4: getDefinitions
import com.intellij.lang.javascript.psi.JSDefinitionExpression; //导入依赖的package包/类
public Collection<JSDefinitionExpression> getDefinitions() {
final PsiElement firstChild = getFirstChild();
if (firstChild instanceof JSDefinitionExpression) {
return Collections.singletonList((JSDefinitionExpression)firstChild);
} else if (firstChild instanceof JSParenthesizedExpression) {
final PsiElement commaExpression = PsiTreeUtil.findChildOfType(firstChild, JSCommaExpression.class);
if (commaExpression != null) {
return PsiTreeUtil.findChildrenOfType(commaExpression, JSDefinitionExpression.class);
}
}
return Collections.emptyList();
}
示例5: isLHSExpression
import com.intellij.lang.javascript.psi.JSDefinitionExpression; //导入依赖的package包/类
public static boolean isLHSExpression(JSExpression expr)
{
if(expr instanceof JSDefinitionExpression)
{
expr = ((JSDefinitionExpression) expr).getExpression();
}
if(expr instanceof JSReferenceExpression)
{
return true;
}
if(expr instanceof JSParenthesizedExpression)
{
return isLHSExpression(((JSParenthesizedExpression) expr).getInnerExpression());
}
if(expr instanceof JSIndexedPropertyAccessExpression)
{
return true;
}
if(expr instanceof JSCallExpression)
{
return true;
}
if(expr instanceof JSNewExpression)
{
return true;
}
return false;
}
示例6: getTextEndOffset
import com.intellij.lang.javascript.psi.JSDefinitionExpression; //导入依赖的package包/类
@Override
public int getTextEndOffset(@NotNull PsiElement element)
{
if(element instanceof JSDefinitionExpression)
{
element = PsiTreeUtil.getParentOfType(element, JSExpressionStatement.class);
}
return element.getTextRange().getEndOffset();
}
示例7: isReadWriteAccessible
import com.intellij.lang.javascript.psi.JSDefinitionExpression; //导入依赖的package包/类
@Override
public boolean isReadWriteAccessible(PsiElement element)
{
return element instanceof JSVariable ||
((element instanceof JSFunction) && (((JSFunction) element).isGetProperty() || ((JSFunction) element).isSetProperty())) ||
element instanceof JSDefinitionExpression;
}
示例8: getExpressionAccess
import com.intellij.lang.javascript.psi.JSDefinitionExpression; //导入依赖的package包/类
@Override
public Access getExpressionAccess(PsiElement expression)
{
expression = expression.getParent();
if(expression instanceof JSDefinitionExpression)
{
PsiElement grandParent = expression.getParent();
if(grandParent instanceof JSAssignmentExpression && ((JSAssignmentExpression) grandParent).getOperationSign() == JSTokenTypes.EQ)
{
return Access.Write;
}
return Access.ReadWrite;
}
if(expression instanceof JSPrefixExpression)
{
if(isIncrementOrDecrement(((JSPrefixExpression) expression).getOperationSign()))
{
return Access.ReadWrite;
}
}
else if(expression instanceof JSPostfixExpression)
{
if(isIncrementOrDecrement(((JSPostfixExpression) expression).getOperationSign()))
{
return Access.ReadWrite;
}
}
return Access.Read;
}
示例9: isSafeDeleteAvailable
import com.intellij.lang.javascript.psi.JSDefinitionExpression; //导入依赖的package包/类
@Override
public boolean isSafeDeleteAvailable(PsiElement element)
{
boolean simpleElement = element instanceof JSFunction || element instanceof JSVariable || element instanceof JSDefinitionExpression ||
element instanceof JSProperty || element instanceof JSClass;
return simpleElement && ((JSNamedElement) element).getName() != null;
}
示例10: visitJSAssignmentExpression
import com.intellij.lang.javascript.psi.JSDefinitionExpression; //导入依赖的package包/类
@Override public void visitJSAssignmentExpression(@NotNull JSAssignmentExpression assignment) {
super.visitJSAssignmentExpression(assignment);
final IElementType sign = assignment.getOperationSign();
if (!JSTokenTypes.EQ.equals(sign)) {
return;
}
JSExpression lhs = assignment.getLOperand();
final JSExpression rhs = assignment.getROperand();
if (rhs == null || lhs == null) {
return;
}
if (!(rhs instanceof JSBinaryExpression)) {
return;
}
final JSBinaryExpression binaryRhs = (JSBinaryExpression) rhs;
if (!(binaryRhs.getROperand() != null)) {
return;
}
IElementType operationSign = binaryRhs.getOperationSign();
if (operationSign == JSTokenTypes.ANDAND ||
operationSign == JSTokenTypes.OROR) {
return;
}
final JSExpression lOperand = binaryRhs.getLOperand();
if (SideEffectChecker.mayHaveSideEffects(lhs)) {
return;
}
if(lhs instanceof JSDefinitionExpression)
{
lhs = ((JSDefinitionExpression)lhs).getExpression();
}
if (!EquivalenceChecker.expressionsAreEquivalent(lhs, lOperand)) {
return;
}
registerError(assignment);
}
开发者ID:consulo,项目名称:consulo-javascript,代码行数:38,代码来源:ReplaceAssignmentWithOperatorAssignmentJSInspection.java
示例11: getDefinition
import com.intellij.lang.javascript.psi.JSDefinitionExpression; //导入依赖的package包/类
@Nullable
public JSDefinitionExpression getDefinition() {
return PsiTreeUtil.getChildOfType(this, JSDefinitionExpression.class);
}
示例12: MockJSAssignmentExpression
import com.intellij.lang.javascript.psi.JSDefinitionExpression; //导入依赖的package包/类
public MockJSAssignmentExpression(JSDefinitionExpression definition, String content) {
super(mock(ASTNode.class));
this.definition = definition;
this.content = content;
}
示例13: getType
import com.intellij.lang.javascript.psi.JSDefinitionExpression; //导入依赖的package包/类
@Override
@NotNull
public String getType(@NotNull PsiElement element)
{
if(element instanceof JSFunction)
{
return JavaScriptBundle.message("javascript.language.term.function");
}
if(element instanceof JSClass)
{
return JavaScriptBundle.message("javascript.language.term.class");
}
if(element instanceof JSNamespaceDeclaration)
{
return JavaScriptBundle.message("javascript.language.term.namespace");
}
if(element instanceof JSParameter)
{
return JavaScriptBundle.message("javascript.language.term.parameter");
}
if(element instanceof JSProperty)
{
return JavaScriptBundle.message("javascript.language.term.property");
}
if(element instanceof JSVariable)
{
return JavaScriptBundle.message("javascript.language.term.variable");
}
if(element instanceof JSLabeledStatement)
{
return JavaScriptBundle.message("javascript.language.term.label");
}
if(element instanceof JSDefinitionExpression)
{
return JavaScriptBundle.message("javascript.language.term.value");
}
if(element instanceof XmlTag)
{
return JavaScriptBundle.message("javascript.language.term.tag");
}
if(element instanceof XmlToken)
{
return JavaScriptBundle.message("javascript.language.term.attribute.value");
}
if(element instanceof JSPackageStatement)
{
return JavaScriptBundle.message("javascript.language.term.package");
}
return "";
}
示例14: visitJSAssignmentExpression
import com.intellij.lang.javascript.psi.JSDefinitionExpression; //导入依赖的package包/类
@Override public void visitJSAssignmentExpression(@NotNull JSAssignmentExpression assignment) {
super.visitJSAssignmentExpression(assignment);
final IElementType sign = assignment.getOperationSign();
if (!JSTokenTypes.EQ.equals(sign)) {
return;
}
JSExpression lhs = assignment.getLOperand();
if(lhs instanceof JSDefinitionExpression)
{
lhs = ((JSDefinitionExpression)lhs).getExpression();
}
final JSExpression rhs = assignment.getROperand();
if(rhs == null || lhs == null)
{
return;
}
if(!(rhs instanceof JSReferenceExpression) ||
!(lhs instanceof JSReferenceExpression) )
{
return;
}
final JSReferenceExpression rhsReference = (JSReferenceExpression) rhs;
final JSReferenceExpression lhsReference = (JSReferenceExpression) lhs;
final JSExpression rhsQualifier = rhsReference.getQualifier();
final JSExpression lhsQualifier = lhsReference.getQualifier();
if(rhsQualifier !=null || lhsQualifier !=null)
{
if(!EquivalenceChecker.expressionsAreEquivalent(rhsQualifier, lhsQualifier))
{
return;
}
}
final String rhsName = rhsReference.getReferencedName();
final String lhsName = lhsReference.getReferencedName();
if(rhsName == null || lhsName == null)
{
return;
}
if(!rhsName.equals(lhsName))
{
return;
}
final PsiElement rhsReferent = rhsReference.resolve();
final PsiElement lhsReferent = lhsReference.resolve();
if(rhsReferent != null && lhsReferent != null &&
!rhsReferent.equals(lhsReferent))
{
return;
}
if (lhsName.equals("location") && lhsQualifier != null && lhsQualifier.getText().equals("document")) {
// document.location = document.location causes browser refresh
return;
}
registerError(assignment);
}
示例15: satisfiedBy
import com.intellij.lang.javascript.psi.JSDefinitionExpression; //导入依赖的package包/类
@Override
public boolean satisfiedBy(@NotNull PsiElement element) {
if (!(element instanceof JSAssignmentExpression)) {
return false;
}
if (ErrorUtil.containsError(element)) {
return false;
}
final JSAssignmentExpression assignment = (JSAssignmentExpression) element;
final IElementType tokenType = assignment.getOperationSign();
if (!JSTokenTypes.EQ.equals(tokenType)) {
return false;
}
JSExpression lhs = assignment.getLOperand();
final JSExpression rhs = assignment.getROperand();
if (lhs instanceof JSDefinitionExpression) {
lhs = ((JSDefinitionExpression) lhs).getExpression();
}
if (lhs == null || rhs == null) {
return false;
}
if (!(rhs instanceof JSBinaryExpression)) {
return false;
}
final JSBinaryExpression binaryRhs = (JSBinaryExpression) rhs;
final JSExpression rhsRhs = binaryRhs.getROperand();
final JSExpression rhsLhs = binaryRhs.getLOperand();
if (rhsRhs == null) {
return false;
}
final IElementType rhsTokenType = binaryRhs.getOperationSign();
if (JSTokenTypes.OROR .equals(rhsTokenType) ||
JSTokenTypes.ANDAND.equals(rhsTokenType)) {
return false;
}
if (SideEffectChecker.mayHaveSideEffects(lhs)) {
return false;
}
return EquivalenceChecker.expressionsAreEquivalent(lhs, rhsLhs);
}