Skip to content

Commit 2774a37

Browse files
committed
injected IIndenter into RefactorExtractMethodCommand
1 parent 24359f3 commit 2774a37

File tree

3 files changed

+18
-6
lines changed

3 files changed

+18
-6
lines changed

RetailCoder.VBE/Refactorings/ExtractMethod/ExtractMethodPresenter.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System.Linq;
44
using System.Windows.Forms;
55
using Rubberduck.Parsing.Grammar;
6+
using Rubberduck.SmartIndenter;
67

78
namespace Rubberduck.Refactorings.ExtractMethod
89
{
@@ -15,11 +16,13 @@ public class ExtractMethodPresenter : IExtractMethodPresenter
1516
{
1617
private readonly IExtractMethodDialog _view;
1718
private readonly ExtractMethodModel _model;
19+
private readonly IIndenter _indenter;
1820

19-
public ExtractMethodPresenter(IExtractMethodDialog view, ExtractMethodModel model)
21+
public ExtractMethodPresenter(IExtractMethodDialog view, ExtractMethodModel model, IIndenter indenter)
2022
{
2123
_view = view;
2224
_model = model;
25+
_indenter = indenter;
2326
}
2427

2528
public ExtractMethodModel Show()
@@ -92,7 +95,10 @@ private void GeneratePreview()
9295
_model.Method.ReturnValue = _view.ReturnValue;
9396
_model.Method.SetReturnValue = _view.SetReturnValue;
9497

95-
_view.Preview = ExtractMethodRefactoring.GetExtractedMethod(_model);
98+
var code = ExtractMethodRefactoring.GetExtractedMethod(_model).Split(new[]{Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries);
99+
_indenter.Indent(code, "Preview", false);
100+
101+
_view.Preview = string.Join(Environment.NewLine, code);
96102
}
97103
}
98104
}

RetailCoder.VBE/Refactorings/ExtractMethod/ExtractMethodPresenterFactory.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System;
22
using System.Collections.Generic;
33
using Rubberduck.Parsing.Symbols;
4+
using Rubberduck.SmartIndenter;
45
using Rubberduck.UI.Refactorings;
56
using Rubberduck.VBEditor;
67

@@ -10,11 +11,13 @@ public class ExtractMethodPresenterFactory : IRefactoringPresenterFactory<IExtra
1011
{
1112
private readonly IActiveCodePaneEditor _editor;
1213
private readonly IEnumerable<Declaration> _declarations;
14+
private readonly IIndenter _indenter;
1315

14-
public ExtractMethodPresenterFactory(IActiveCodePaneEditor editor, IEnumerable<Declaration> declarations)
16+
public ExtractMethodPresenterFactory(IActiveCodePaneEditor editor, IEnumerable<Declaration> declarations, IIndenter indenter)
1517
{
1618
_editor = editor;
1719
_declarations = declarations;
20+
_indenter = indenter;
1821
}
1922

2023
public IExtractMethodPresenter Create()
@@ -36,7 +39,7 @@ public IExtractMethodPresenter Create()
3639
}
3740

3841
var view = new ExtractMethodDialog();
39-
return new ExtractMethodPresenter(view, model);
42+
return new ExtractMethodPresenter(view, model, _indenter);
4043
}
4144
}
4245
}

RetailCoder.VBE/UI/Command/Refactorings/RefactorExtractMethodCommand.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using Rubberduck.Parsing;
77
using Rubberduck.Parsing.VBA;
88
using Rubberduck.Refactorings.ExtractMethod;
9+
using Rubberduck.SmartIndenter;
910
using Rubberduck.VBEditor;
1011
using Rubberduck.VBEditor.VBEInterfaces.RubberduckCodePane;
1112

@@ -15,11 +16,13 @@ namespace Rubberduck.UI.Command.Refactorings
1516
public class RefactorExtractMethodCommand : RefactorCommandBase
1617
{
1718
private readonly RubberduckParserState _state;
19+
private readonly IIndenter _indenter;
1820

19-
public RefactorExtractMethodCommand(VBE vbe, RubberduckParserState state, IActiveCodePaneEditor editor)
21+
public RefactorExtractMethodCommand(VBE vbe, RubberduckParserState state, IActiveCodePaneEditor editor, IIndenter indenter)
2022
: base (vbe, editor)
2123
{
2224
_state = state;
25+
_indenter = indenter;
2326
}
2427

2528
public override bool CanExecute(object parameter)
@@ -44,7 +47,7 @@ public override bool CanExecute(object parameter)
4447

4548
public override void Execute(object parameter)
4649
{
47-
var factory = new ExtractMethodPresenterFactory(Editor, _state.AllDeclarations);
50+
var factory = new ExtractMethodPresenterFactory(Editor, _state.AllDeclarations, _indenter);
4851
var refactoring = new ExtractMethodRefactoring(factory, Editor);
4952
refactoring.InvalidSelection += HandleInvalidSelection;
5053
refactoring.Refactor();

0 commit comments

Comments
 (0)