Ejemplo n.º 1
0
 public static IDeclaredElement EliminateDelegateInvokeMethod([NotNull] this IDeclaredElement declaredElement)
 => DeclaredElementUtil.EliminateDelegateInvokeMethod(declaredElement);
Ejemplo n.º 2
0
        public IEnumerable <string> GetAllPossibleWordsInFile(IDeclaredElement element)
        {
            var names = new JetHashSet <string>();

            var constructor = element as IConstructor;

            if (constructor != null)
            {
                ITypeElement typeElement = constructor.GetContainingType();
                if (typeElement != null)
                {
                    names.Add(typeElement.ShortName);
                }

                names.Add(DeclaredElementConstants.CONSTRUCTOR_NAME);
                return(names);
            }

            names.Add(element.ShortName);

            if (PsiDeclaredElementUtil.IsCollectionInitializerAddMethod(element))
            {
                names.Add("new");
            }

            if (PsiDeclaredElementUtil.IsForeachEnumeratorPatternMember(element))
            {
                names.Add("foreach");
            }

            if (DeclaredElementUtil.IsAsyncAwaitablePatternMember(element))
            {
                names.Add("async");
                names.Add("await");
            }

            // LINQ
            var method = element as IMethod;

            if (method != null)
            {
                if (method.ShortName == "Cast" && method.TypeParameters.Count == 1 && IsCorrectParametersNumberForQueryPatternMethod(method, 0))
                {
                    names.Add("from");
                }
                if (method.ShortName == "Select" && IsCorrectParametersNumberForQueryPatternMethod(method, 1))
                {
                    names.Add("from");
                }
                if (method.ShortName == "SelectMany" && IsCorrectParametersNumberForQueryPatternMethod(method, 2))
                {
                    names.Add("from");
                }
                if (method.ShortName == "Where" && IsCorrectParametersNumberForQueryPatternMethod(method, 1))
                {
                    names.Add("where");
                }
                if ((method.ShortName == "Join" || method.ShortName == "GroupJoin") && IsCorrectParametersNumberForQueryPatternMethod(method, 4))
                {
                    names.Add("join");
                }
                if ((method.ShortName == "OrderBy" || method.ShortName == "OrderByDescending" || method.ShortName == "ThenBy" || method.ShortName == "ThenByDescending") && IsCorrectParametersNumberForQueryPatternMethod(method, 1))
                {
                    names.Add("orderby");
                }
                if (method.ShortName == "GroupBy" && (IsCorrectParametersNumberForQueryPatternMethod(method, 1) || IsCorrectParametersNumberForQueryPatternMethod(method, 2)))
                {
                    names.Add("group");
                }
            }

            return(names);
        }