Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }