Skip to content

Commit b28d32e

Browse files
committed
Merge branch 'next' of https://github.com/rubberduck-vba/Rubberduck into extractMethodRefactoring_Testing
2 parents f3bde1c + ccd6225 commit b28d32e

37 files changed

+397
-187
lines changed

RetailCoder.VBE/App.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ public void Startup()
150150
_appMenus.Initialize();
151151
_hooks.HookHotkeys(); // need to hook hotkeys before we localize menus, to correctly display ShortcutTexts
152152
_appMenus.Localize();
153-
Task.Delay(1000).ContinueWith(t => UiDispatcher.Invoke(() => _parser.State.OnParseRequested(this))).ConfigureAwait(false);
153+
Task.Delay(1000).ContinueWith(t => UiDispatcher.Invoke(() => _parser.State.OnParseRequested(this)));
154154
UpdateLoggingLevel();
155155
}
156156

RetailCoder.VBE/Common/ClipboardWriter.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,14 @@
55
using System.Text;
66
using System.Threading.Tasks;
77
using System.Windows;
8+
using System.Windows.Media.Imaging;
89

910
namespace Rubberduck.Common
1011
{
1112
public interface IClipboardWriter
1213
{
1314
void Write(string text);
15+
void AppendImage(BitmapSource image);
1416
void AppendString(string formatName, string data);
1517
void AppendStream(string formatName, MemoryStream stream);
1618
void Flush();
@@ -26,6 +28,16 @@ public void Write(string text)
2628
this.Flush();
2729
}
2830

31+
public void AppendImage(BitmapSource image)
32+
{
33+
if (_data == null)
34+
{
35+
_data = new DataObject();
36+
}
37+
_data.SetImage(image);
38+
}
39+
40+
2941
public void AppendString(string formatName, string data)
3042
{
3143
if (_data == null)

RetailCoder.VBE/Inspections/FunctionReturnValueNotUsedInspection.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,14 @@ public override IEnumerable<InspectionResultBase> GetInspectionResults()
3232
var nonInterfaceFunctions = functions.Except(interfaceMembers.Union(interfaceImplementationMembers));
3333
var nonInterfaceIssues = GetNonInterfaceIssues(nonInterfaceFunctions);
3434
return interfaceMemberIssues.Union(nonInterfaceIssues);
35-
//// Temporarily disabled until fix for lack of context because of new resolver is found...
36-
//return new List<InspectionResultBase>();
3735
}
3836

3937
private IEnumerable<FunctionReturnValueNotUsedInspectionResult> GetInterfaceMemberIssues(IEnumerable<Declaration> interfaceMembers)
4038
{
4139
return from interfaceMember in interfaceMembers
4240
let implementationMembers =
4341
UserDeclarations.FindInterfaceImplementationMembers(interfaceMember.IdentifierName).ToList()
44-
where
42+
where interfaceMember.DeclarationType == DeclarationType.Function &&
4543
!IsReturnValueUsed(interfaceMember) &&
4644
implementationMembers.All(member => !IsReturnValueUsed(member))
4745
let implementationMemberIssues =
@@ -58,7 +56,7 @@ private IEnumerable<FunctionReturnValueNotUsedInspectionResult> GetInterfaceMemb
5856

5957
private IEnumerable<FunctionReturnValueNotUsedInspectionResult> GetNonInterfaceIssues(IEnumerable<Declaration> nonInterfaceFunctions)
6058
{
61-
var returnValueNotUsedFunctions = nonInterfaceFunctions.Where(function => !IsReturnValueUsed(function));
59+
var returnValueNotUsedFunctions = nonInterfaceFunctions.Where(function => function.DeclarationType == DeclarationType.Function && !IsReturnValueUsed(function));
6260
var nonInterfaceIssues = returnValueNotUsedFunctions
6361
.Select(function =>
6462
new FunctionReturnValueNotUsedInspectionResult(

RetailCoder.VBE/Inspections/FunctionReturnValueNotUsedInspectionResult.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
using System.Collections.Generic;
55
using System.Linq;
66
using Rubberduck.Parsing.Symbols;
7+
using Rubberduck.UI;
78

89
namespace Rubberduck.Inspections
910
{
1011
public class FunctionReturnValueNotUsedInspectionResult : InspectionResultBase
1112
{
1213
private readonly IEnumerable<CodeInspectionQuickFix> _quickFixes;
13-
private QualifiedMemberName _memberName;
1414

1515
public FunctionReturnValueNotUsedInspectionResult(
1616
IInspection inspection,
@@ -49,5 +49,10 @@ public override string Description
4949
return string.Format(InspectionsUI.FunctionReturnValueNotUsedInspectionResultFormat, Target.IdentifierName);
5050
}
5151
}
52+
53+
public override NavigateCodeEventArgs GetNavigationArgs()
54+
{
55+
return new NavigateCodeEventArgs(Target);
56+
}
5257
}
5358
}

RetailCoder.VBE/Inspections/IdentifierNotUsedInspectionResult.cs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,19 @@
22
using Antlr4.Runtime;
33
using Rubberduck.Common;
44
using Rubberduck.Parsing.Symbols;
5+
using Rubberduck.UI;
56
using Rubberduck.VBEditor;
67

78
namespace Rubberduck.Inspections
89
{
910
public class IdentifierNotUsedInspectionResult : InspectionResultBase
1011
{
11-
private readonly Declaration _target;
1212
private readonly IEnumerable<CodeInspectionQuickFix> _quickFixes;
1313

1414
public IdentifierNotUsedInspectionResult(IInspection inspection, Declaration target,
1515
ParserRuleContext context, QualifiedModuleName qualifiedName)
16-
: base(inspection, qualifiedName, context)
16+
: base(inspection, qualifiedName, context, target)
1717
{
18-
_target = target;
1918
_quickFixes = new CodeInspectionQuickFix[]
2019
{
2120
new RemoveUnusedDeclarationQuickFix(context, QualifiedSelection),
@@ -28,9 +27,14 @@ public override string Description
2827
{
2928
get
3029
{
31-
return string.Format(InspectionsUI.IdentifierNotUsedInspectionResultFormat, _target.DeclarationType.ToLocalizedString(), _target.IdentifierName);
30+
return string.Format(InspectionsUI.IdentifierNotUsedInspectionResultFormat, Target.DeclarationType.ToLocalizedString(), Target.IdentifierName);
3231
}
3332
}
33+
34+
public override NavigateCodeEventArgs GetNavigationArgs()
35+
{
36+
return new NavigateCodeEventArgs(Target);
37+
}
3438
}
3539

3640
/// <summary>

RetailCoder.VBE/Inspections/ImplicitPublicMemberInspectionResult.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using Rubberduck.Parsing;
44
using Rubberduck.Parsing.Grammar;
55
using Rubberduck.Parsing.Symbols;
6+
using Rubberduck.UI;
67
using Rubberduck.VBEditor;
78

89
namespace Rubberduck.Inspections
@@ -30,6 +31,11 @@ public override string Description
3031
return string.Format(InspectionsUI.ImplicitPublicMemberInspectionResultFormat, Target.IdentifierName);
3132
}
3233
}
34+
35+
public override NavigateCodeEventArgs GetNavigationArgs()
36+
{
37+
return new NavigateCodeEventArgs(Target);
38+
}
3339
}
3440

3541
public class SpecifyExplicitPublicModifierQuickFix : CodeInspectionQuickFix

RetailCoder.VBE/Inspections/ImplicitVariantReturnTypeInspection.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public override IEnumerable<InspectionResultBase> GetInspectionResults()
3232
&& ProcedureTypes.Contains(item.DeclarationType)
3333
&& !item.IsTypeSpecified
3434
let issue = new {Declaration = item, QualifiedContext = new QualifiedContext<ParserRuleContext>(item.QualifiedName, item.Context)}
35-
select new ImplicitVariantReturnTypeInspectionResult(this, issue.Declaration.IdentifierName, issue.QualifiedContext);
35+
select new ImplicitVariantReturnTypeInspectionResult(this, issue.Declaration.IdentifierName, issue.QualifiedContext, item);
3636
return issues;
3737
}
3838
}

RetailCoder.VBE/Inspections/ImplicitVariantReturnTypeInspectionResult.cs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22
using Antlr4.Runtime;
33
using Rubberduck.Parsing;
44
using Rubberduck.Parsing.Grammar;
5+
using Rubberduck.Parsing.Symbols;
56
using Rubberduck.Parsing.VBA.Nodes;
7+
using Rubberduck.UI;
68
using Rubberduck.VBEditor;
79

810
namespace Rubberduck.Inspections
@@ -12,8 +14,8 @@ public sealed class ImplicitVariantReturnTypeInspectionResult : InspectionResult
1214
private readonly string _identifierName;
1315
private readonly IEnumerable<CodeInspectionQuickFix> _quickFixes;
1416

15-
public ImplicitVariantReturnTypeInspectionResult(IInspection inspection, string identifierName, QualifiedContext<ParserRuleContext> qualifiedContext)
16-
: base(inspection, qualifiedContext.ModuleName, qualifiedContext.Context)
17+
public ImplicitVariantReturnTypeInspectionResult(IInspection inspection, string identifierName, QualifiedContext<ParserRuleContext> qualifiedContext, Declaration target)
18+
: base(inspection, qualifiedContext.ModuleName, qualifiedContext.Context, target)
1719
{
1820
_identifierName = identifierName;
1921
_quickFixes = new CodeInspectionQuickFix[]
@@ -33,6 +35,11 @@ public override string Description
3335
_identifierName);
3436
}
3537
}
38+
39+
public override NavigateCodeEventArgs GetNavigationArgs()
40+
{
41+
return new NavigateCodeEventArgs(Target);
42+
}
3643
}
3744

3845
public class SetExplicitVariantReturnTypeQuickFix : CodeInspectionQuickFix

RetailCoder.VBE/Inspections/InspectionResultBase.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ public override string ToString()
108108
QualifiedSelection.Selection.StartLine);
109109
}
110110

111-
public NavigateCodeEventArgs GetNavigationArgs()
111+
public virtual NavigateCodeEventArgs GetNavigationArgs()
112112
{
113113
return new NavigateCodeEventArgs(QualifiedSelection);
114114
}

RetailCoder.VBE/Inspections/Inspector.cs

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,8 @@ public async Task<IEnumerable<ICodeInspectionResult>> FindIssuesAsync(Rubberduck
5555
return new ICodeInspectionResult[] { };
5656
}
5757

58-
await Task.Yield();
59-
6058
state.OnStatusMessageUpdate(RubberduckUI.CodeInspections_Inspecting);
6159
UpdateInspectionSeverity();
62-
//OnReset();
6360

6461
var allIssues = new ConcurrentBag<ICodeInspectionResult>();
6562

@@ -72,31 +69,23 @@ public async Task<IEnumerable<ICodeInspectionResult>> FindIssuesAsync(Rubberduck
7269

7370
var inspections = _inspections.Where(inspection => inspection.Severity != CodeInspectionSeverity.DoNotShow)
7471
.Select(inspection =>
75-
new Task(() =>
72+
Task.Run(() =>
7673
{
7774
token.ThrowIfCancellationRequested();
7875
var inspectionResults = inspection.GetInspectionResults();
7976
var results = inspectionResults as IEnumerable<InspectionResultBase> ?? inspectionResults;
8077

8178
if (results.Any())
8279
{
83-
//OnIssuesFound(results);
84-
8580
foreach (var inspectionResult in results)
8681
{
8782
allIssues.Add(inspectionResult);
8883
}
8984
}
90-
})).ToArray();
91-
92-
foreach (var inspection in inspections)
93-
{
94-
inspection.Start();
95-
}
85+
})).ToList();
9686

97-
Task.WaitAll(inspections);
87+
await Task.WhenAll(inspections);
9888
state.OnStatusMessageUpdate(RubberduckUI.ResourceManager.GetString("ParserState_" + state.Status)); // should be "Ready"
99-
10089
return allIssues;
10190
}
10291

0 commit comments

Comments
 (0)