Skip to content

Commit 013ae17

Browse files
author
Wolfgang Janz
committed
feature(): Add TooManyDependencies inspection to vb.net
1 parent 3b7dc4d commit 013ae17

File tree

3 files changed

+37
-1
lines changed

3 files changed

+37
-1
lines changed

CleanCode/src/CleanCode/CleanCode.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,7 @@
182182
<SubType>Code</SubType>
183183
</Compile>
184184
<Compile Include="Features\ClassTooBig\ClassTooBigCheck.cs" />
185+
<Compile Include="Features\TooManyDependencies\TooManyDependenciesCheckVb.cs" />
185186
<Compile Include="Features\TooManyDependencies\TooManyDependenciesHighlighting.cs">
186187
<SubType>Code</SubType>
187188
</Compile>
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
using System.Linq;
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+
using JetBrains.ReSharper.Psi.Util;
9+
10+
namespace CleanCode.Features.TooManyDependencies
11+
{
12+
[ElementProblemAnalyzer(typeof(IConstructorDeclaration), HighlightingTypes = new []
13+
{
14+
typeof(TooManyDependenciesHighlighting)
15+
})]
16+
public class TooManyDependenciesCheckVb : ElementProblemAnalyzer<IConstructorDeclaration>
17+
{
18+
protected override void Run(IConstructorDeclaration element, ElementProblemAnalyzerData data, IHighlightingConsumer consumer)
19+
{
20+
var maxDependencies = data.SettingsStore.GetValue((CleanCodeSettings s) => s.MaximumConstructorDependencies);
21+
22+
var dependencies = element.ParameterDeclarations.Select(
23+
declaration => declaration.DeclaredElement != null &&
24+
declaration.DeclaredElement.Type.IsInterfaceType());
25+
26+
var dependenciesCount = dependencies.Count();
27+
if (dependenciesCount > maxDependencies)
28+
{
29+
var highlighting = new TooManyDependenciesHighlighting(element.GetNameDocumentRange());
30+
consumer.AddHighlighting(highlighting);
31+
}
32+
}
33+
}
34+
}

CleanCode/src/CleanCode/Features/TooManyDependencies/TooManyDependenciesHighlighting.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@
44
using JetBrains.DocumentModel;
55
using JetBrains.ReSharper.Feature.Services.Daemon;
66
using JetBrains.ReSharper.Psi.CSharp;
7+
using JetBrains.ReSharper.Psi.VB;
78

89
[assembly: RegisterConfigurableSeverity(TooManyDependenciesHighlighting.SeverityID, null,
910
CleanCodeHighlightingGroupIds.CleanCode, "Too many dependencies", "Too many dependencies passed into constructor.",
1011
Severity.WARNING, false)]
1112

1213
namespace CleanCode.Features.TooManyDependencies
1314
{
14-
[ConfigurableSeverityHighlighting(SeverityID, CSharpLanguage.Name)]
15+
[ConfigurableSeverityHighlighting(SeverityID, CSharpLanguage.Name + "," + VBLanguage.Name)]
1516
public class TooManyDependenciesHighlighting : IHighlighting
1617
{
1718
internal const string SeverityID = "TooManyDependencies";

0 commit comments

Comments
 (0)