protected override bool CanExecuteImpl(object parameter)
        {
            if (Vbe.ActiveCodePane == null)
            {
                return(false);
            }

            var target = _state.FindSelectedDeclaration(Vbe.ActiveCodePane);

            return(_state.Status == ParserState.Ready && target != null && !target.IsBuiltIn);
        }
示例#2
0
        protected override bool EvaluateCanExecute(object parameter)
        {
            if (Vbe.ActiveCodePane == null)
            {
                return(false);
            }

            var target = _state.FindSelectedDeclaration(Vbe.ActiveCodePane);

            return(_state.Status == ParserState.Ready && target != null && target.IsUserDefined);
        }
        private void SetSelectionText()
        {
            var selectedDeclaration = _vbe.ActiveCodePane != null
                            ? _state.FindSelectedDeclaration(_vbe.ActiveCodePane)
                            : null;

            SetSelectionText(selectedDeclaration);
        }
        protected override bool EvaluateCanExecute(object parameter)
        {
            Declaration target;

            using (var activePane = Vbe.ActiveCodePane)
            {
                if (activePane == null || activePane.IsWrappingNullReference)
                {
                    return(false);
                }

                target = _state.FindSelectedDeclaration(activePane);
            }

            return(_state.Status == ParserState.Ready &&
                   target != null &&
                   target.IsUserDefined &&
                   !_state.IsNewOrModified(target.QualifiedModuleName));
        }
示例#5
0
        private Declaration FindTarget(object parameter)
        {
            var declaration = parameter as Declaration;

            if (declaration != null)
            {
                return(declaration);
            }

            return(_state.FindSelectedDeclaration(_vbe.ActiveCodePane));
        }
示例#6
0
        private Declaration FindTarget(object parameter)
        {
            if (parameter is Declaration declaration)
            {
                return(declaration);
            }

            using (var activePane = _vbe.ActiveCodePane)
            {
                return(_state.FindSelectedDeclaration(activePane));
            }
        }
        protected override bool CanExecuteImpl(object parameter)
        {
            if (Vbe.ActiveCodePane == null || _state.Status != ParserState.Ready)
            {
                return(false);
            }

            var target = _state.FindSelectedDeclaration(Vbe.ActiveCodePane);

            return(target != null &&
                   (target.DeclarationType == DeclarationType.Variable || target.DeclarationType == DeclarationType.Constant) &&
                   target.References.Any());
        }
        public override bool CanExecute(object parameter)
        {
            if (Vbe.ActiveCodePane == null || _state.Status != ParserState.Ready)
            {
                return(false);
            }

            var target     = _state.FindSelectedDeclaration(Vbe.ActiveCodePane);
            var canExecute = target != null &&
                             (target.DeclarationType == DeclarationType.Variable || target.DeclarationType == DeclarationType.Constant) &&
                             target.References.Any();

            Debug.WriteLine("{0}.CanExecute evaluates to {1}", GetType().Name, canExecute);
            return(canExecute);
        }
示例#9
0
        public override bool CanExecute(object parameter)
        {
            var pane = Vbe.ActiveCodePane;

            if (pane == null || _state.Status != ParserState.Ready)
            {
                return(false);
            }

            var target = _state.FindSelectedDeclaration(pane);

            var canExecute = target != null &&
                             target.DeclarationType == DeclarationType.Variable &&
                             !target.ParentScopeDeclaration.DeclarationType.HasFlag(DeclarationType.Member);

            return(canExecute);
        }
        protected override bool EvaluateCanExecute(object parameter)
        {
            using (var activePane = Vbe.ActiveCodePane)
            {
                if (activePane == null || activePane.IsWrappingNullReference || _state.Status != ParserState.Ready)
                {
                    return(false);
                }

                var target = _state.FindSelectedDeclaration(activePane);
                return(target != null &&
                       !_state.IsNewOrModified(target.QualifiedModuleName) &&
                       (target.DeclarationType == DeclarationType.Variable ||
                        target.DeclarationType == DeclarationType.Constant) &&
                       target.References.Any());
            }
        }
示例#11
0
        private Declaration FindTarget(object parameter)
        {
            var declaration = parameter as Declaration;

            if (declaration != null)
            {
                return(declaration);
            }

            var selectedDeclaration = _state.FindSelectedDeclaration(_vbe.ActiveCodePane);

            while (selectedDeclaration != null && selectedDeclaration.DeclarationType.HasFlag(DeclarationType.Module))
            {
                selectedDeclaration = selectedDeclaration.ParentDeclaration;
            }

            return(selectedDeclaration);
        }
示例#12
0
        protected override bool EvaluateCanExecute(object parameter)
        {
            Declaration target;

            using (var pane = Vbe.ActiveCodePane)
            {
                if (pane == null || _state.Status != ParserState.Ready)
                {
                    return(false);
                }

                target = _state.FindSelectedDeclaration(pane);
            }
            return(target != null &&
                   target.DeclarationType == DeclarationType.Variable &&
                   !target.ParentScopeDeclaration.DeclarationType.HasFlag(DeclarationType.Member) &&
                   !_state.IsNewOrModified(target.QualifiedModuleName));
        }
示例#13
0
        private Declaration FindTarget(object parameter)
        {
            if (parameter is Declaration declaration)
            {
                return(declaration);
            }

            Declaration selectedDeclaration;

            using (var activePane = _vbe.ActiveCodePane)
            {
                selectedDeclaration = _state.FindSelectedDeclaration(activePane);
            }

            while (selectedDeclaration != null && selectedDeclaration.DeclarationType.HasFlag(DeclarationType.Module))
            {
                selectedDeclaration = selectedDeclaration.ParentDeclaration;
            }

            return(selectedDeclaration);
        }
 private Declaration FindCodePaneTarget()
 {
     return(_state.FindSelectedDeclaration(_vbe.ActiveCodePane));
 }
示例#15
0
 public override bool CanExecute(object parameter)
 {
     return(_state.FindSelectedDeclaration(_vbe.ActiveCodePane, true) != null);
 }
 private Declaration FindCodePaneTarget(ICodePane codePane)
 {
     return(_state.FindSelectedDeclaration(codePane));
 }