private static IDeclaredElement FindDeclaredElement(IPsiView psiView, out IDeclaration declarationUnderCaret) { declarationUnderCaret = null; var referenceName = psiView.GetSelectedTreeNode <IReferenceName>(); if (referenceName != null) { return(referenceName.Reference.Resolve().DeclaredElement); } declarationUnderCaret = psiView.GetSelectedTreeNode <IPropertyDeclaration>(); return(declarationUnderCaret?.DeclaredElement); }
private static IDeclaredElement FindDeclaredElement(IPsiView psiView, out IJavaScriptLiteralExpression literalExpressionUnderCaret) { literalExpressionUnderCaret = null; var expression = psiView.GetSelectedTreeNode <IJavaScriptLiteralExpression>(); if (expression.IsNameStringLiteralValue()) { literalExpressionUnderCaret = expression; // TODO: Not sure I like creating a new DeclaredElement here return(new AsmDefNameDeclaredElement(expression.GetJavaScriptServices(), expression.GetUnquotedText(), expression.GetSourceFile(), expression.GetTreeStartOffset().Offset)); } if (expression.IsReferencesStringLiteralValue()) { var reference = expression.FindReference <AsmDefNameReference>(); if (reference != null) { return(reference.Resolve().DeclaredElement); } } return(null); }
private static IDeclaredElement FindDeclaredElement(IPsiView psiView, out IDeclaration declarationUnderCaret) { declarationUnderCaret = null; var referenceName = psiView.GetSelectedTreeNode <IReferenceName>(); if (referenceName != null) { return(referenceName.Reference.Resolve().DeclaredElement); } var identifier = psiView.GetSelectedTreeNode <IShaderLabIdentifier>(); declarationUnderCaret = PropertyDeclarationNavigator.GetByName(identifier); return(declarationUnderCaret?.DeclaredElement); }
private static IDeclaredElement FindDeclaredElement([NotNull] IPsiView psiView) { var referenceExpression = psiView.GetSelectedTreeNode <IReferenceExpression>(); if (referenceExpression != null) { return(referenceExpression.Reference.Resolve().DeclaredElement); } var identifier = psiView.GetSelectedTreeNode <ICSharpIdentifier>(); if (identifier != null) { var referenceName = ReferenceNameNavigator.GetByNameIdentifier(identifier); if (referenceName != null) { return(referenceName.Reference.Resolve().DeclaredElement); } var declarationUnderCaret = FieldDeclarationNavigator.GetByNameIdentifier(identifier) ?? PropertyDeclarationNavigator.GetByNameIdentifier(identifier) ?? MethodDeclarationNavigator.GetByNameIdentifier(identifier) ?? ConstructorDeclarationNavigator.GetByTypeName(identifier) ?? CSharpTypeDeclarationNavigator.GetByNameIdentifier(identifier) ?? EventDeclarationNavigator.GetByNameIdentifier(identifier) ?? ConstantDeclarationNavigator.GetByNameIdentifier(identifier) ?? VariableDeclarationNavigator.GetByNameIdentifier(identifier); return(declarationUnderCaret?.DeclaredElement); } var predefinedTypeUsage = psiView.GetSelectedTreeNode <IPredefinedTypeUsage>(); return(predefinedTypeUsage?.ScalarPredefinedTypeName.Reference.Resolve().DeclaredElement); }