Skip to content

Commit 708d0e1

Browse files
author
Wolfgang Janz
committed
feature(): Add TooManyArguments inspection to vb.net
1 parent 9a6d063 commit 708d0e1

File tree

3 files changed

+67
-0
lines changed

3 files changed

+67
-0
lines changed

CleanCode/src/CleanCode/CleanCode.csproj

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,8 @@
184184
<SubType>Code</SubType>
185185
</Compile>
186186
<Compile Include="Features\TooManyDependencies\TooManyDependenciesCheck.cs" />
187+
<Compile Include="Features\TooManyMethodArguments\TooManyArgumentsHighlightingVb.cs" />
188+
<Compile Include="Features\TooManyMethodArguments\TooManyMethodArgumentsCheckVb.cs" />
187189
<Compile Include="Features\TooManyMethodArguments\TooManyMethodArgumentsCheck.cs" />
188190
<Compile Include="Features\TooManyMethodArguments\TooManyArgumentsHighlighting.cs">
189191
<SubType>Code</SubType>
@@ -230,6 +232,7 @@
230232
<ItemGroup>
231233
<None Include="..\CleanCode.nuspec">
232234
<Link>CleanCode.nuspec</Link>
235+
<SubType>Designer</SubType>
233236
</None>
234237
<None Include="packages.config" />
235238
</ItemGroup>
@@ -273,4 +276,8 @@
273276
<Import Project="..\packages\JetBrains.Psi.Features.test.Framework.106.0.20160818.164034\build\JetBrains.Psi.Features.test.Framework.Targets" Condition="Exists('..\packages\JetBrains.Psi.Features.test.Framework.106.0.20160818.164034\build\JetBrains.Psi.Features.test.Framework.Targets')" />
274277
<Import Project="..\packages\JetBrains.Build.Platform.Tasks.ThemedIconsPacker.2.0.20151217.1\build\JetBrains.Build.Platform.Tasks.ThemedIconsPacker.Targets" Condition="Exists('..\packages\JetBrains.Build.Platform.Tasks.ThemedIconsPacker.2.0.20151217.1\build\JetBrains.Build.Platform.Tasks.ThemedIconsPacker.Targets')" />
275278
<Import Project="..\packages\JetBrains.ReSharper.SDK.Internal.106.0.20160818.171542\build\JetBrains.ReSharper.SDK.Internal.Targets" Condition="Exists('..\packages\JetBrains.ReSharper.SDK.Internal.106.0.20160818.171542\build\JetBrains.ReSharper.SDK.Internal.Targets')" />
279+
<PropertyGroup>
280+
<PostBuildEvent>
281+
</PostBuildEvent>
282+
</PropertyGroup>
276283
</Project>
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
using CleanCode;
2+
using CleanCode.Features.TooManyMethodArguments;
3+
using JetBrains.DocumentModel;
4+
using JetBrains.ReSharper.Feature.Services.Daemon;
5+
using JetBrains.ReSharper.Psi.VB;
6+
7+
[assembly: RegisterConfigurableSeverity(TooManyArgumentsHighlightingVb.SeverityID, null,
8+
CleanCodeHighlightingGroupIds.CleanCode, "Too many arguments", "Too many arguments passed to a method.",
9+
Severity.WARNING, false)]
10+
11+
namespace CleanCode.Features.TooManyMethodArguments
12+
{
13+
[ConfigurableSeverityHighlighting(SeverityID, VBLanguage.Name)]
14+
public class TooManyArgumentsHighlightingVb : IHighlighting
15+
{
16+
internal const string SeverityID = "TooManyArguments";
17+
private readonly DocumentRange documentRange;
18+
19+
public TooManyArgumentsHighlightingVb(string toolTip, DocumentRange documentRange)
20+
{
21+
ToolTip = toolTip;
22+
this.documentRange = documentRange;
23+
}
24+
25+
public DocumentRange CalculateRange() => documentRange;
26+
public string ToolTip { get; }
27+
public string ErrorStripeToolTip => ToolTip;
28+
public bool IsValid() => true;
29+
}
30+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
using CleanCode.Resources;
2+
using CleanCode.Settings;
3+
using JetBrains.Application.Settings;
4+
using JetBrains.ReSharper.Daemon.Stages.Dispatcher;
5+
using JetBrains.ReSharper.Feature.Services.Daemon;
6+
using JetBrains.ReSharper.Psi.VB.Tree;
7+
using JetBrains.ReSharper.Psi.Tree;
8+
9+
namespace CleanCode.Features.TooManyMethodArguments
10+
{
11+
[ElementProblemAnalyzer(typeof(IMethodDeclaration), HighlightingTypes = new []
12+
{
13+
typeof(TooManyArgumentsHighlightingVb)
14+
})]
15+
public class TooManyMethodArgumentsCheckVb : ElementProblemAnalyzer<IMethodDeclaration>
16+
{
17+
protected override void Run(IMethodDeclaration element, ElementProblemAnalyzerData data, IHighlightingConsumer consumer)
18+
{
19+
var maxParameters = data.SettingsStore.GetValue((CleanCodeSettings s) => s.MaximumMethodParameters);
20+
var parameterDeclarations = element.ParameterDeclarations;
21+
22+
if (parameterDeclarations.Count > maxParameters)
23+
{
24+
var highlighting = new TooManyArgumentsHighlightingVb(Warnings.TooManyMethodArguments,
25+
element.GetNameDocumentRange());
26+
consumer.AddHighlighting(highlighting);
27+
}
28+
}
29+
}
30+
}

0 commit comments

Comments
 (0)