private void PromoteVariable(IModuleRewriter rewriter, Declaration target) { if (new[] { DeclarationType.ClassModule, DeclarationType.ProceduralModule }.Contains(target.ParentDeclaration.DeclarationType)) { _messageBox.Show(RubberduckUI.PromoteVariable_InvalidSelection, RubberduckUI.IntroduceParameter_Caption, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } QualifiedSelection?oldSelection = null; if (_vbe.ActiveCodePane != null) { oldSelection = _vbe.ActiveCodePane.CodeModule.GetQualifiedSelection(); } rewriter.Remove(target); AddField(rewriter, target); if (oldSelection.HasValue) { var module = oldSelection.Value.QualifiedName.Component.CodeModule; var pane = module.CodePane; { pane.Selection = oldSelection.Value.Selection; } } rewriter.Rewrite(); }
private void PromoteVariable(IModuleRewriter rewriter, Declaration target) { if (new[] { DeclarationType.ClassModule, DeclarationType.ProceduralModule }.Contains(target.ParentDeclaration.DeclarationType)) { _messageBox.NotifyWarn(RubberduckUI.PromoteVariable_InvalidSelection, RubberduckUI.IntroduceParameter_Caption); return; } var oldSelection = _vbe.GetActiveSelection(); rewriter.Remove(target); AddField(rewriter, target); if (oldSelection.HasValue) { using (var module = _state.ProjectsProvider.Component(oldSelection.Value.QualifiedName).CodeModule) { using (var pane = module.CodePane) { pane.Selection = oldSelection.Value.Selection; } } } rewriter.Rewrite(); }
private void AddItems(List <Declaration> missingMembers, IModuleRewriter rewriter, string interfaceName) { var missingMembersText = missingMembers.Aggregate(string.Empty, (current, member) => current + Environment.NewLine + GetInterfaceMember(member, interfaceName)); rewriter.InsertAfter(rewriter.TokenStream.Size, Environment.NewLine + missingMembersText); rewriter.Rewrite(); }