Esempio n. 1
0
        public DRenameNameDialog(RefactoringOptions options,DRenameRefactoring rename)
        {
            this.rename = rename;
            this.options = options;

            this.Build ();
            var ds = (INode)options.SelectedItem;

            #region Adjust dialog title
            var app = "Renaming ";

            if (ds is DClassLike)
            {
                var dc = (DClassLike)ds;
                app+=dc.ClassType.ToString();
            }
            else if (ds is DMethod)
                app += "method";
            else if (ds is DVariable)
                app += ((DVariable)ds).IsAlias ? "alias" : "variable";
            else
                app += "item";

            Title = app;
            #endregion

            text_NewId.Text = ds.Name;

            buttonPreview.Sensitive = buttonOk.Sensitive = false;

            buttonOk.Clicked += OnOKClicked;
            buttonPreview.Clicked += OnPreviewClicked;
            text_NewId.Changed += delegate { setNotifyIcon(buttonPreview.Sensitive = buttonOk.Sensitive = ValidateName()); };
            ValidateName();
        }
Esempio n. 2
0
        protected override void Update(CommandArrayInfo info)
        {
            ResolutionContext ctxt;
            var rr = Resolver.DResolverWrapper.ResolveHoveredCode(out ctxt);

            bool noRes = true;

            if (rr != null && rr.Length > 0)
            {
                res = rr[rr.Length - 1];

                n = DResolver.GetResultMember(res);

                if (n != null)
                {
                    noRes = false;
                    info.Add(IdeApp.CommandService.GetCommandInfo(RefactoryCommands.GotoDeclaration), new Action(GotoDeclaration));
                    info.Add(IdeApp.CommandService.GetCommandInfo(RefactoryCommands.FindReferences), new Action(FindReferences));

                    if (DRenameRefactoring.CanRenameNode(n))
                    {
                        info.AddSeparator();
                        info.Add(IdeApp.CommandService.GetCommandInfo(EditCommands.Rename), new Action(RenameSymbol));
                    }
                }
            }

            if (noRes)
            {
                info.Add(IdeApp.CommandService.GetCommandInfo(RefactoryCommands.ImportSymbol), new Action(ImportSymbol));
            }

            info.Add(IdeApp.CommandService.GetCommandInfo(Commands.OpenDDocumentation), new Action(OpenDDoc));
        }
Esempio n. 3
0
        protected override void Run(RefactoringOptions options)
        {
            var renameRefactoring = new DRenameRefactoring();

            if (renameRefactoring.IsValid(options))
            {
                renameRefactoring.Run(options);
            }
        }
Esempio n. 4
0
        protected override void Update(RefactoringOptions options, MonoDevelop.Components.Commands.CommandInfo info)
        {
            var renameRefactoring = new DRenameRefactoring();

            if (!renameRefactoring.IsValid(options))
            {
                info.Bypass = true;
            }
        }
        public void RenameSymbol()
        {
            AbstractType res = GetResult();
            INode        n;

            if (res != null && (n = DResolver.GetResultMember(res, true)) != null &&
                DRenameRefactoring.CanRenameNode(n))
            {
                new DRenameHandler().Start(n);
            }
        }
Esempio n. 6
0
        protected override void Update(CommandArrayInfo info)
        {
            if (caps.Update())
            {
                if (caps.resultResolutionAttempt != LooseResolution.NodeResolutionAttempt.RawSymbolLookup)
                {
                    var refactoringMenu = new CommandInfoSet {
                        Text = GettextCatalog.GetString("Refactoring")
                    };

                    if (caps.lastResults.Any(t => t is DSymbol && DRenameRefactoring.CanRenameNode((t as DSymbol).Definition)))
                    {
                        refactoringMenu.CommandInfos.Add(IdeApp.CommandService.GetCommandInfo(EditCommands.Rename), new Action(caps.RenameSymbol));
                    }

                    if (refactoringMenu.CommandInfos.Count > 0)
                    {
                        info.Add(refactoringMenu);
                    }

                    info.Add(IdeApp.CommandService.GetCommandInfo(RefactoryCommands.GotoDeclaration), new Action(caps.GotoDeclaration));
                    info.Add(IdeApp.CommandService.GetCommandInfo(RefactoryCommands.FindReferences), new Action(() => caps.FindReferences(false)));

                    if (caps.lastResults.Any(t => t is DSymbol && (t as DSymbol).Definition.Parent is DClassLike))
                    {
                        info.Add(IdeApp.CommandService.GetCommandInfo(RefactoryCommands.FindAllReferences), new Action(() => caps.FindReferences(true)));
                    }

                    if (caps.lastResults.Any(t => {
                        var ds = DResolver.StripMemberSymbols(t);
                        return(ds is ClassType || ds is InterfaceType);
                    }))
                    {
                        info.Add(IdeApp.CommandService.GetCommandInfo(RefactoryCommands.FindDerivedClasses), new Action(caps.FindDerivedClasses));
                    }
                }
                else
                {
                    var importSymbolMenu = new CommandInfoSet {
                        Text = GettextCatalog.GetString("Resolve")
                    };

                    foreach (var m in caps.GetImportableModulesForLastResults())
                    {
                        importSymbolMenu.CommandInfos.Add(new CommandInfo {
                            Text = "import " + AbstractNode.GetNodePath(m, true) + ";",
                            Icon = MonoDevelop.Ide.Gui.Stock.AddNamespace
                        }, new object[] { RefactoryCommands.ImportSymbol, m });
                    }

                    if (importSymbolMenu.CommandInfos.Count > 0)
                    {
                        importSymbolMenu.CommandInfos.AddSeparator();

                        var alreadyAddedItems = new List <DModule> ();
                        foreach (var t in caps.lastResults)
                        {
                            var n = DResolver.GetResultMember(t, true);
                            if (n == null)
                            {
                                continue;
                            }
                            var m = n.NodeRoot as DModule;
                            if (m != null && !alreadyAddedItems.Contains(m))
                            {
                                alreadyAddedItems.Add(m);

                                importSymbolMenu.CommandInfos.Add(new CommandInfo {
                                    Text = AbstractNode.GetNodePath(n, true)
                                }, new object[] { RefactoryCommands.QuickFix, n });
                            }
                        }


                        // To explicitly show the Ctrl+Alt+Space hint.
                        importSymbolMenu.CommandInfos.AddSeparator();
                        importSymbolMenu.CommandInfos.Add(IdeApp.CommandService.GetCommandInfo(RefactoryCommands.ImportSymbol), new Action(caps.TryImportMissingSymbol));

                        info.Add(importSymbolMenu);
                    }
                }
            }

            if (SortImportsCommandHandler.CanSortImports(caps.lastDoc))
            {
                info.Add(IdeApp.CommandService.GetCommandInfo(RefactoryCommands.SortImports), new Action(() => SortImportsCommandHandler.SortImports(caps.lastDoc)));
            }
        }
Esempio n. 7
0
 protected override void Update(RefactoringOptions options, MonoDevelop.Components.Commands.CommandInfo info)
 {
     var renameRefactoring = new DRenameRefactoring ();
     if (!renameRefactoring.IsValid (options))
         info.Bypass = true;
 }
Esempio n. 8
0
 protected override void Run(RefactoringOptions options)
 {
     var renameRefactoring = new DRenameRefactoring ();
     if (renameRefactoring.IsValid (options))
         renameRefactoring.Run (options);
 }