Skip to content

Commit d62d3ae

Browse files
committed
Merge pull request #5 from rubberduck-vba/next
Pull updates
2 parents 17eb19a + 3eb9bfc commit d62d3ae

32 files changed

+2966
-2159
lines changed

RetailCoder.VBE/Inspections/ProcedureNotUsedInspection.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ private bool IsIgnoredDeclaration(Declarations declarations, Declaration declara
6161
{
6262
var enumerable = classes as IList<Declaration> ?? classes.ToList();
6363
var result = !ProcedureTypes.Contains(declaration.DeclarationType)
64-
|| declaration.References.Any()
64+
|| declaration.References.Any(r => !r.IsAssignment)
6565
|| handlers.Contains(declaration)
6666
|| IsPublicModuleMember(modules, declaration)
6767
|| IsClassLifeCycleHandler(enumerable, declaration)

RetailCoder.VBE/Properties/AssemblyInfo.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
[assembly: AssemblyTitle("Rubberduck")]
88
[assembly: AssemblyDescription("Rubberduck")]
99
[assembly: AssemblyConfiguration("")]
10-
[assembly: AssemblyCompany("")]
10+
[assembly: AssemblyCompany("Rubberduck")]
1111
[assembly: AssemblyProduct("Rubberduck")]
1212
[assembly: AssemblyCopyright("Copyright © 2014")]
1313
[assembly: AssemblyTrademark("")]
@@ -31,5 +31,5 @@
3131
// You can specify all the values or you can default the Build and Revision Numbers
3232
// by using the '*' as shown below:
3333
// [assembly: AssemblyVersion("1.0.*")]
34-
[assembly: AssemblyVersion("1.3.*")]
35-
[assembly: AssemblyFileVersion("1.3.0.0")]
34+
[assembly: AssemblyVersion("1.4.*")]
35+
[assembly: AssemblyFileVersion("1.4.0.0")]

RetailCoder.VBE/Refactorings/Rename/RenamePresenter.cs

Lines changed: 35 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,23 @@ private void OnOkButtonClicked(object sender, EventArgs e)
148148

149149
// must rename usages first; if target is a module or a project,
150150
// then renaming the declaration first would invalidate the parse results.
151-
RenameUsages(_view.Target);
151+
152+
if (_view.Target.DeclarationType.HasFlag(DeclarationType.Property))
153+
{
154+
// properties can have more than 1 member.
155+
var members = _declarations[_view.Target.IdentifierName]
156+
.Where(item => item.Project == _view.Target.Project
157+
&& item.ComponentName == _view.Target.ComponentName
158+
&& item.DeclarationType.HasFlag(DeclarationType.Property));
159+
foreach (var member in members)
160+
{
161+
RenameUsages(member);
162+
}
163+
}
164+
else
165+
{
166+
RenameUsages(_view.Target);
167+
}
152168

153169
if (ModuleDeclarationTypes.Contains(_view.Target.DeclarationType))
154170
{
@@ -228,10 +244,23 @@ private void RenameDeclaration()
228244
module.ReplaceLine(argList.Start.Line, newContent);
229245
module.DeleteLines(argList.Start.Line + 1, lineNum - 1);
230246
}
231-
else
247+
else if (!_view.Target.DeclarationType.HasFlag(DeclarationType.Property))
232248
{
233249
module.ReplaceLine(_view.Target.Selection.StartLine, newContent);
234250
}
251+
else
252+
{
253+
var members = _declarations[_view.Target.IdentifierName]
254+
.Where(item => item.Project == _view.Target.Project
255+
&& item.ComponentName == _view.Target.ComponentName
256+
&& item.DeclarationType.HasFlag(DeclarationType.Property));
257+
258+
foreach (var member in members)
259+
{
260+
newContent = GetReplacementLine(module, member, _view.NewName);
261+
module.ReplaceLine(member.Selection.StartLine, newContent);
262+
}
263+
}
235264
}
236265

237266
private void RenameControl()
@@ -354,23 +383,23 @@ private string GetReplacementLine(string content, string target, string newName,
354383

355384
private string GetReplacementLine(CodeModule module, Declaration target, string newName)
356385
{
357-
var targetModule = _parseResult.ComponentParseResults.SingleOrDefault(m => m.QualifiedName == _view.Target.QualifiedName.QualifiedModuleName);
386+
var targetModule = _parseResult.ComponentParseResults.SingleOrDefault(m => m.QualifiedName == target.QualifiedName.QualifiedModuleName);
358387
if (targetModule == null)
359388
{
360389
return null;
361390
}
362391

363-
var content = module.Lines[_view.Target.Selection.StartLine, 1];
392+
var content = module.Lines[target.Selection.StartLine, 1];
364393

365394
if (target.DeclarationType == DeclarationType.Parameter)
366395
{
367-
var argContext = (VBAParser.ArgContext)_view.Target.Context;
396+
var argContext = (VBAParser.ArgContext)target.Context;
368397
var rewriter = targetModule.GetRewriter();
369398
rewriter.Replace(argContext.ambiguousIdentifier().Start.TokenIndex, _view.NewName);
370399

371400
// Target.Context is an ArgContext, its parent is an ArgsListContext;
372401
// the ArgsListContext's parent is the procedure context and it includes the body.
373-
var context = (ParserRuleContext) _view.Target.Context.Parent.Parent;
402+
var context = (ParserRuleContext) target.Context.Parent.Parent;
374403
var firstTokenIndex = context.Start.TokenIndex;
375404
var lastTokenIndex = -1; // will blow up if this code runs for any context other than below
376405

RetailCoder.VBE/Rubberduck.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -409,7 +409,7 @@
409409
<Compile Include="UI\SourceControl\IProviderPresenter.cs" />
410410
<Compile Include="UI\SourceControl\ISettingsView.cs" />
411411
<Compile Include="UI\SourceControl\ISourceControlView.cs" />
412-
<Compile Include="UI\SourceControl\IUnSyncedCommitsView.cs" />
412+
<Compile Include="UI\SourceControl\IUnsyncedCommitsView.cs" />
413413
<Compile Include="UI\SourceControl\MergeForm.cs">
414414
<SubType>Form</SubType>
415415
</Compile>
@@ -451,6 +451,7 @@
451451
<Compile Include="UI\SourceControl\UnSyncedCommitsControl.Designer.cs">
452452
<DependentUpon>UnSyncedCommitsControl.cs</DependentUpon>
453453
</Compile>
454+
<Compile Include="UI\SourceControl\UnsyncedCommitsPresenter.cs" />
454455
<Compile Include="UI\ToDoItems\IToDoExplorerWindow.cs" />
455456
<Compile Include="Settings\IConfigurationService.cs" />
456457
<Compile Include="UI\Settings\ITodoSettingsView.cs" />

RetailCoder.VBE/Settings/DisplayLanguageSetting.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ public DisplayLanguageSetting(string code)
4646

4747
public override bool Equals(object obj)
4848
{
49-
var other = (DisplayLanguageSetting) obj;
50-
return Code.Equals(other.Code);
49+
var other = obj as DisplayLanguageSetting;
50+
return other != null && Code.Equals(other.Code);
5151
}
5252

5353
public override int GetHashCode()

RetailCoder.VBE/UI/RefactorMenu.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,10 @@ public void FindAllReferences()
179179
var selection = IDE.ActiveCodePane.GetSelection();
180180
var progress = new ParsingProgressPresenter();
181181
var result = progress.Parse(_parser, IDE.ActiveVBProject);
182+
if (result == null)
183+
{
184+
return; // bug/todo: something's definitely wrong, exception thrown in resolver code
185+
}
182186

183187
var declarations = result.Declarations.Items
184188
.Where(item => item.DeclarationType != DeclarationType.ModuleOption)

RetailCoder.VBE/UI/SourceControl/App.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ internal App(
1313
AddIn addIn,
1414
IConfigurationService<SourceControlConfiguration> configService,
1515
IChangesView changesView,
16-
IUnSyncedCommitsView unsyncedCommitsView,
16+
IUnsyncedCommitsView unsyncedCommitsView,
1717
ISettingsView settingsView,
1818
IBranchesView branchesView,
1919
ICreateBranchView createBranchView,
@@ -25,6 +25,7 @@ IMergeView mergeView
2525
var changesPresenter = new ChangesPresenter(changesView);
2626
var branchesPresenter = new BranchesPresenter(branchesView, createBranchView, deleteBranchView, mergeView);
2727
var settingsPresenter = new SettingsPresenter(settingsView, configService, new DialogFactory());
28+
var unsyncedPresenter = new UnsyncedCommitsPresenter(unsyncedCommitsView);
2829

2930
_sourceControlPresenter =
3031
new SourceControlPresenter
@@ -36,6 +37,7 @@ IMergeView mergeView
3637
changesPresenter,
3738
branchesPresenter,
3839
settingsPresenter,
40+
unsyncedPresenter,
3941
new DialogFactory(),
4042
new SourceControlProviderFactory()
4143
);
Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,18 @@
1-
namespace Rubberduck.UI.SourceControl
1+
using System;
2+
using System.Collections.Generic;
3+
using Rubberduck.SourceControl;
4+
5+
namespace Rubberduck.UI.SourceControl
26
{
3-
public interface IUnSyncedCommitsView
7+
public interface IUnsyncedCommitsView
48
{
9+
event EventHandler<EventArgs> Fetch;
10+
event EventHandler<EventArgs> Pull;
11+
event EventHandler<EventArgs> Push;
12+
event EventHandler<EventArgs> Sync;
13+
14+
string CurrentBranch { get; set; }
15+
IList<ICommit> IncomingCommits { get; set; }
16+
IList<ICommit> OutgoingCommits { get; set; }
517
}
618
}

RetailCoder.VBE/UI/SourceControl/SourceControlPanel.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public SourceControlPanel()
1313
InitializeComponent();
1414
}
1515

16-
public SourceControlPanel(IBranchesView branchesView, IChangesView changesView, IUnSyncedCommitsView commitsView, ISettingsView settingsView)
16+
public SourceControlPanel(IBranchesView branchesView, IChangesView changesView, IUnsyncedCommitsView commitsView, ISettingsView settingsView)
1717
:this()
1818
{
1919
((Control)branchesView).Dock = DockStyle.Fill;

RetailCoder.VBE/UI/SourceControl/SourceControlPresenter.cs

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ public class SourceControlPresenter : DockablePresenterBase
1212
private readonly IChangesPresenter _changesPresenter;
1313
private readonly IBranchesPresenter _branchesPresenter;
1414
private readonly ISettingsPresenter _settingsPresenter;
15+
private readonly IUnsyncedCommitsPresenter _unsyncedPresenter;
16+
1517
private readonly IFolderBrowserFactory _folderBrowserFactory;
1618
private readonly ISourceControlProviderFactory _providerFactory;
1719
private readonly ISourceControlView _view;
@@ -21,17 +23,7 @@ public class SourceControlPresenter : DockablePresenterBase
2123
private ISourceControlProvider _provider;
2224

2325
public SourceControlPresenter
24-
(
25-
VBE vbe,
26-
AddIn addin,
27-
IConfigurationService<SourceControlConfiguration> configService,
28-
ISourceControlView view,
29-
IChangesPresenter changesPresenter,
30-
IBranchesPresenter branchesPresenter,
31-
ISettingsPresenter settingsPresenter,
32-
IFolderBrowserFactory folderBrowserFactory,
33-
ISourceControlProviderFactory providerFactory
34-
)
26+
(VBE vbe, AddIn addin, IConfigurationService<SourceControlConfiguration> configService, ISourceControlView view, IChangesPresenter changesPresenter, IBranchesPresenter branchesPresenter, ISettingsPresenter settingsPresenter, IUnsyncedCommitsPresenter unsyncedPresenter, IFolderBrowserFactory folderBrowserFactory, ISourceControlProviderFactory providerFactory)
3527
: base(vbe, addin, view)
3628
{
3729
_configService = configService;
@@ -41,6 +33,8 @@ ISourceControlProviderFactory providerFactory
4133

4234
_branchesPresenter = branchesPresenter;
4335
_settingsPresenter = settingsPresenter;
36+
_unsyncedPresenter = unsyncedPresenter;
37+
4438
_folderBrowserFactory = folderBrowserFactory;
4539
_providerFactory = providerFactory;
4640
_branchesPresenter.BranchChanged += _branchesPresenter_BranchChanged;
@@ -150,6 +144,7 @@ private void SetChildPresenterSourceControlProviders(ISourceControlProvider prov
150144
_branchesPresenter.Provider = provider;
151145
_changesPresenter.Provider = provider;
152146
_settingsPresenter.Provider = provider;
147+
_unsyncedPresenter.Provider = provider;
153148

154149
_branchesPresenter.RefreshView();
155150
_changesPresenter.Refresh();

0 commit comments

Comments
 (0)