Skip to content

Commit b0c331b

Browse files
committed
Close #2097
1 parent ee0ea0a commit b0c331b

File tree

5 files changed

+42
-14
lines changed

5 files changed

+42
-14
lines changed

RetailCoder.VBE/Inspections/EncapsulatePublicFieldInspection.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,16 @@
55

66
namespace Rubberduck.Inspections
77
{
8+
using SmartIndenter;
9+
810
public sealed class EncapsulatePublicFieldInspection : InspectionBase
911
{
10-
public EncapsulatePublicFieldInspection(RubberduckParserState state)
12+
private readonly Indenter _indenter;
13+
14+
public EncapsulatePublicFieldInspection(RubberduckParserState state, Indenter indenter)
1115
: base(state, CodeInspectionSeverity.Suggestion)
1216
{
17+
_indenter = indenter;
1318
}
1419

1520
public override string Meta { get { return InspectionsUI.EncapsulatePublicFieldInspectionMeta; } }
@@ -21,7 +26,7 @@ public override IEnumerable<InspectionResultBase> GetInspectionResults()
2126
var issues = UserDeclarations
2227
.Where(declaration => declaration.DeclarationType == DeclarationType.Variable
2328
&& declaration.Accessibility == Accessibility.Public)
24-
.Select(issue => new EncapsulatePublicFieldInspectionResult(this, issue, State))
29+
.Select(issue => new EncapsulatePublicFieldInspectionResult(this, issue, State, _indenter))
2530
.ToList();
2631

2732
return issues;

RetailCoder.VBE/Inspections/EncapsulatePublicFieldInspectionResult.cs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,18 @@
99

1010
namespace Rubberduck.Inspections
1111
{
12+
using SmartIndenter;
13+
1214
public class EncapsulatePublicFieldInspectionResult : InspectionResultBase
1315
{
1416
private readonly IEnumerable<CodeInspectionQuickFix> _quickFixes;
1517

16-
public EncapsulatePublicFieldInspectionResult(IInspection inspection, Declaration target, RubberduckParserState state)
18+
public EncapsulatePublicFieldInspectionResult(IInspection inspection, Declaration target, RubberduckParserState state, Indenter indenter)
1719
: base(inspection, target)
1820
{
1921
_quickFixes = new CodeInspectionQuickFix[]
2022
{
21-
new EncapsulateFieldQuickFix(target.Context, target.QualifiedSelection, target, state),
23+
new EncapsulateFieldQuickFix(target.Context, target.QualifiedSelection, target, state, indenter),
2224
new IgnoreOnceQuickFix(Context, QualifiedSelection, Inspection.AnnotationName)
2325
};
2426
}
@@ -38,22 +40,24 @@ public class EncapsulateFieldQuickFix : CodeInspectionQuickFix
3840
{
3941
private readonly Declaration _target;
4042
private readonly RubberduckParserState _state;
43+
private readonly Indenter _indenter;
4144

42-
public EncapsulateFieldQuickFix(ParserRuleContext context, QualifiedSelection selection, Declaration target, RubberduckParserState state)
45+
public EncapsulateFieldQuickFix(ParserRuleContext context, QualifiedSelection selection, Declaration target, RubberduckParserState state, Indenter indenter)
4346
: base(context, selection, string.Format(InspectionsUI.EncapsulatePublicFieldInspectionQuickFix, target.IdentifierName))
4447
{
4548
_target = target;
4649
_state = state;
50+
_indenter = indenter;
4751
}
4852

4953
public override void Fix()
5054
{
5155
var vbe = Selection.QualifiedName.Project.VBE;
5256

53-
using (var view = new EncapsulateFieldDialog())
57+
using (var view = new EncapsulateFieldDialog(_indenter))
5458
{
5559
var factory = new EncapsulateFieldPresenterFactory(vbe, _state, view);
56-
var refactoring = new EncapsulateFieldRefactoring(vbe, factory);
60+
var refactoring = new EncapsulateFieldRefactoring(vbe, _indenter, factory);
5761
refactoring.Refactor(_target);
5862
IsCancelled = view.DialogResult != DialogResult.OK;
5963
}

RetailCoder.VBE/Refactorings/EncapsulateField/EncapsulateFieldRefactoring.cs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,22 @@
55
using Rubberduck.Parsing.VBA;
66
using Rubberduck.VBEditor;
77
using Rubberduck.VBEditor.Extensions;
8+
using Rubberduck.SmartIndenter;
9+
using Selection = Rubberduck.VBEditor.Selection;
810

911
namespace Rubberduck.Refactorings.EncapsulateField
1012
{
1113
public class EncapsulateFieldRefactoring : IRefactoring
1214
{
1315
private readonly VBE _vbe;
16+
private readonly Indenter _indenter;
1417
private readonly IRefactoringPresenterFactory<IEncapsulateFieldPresenter> _factory;
1518
private EncapsulateFieldModel _model;
1619

17-
public EncapsulateFieldRefactoring(VBE vbe, IRefactoringPresenterFactory<IEncapsulateFieldPresenter> factory)
20+
public EncapsulateFieldRefactoring(VBE vbe, Indenter indenter, IRefactoringPresenterFactory<IEncapsulateFieldPresenter> factory)
1821
{
1922
_vbe = vbe;
23+
_indenter = indenter;
2024
_factory = factory;
2125
}
2226

@@ -205,10 +209,13 @@ private string GetPropertyText()
205209
string.Format(" Set {0} = {1}", _model.TargetDeclaration.IdentifierName, _model.ParameterName),
206210
"End Property" + Environment.NewLine);
207211

208-
return string.Join(string.Empty,
212+
var propertyText = string.Join(string.Empty,
209213
getterText,
210214
(_model.ImplementLetSetterType ? letterText : string.Empty),
211215
(_model.ImplementSetSetterType ? setterText : string.Empty)).TrimEnd() + Environment.NewLine;
216+
217+
var propertyTextLines = propertyText.Split(new[] {Environment.NewLine}, StringSplitOptions.None);
218+
return string.Join(Environment.NewLine, _indenter.Indent(propertyTextLines, "test", false));
212219
}
213220
}
214221
}

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

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,19 @@
77

88
namespace Rubberduck.UI.Command.Refactorings
99
{
10+
using SmartIndenter;
11+
1012
[ComVisible(false)]
1113
public class RefactorEncapsulateFieldCommand : RefactorCommandBase
1214
{
1315
private readonly RubberduckParserState _state;
16+
private readonly Indenter _indenter;
1417

15-
public RefactorEncapsulateFieldCommand(VBE vbe, RubberduckParserState state)
18+
public RefactorEncapsulateFieldCommand(VBE vbe, RubberduckParserState state, Indenter indenter)
1619
: base(vbe)
1720
{
1821
_state = state;
22+
_indenter = indenter;
1923
}
2024

2125
protected override bool CanExecuteImpl(object parameter)
@@ -42,10 +46,10 @@ protected override void ExecuteImpl(object parameter)
4246
return;
4347
}
4448

45-
using (var view = new EncapsulateFieldDialog())
49+
using (var view = new EncapsulateFieldDialog(_indenter))
4650
{
4751
var factory = new EncapsulateFieldPresenterFactory(Vbe, _state, view);
48-
var refactoring = new EncapsulateFieldRefactoring(Vbe, factory);
52+
var refactoring = new EncapsulateFieldRefactoring(Vbe, _indenter, factory);
4953
refactoring.Refactor();
5054
}
5155
}

RetailCoder.VBE/UI/Refactorings/EncapsulateFieldDialog.cs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,12 @@
77

88
namespace Rubberduck.UI.Refactorings
99
{
10+
using SmartIndenter;
11+
1012
public partial class EncapsulateFieldDialog : Form, IEncapsulateFieldDialog
1113
{
14+
private readonly Indenter _indenter;
15+
1216
public string NewPropertyName
1317
{
1418
get { return PropertyNameTextBox.Text; }
@@ -75,8 +79,9 @@ public bool MustImplementSetSetterType
7579
}
7680
}
7781

78-
public EncapsulateFieldDialog()
82+
public EncapsulateFieldDialog(Indenter indenter)
7983
{
84+
_indenter = indenter;
8085
InitializeComponent();
8186
LocalizeDialog();
8287

@@ -151,9 +156,12 @@ private string GetPropertyText()
151156
string.Format(" Set {0} = {1}", TargetDeclaration.IdentifierName, ParameterName),
152157
"End Property");
153158

154-
return getterText +
159+
var propertyText = getterText +
155160
(MustImplementLetSetterType ? letterText : string.Empty) +
156161
(MustImplementSetSetterType ? setterText : string.Empty);
162+
163+
var propertyTextLines = propertyText.Split(new[] { Environment.NewLine }, StringSplitOptions.None);
164+
return string.Join(Environment.NewLine, _indenter.Indent(propertyTextLines, "test", false));
157165
}
158166

159167
private void ValidatePropertyName()

0 commit comments

Comments
 (0)