private bool IsReturnOrMethodDeclarationSelected()
        {
            if (_provider.SelectedElement == null)
            {
                return(false);
            }

            // Disable on parameters
            if (_provider.IsSelected <IParameterDeclaration>())
            {
                return(false);
            }

            if (!_provider.IsSelected <IMethodDeclaration>())
            {
                return(false);
            }

            // Enable on return statement
            if (_provider.IsSelected <IReturnStatement>())
            {
                return(true);
            }

            // Ensures enable only on return statement in the method body
            if (_provider.IsSelected <IChameleonNode>())
            {
                return(false);
            }

            return(true);
        }
        private bool IsAbstractClassOrInterface()
        {
            if (_provider.IsSelected <IInterfaceDeclaration>())
            {
                return(true);
            }

            var classDeclaration = _provider.GetSelectedElement <IClassDeclaration>(true, true);

            if (classDeclaration == null)
            {
                return(false); // disabling if outside the class declaration
            }
            return(classDeclaration.IsAbstract);
        }
 private bool InsideClassOrInterfaceDeclaration()
 {
     return(_provider.IsSelected <IClassLikeDeclaration>());
 }