Skip to content

Commit fe966b3

Browse files
gfsdaalcant
andauthored
Rev version to 1.0, remove alpha flag (#528)
* Rev version to 1.0, remove alpha flag * Improve VS option description clarity * Simplify pipeline triggers * Adds Is Fixable to DevSkimRuleProcession to Ensure fixes are applicable before returning via analyze command * Remove extra usings * Clean up --------- Co-authored-by: David Alcantar <50344095+daalcant@users.noreply.github.com>
1 parent 5b8f12a commit fe966b3

19 files changed

+35
-90
lines changed

DevSkim-DotNet/Microsoft.DevSkim.CLI/Commands/AnalyzeCommand.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -445,14 +445,14 @@ void parseFileEntry(FileEntry fileEntry)
445445
issue.Rule.Id,
446446
issue.Rule.Severity,
447447
issue.Rule.Name);
448-
448+
var issueText = fileText.Substring(issue.Boundary.Index, issue.Boundary.Length);
449449
IssueRecord record = new DevSkim.IssueRecord(
450450
Filename: TryRelativizePath(_opts.BasePath, fileEntry.FullPath),
451451
Filesize: fileText.Length,
452-
TextSample: _opts.SkipExcerpts ? string.Empty : fileText.Substring(issue.Boundary.Index, issue.Boundary.Length),
452+
TextSample: _opts.SkipExcerpts ? string.Empty : issueText,
453453
Issue: issue,
454454
Language: languageInfo.Name,
455-
Fixes: issue.Rule.Fixes);
455+
Fixes: issue.Rule.Fixes?.Where(x => DevSkimRuleProcessor.IsFixable(issueText, x)).ToList());
456456

457457
outputWriter.WriteIssue(record);
458458
}

DevSkim-DotNet/Microsoft.DevSkim.LanguageServer/TextDocumentSyncHandler.cs

+3-2
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,10 @@ private async Task<Unit> GenerateDiagnosticsForTextDocumentAsync(string text, in
6969
for (int i = 0; i < issue.Rule.Fixes?.Count; i++)
7070
{
7171
CodeFix fix = issue.Rule.Fixes[i];
72-
if (fix.Replacement is not null)
72+
var targetText = text.Substring(issue.Boundary.Index, issue.Boundary.Length);
73+
if (fix.Replacement is not null && DevSkimRuleProcessor.IsFixable(targetText, fix))
7374
{
74-
string potentialFix = DevSkimRuleProcessor.Fix(text.Substring(issue.Boundary.Index, issue.Boundary.Length), fix);
75+
string potentialFix = DevSkimRuleProcessor.Fix(targetText, fix);
7576
codeFixes.Add(new CodeFixMapping(diag, potentialFix, uri.ToUri(), $"Replace with {potentialFix}", version, issue.Boundary.Index, issue.Boundary.Index + issue.Boundary.Length, false));
7677
}
7778
}

DevSkim-DotNet/Microsoft.DevSkim.VisualStudio/ContentTypes.cs

-19
This file was deleted.

DevSkim-DotNet/Microsoft.DevSkim.VisualStudio/DevSkimLanguageClient.cs

-4
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,13 @@
66
using System.Collections.Generic;
77
using System.Diagnostics;
88
using System.IO;
9-
using System.IO.Pipes;
109
using System.Reflection;
1110
using System.Threading;
1211
using System.Threading.Tasks;
1312
using Microsoft.VisualStudio.Threading;
14-
using Newtonsoft.Json.Linq;
1513
using Task = System.Threading.Tasks.Task;
16-
using Microsoft.VisualStudio.LanguageServer.Protocol;
1714
using System.ComponentModel.Composition;
1815
using Microsoft.Build.Framework.XamlTypes;
19-
using Microsoft.DevSkim.LanguageProtoInterop;
2016
using Microsoft.DevSkim.VisualStudio.ProcessTracker;
2117
using Microsoft.DevSkim.VisualStudio;
2218

DevSkim-DotNet/Microsoft.DevSkim.VisualStudio/DevSkimSuggestedAction.cs

+1-6
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,7 @@
33
using Microsoft.VisualStudio.Imaging.Interop;
44
using Microsoft.VisualStudio.Language.Intellisense;
55
using Microsoft.VisualStudio.Text;
6-
using System;
7-
using System.Collections.Generic;
86
using System.Threading;
9-
using System.Threading.Tasks;
107
using System.Windows;
118
using System.Windows.Controls;
129
using System.Windows.Documents;
@@ -16,8 +13,6 @@ namespace Microsoft.DevSkim.VisualStudio
1613
using Microsoft.DevSkim.LanguageProtoInterop;
1714
using System;
1815
using System.Collections.Generic;
19-
using System.Linq;
20-
using System.Text;
2116
using System.Threading.Tasks;
2217

2318
internal class DevSkimSuggestedAction: ISuggestedAction
@@ -78,7 +73,7 @@ public void Dispose()
7873

7974
public Task<IEnumerable<SuggestedActionSet>> GetActionSetsAsync(CancellationToken cancellationToken)
8075
{
81-
return null;
76+
return Task.FromResult<IEnumerable<SuggestedActionSet>>(Array.Empty<SuggestedActionSet>());
8277
}
8378

8479
public Task<object> GetPreviewAsync(CancellationToken cancellationToken)

DevSkim-DotNet/Microsoft.DevSkim.VisualStudio/Microsoft.DevSkim.VisualStudio.csproj

-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@
4848
<WarningLevel>4</WarningLevel>
4949
</PropertyGroup>
5050
<ItemGroup>
51-
<Compile Include="ContentTypes.cs" />
5251
<Compile Include="DevSkimFixMessageTarget.cs" />
5352
<Compile Include="DevSkimLanguageClient.cs" />
5453
<Compile Include="DevSkimSuggestedAction.cs" />

DevSkim-DotNet/Microsoft.DevSkim.VisualStudio/Options/GeneralOptionsPage.cs

+4-7
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,8 @@ namespace Microsoft.DevSkim.VisualStudio.Options
55
using Microsoft.Build.Framework.XamlTypes;
66
using Microsoft.VisualStudio.Shell;
77
using System;
8-
using System.Collections.Generic;
98
using System.ComponentModel;
10-
using System.ComponentModel.Design;
119
using System.Drawing;
12-
using System.Drawing.Design;
1310
using System.Runtime.InteropServices;
1411
using System.Windows.Forms;
1512
// When adding any property here, be sure to add it to IDevSkimOptions as well
@@ -147,13 +144,13 @@ protected override IWin32Window Window
147144
/// Ignore Options
148145
/// </summary>
149146
[Category(IgnoresCategory)]
150-
[DisplayName("Ignore Files")]
151-
[Description("Specify glob expression patterns to exclude files and folders which match from analysis.")]
147+
[DisplayName("Ignore Files by Globs")]
148+
[Description("Comma separated glob expression patterns to exclude files and folders which match from analysis.")]
152149
public string IgnoreFilesString { get; set; } = string.Empty;
153150

154151
[Category(IgnoresCategory)]
155-
[DisplayName("Ignore Rules List")]
156-
[Description("Exact string identity of DevSkim Rule IDs to ignore.")]
152+
[DisplayName("Ignore Rules by Id")]
153+
[Description("Comma separated list of exact string identity of DevSkim Rule IDs to ignore.")]
157154
public string IgnoreRulesListString { get; set; } = string.Empty;
158155

159156
[Category(IgnoresCategory)]

DevSkim-DotNet/Microsoft.DevSkim.VisualStudio/SettingsChangedNotifier.cs

-10
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,9 @@
11
// Copyright (c) Microsoft Corporation.
22
// Licensed under the MIT License.
33

4-
using System;
5-
using System.Collections.Generic;
6-
using System.IO;
7-
using System.Linq;
84
using System.Threading.Tasks;
95
using MediatR;
106
using Microsoft.DevSkim.LanguageProtoInterop;
11-
using Microsoft.VisualStudio.ComponentModelHost;
12-
using Microsoft.VisualStudio.LanguageServer.Protocol;
13-
using Microsoft.VisualStudio.Shell;
14-
using Microsoft.VisualStudio.Shell.Interop;
15-
using Newtonsoft.Json.Linq;
16-
using Newtonsoft.Json;
177
using StreamJsonRpc;
188

199
namespace Microsoft.DevSkim.VisualStudio

DevSkim-DotNet/Microsoft.DevSkim.VisualStudio/StaticData.cs

-3
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,6 @@
44
using System;
55
using System.Collections.Concurrent;
66
using System.Collections.Generic;
7-
using System.Linq;
8-
using System.Text;
9-
using System.Threading.Tasks;
107

118
internal static class StaticData
129
{

DevSkim-DotNet/Microsoft.DevSkim.VisualStudio/SuggestedActionsSourceProvider.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ internal class SuggestedActionsSourceProvider : ISuggestedActionsSourceProvider
1414
{
1515
public ISuggestedActionsSource CreateSuggestedActionsSource(ITextView textView, ITextBuffer textBuffer)
1616
{
17-
if (textBuffer == null && textView == null)
17+
if (textBuffer == null || textView == null)
1818
{
1919
return null;
2020
}

DevSkim-DotNet/Microsoft.DevSkim.VisualStudio/SuggestionActionsSource.cs

-8
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,15 @@
11
// Copyright (C) Microsoft. All rights reserved. Licensed under the MIT License.
22

33
using Microsoft.DevSkim.LanguageProtoInterop;
4-
using Microsoft.Internal.VisualStudio.PlatformUI;
5-
using Microsoft.VisualStudio.Experimentation;
64
using Microsoft.VisualStudio.Language.Intellisense;
75
using Microsoft.VisualStudio.Text;
86
using Microsoft.VisualStudio.Text.Editor;
97
using Microsoft.VisualStudio.Text.Operations;
10-
using Microsoft.VisualStudio.TextManager.Interop;
118
using System;
129
using System.Collections.Generic;
1310
using System.Linq;
1411
using System.Threading;
1512
using System.Threading.Tasks;
16-
using System.Windows.Documents;
1713

1814
namespace Microsoft.DevSkim.VisualStudio
1915
{
@@ -76,10 +72,6 @@ private bool Intersects(CodeFixMapping codeFixMapping, TextExtent wordExtent)
7672
return false;
7773
}
7874

79-
// Map FileName to Mapping of FileVersion to Potential fixes
80-
// This should come from DevSkimFixMessageTarget or StaticScannerSettings
81-
private Dictionary<string, Dictionary<int, HashSet<CodeFixMapping>>> _bucket_o_suggestions = new Dictionary<string, Dictionary<int, HashSet<CodeFixMapping>>>();
82-
8375
public Task<bool> HasSuggestedActionsAsync(ISuggestedActionCategorySet requestedActionCategories, SnapshotSpan range, CancellationToken cancellationToken)
8476
{
8577
return Task.Factory.StartNew(() =>

DevSkim-DotNet/Microsoft.DevSkim.VisualStudio/VisualStudioSettingsManager.cs

-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
{
33
using Microsoft;
44
using System;
5-
using System.Collections.Generic;
65
using Microsoft.DevSkim.LanguageProtoInterop;
76
using Microsoft.DevSkim.VisualStudio.Options;
87
using System.Linq;

DevSkim-DotNet/Microsoft.DevSkim/DevSkimRuleProcessor.cs

+22
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,28 @@ public static string Fix(string text, CodeFix fixRecord)
9595
return result;
9696
}
9797

98+
/// <summary>
99+
/// Checks if the target source can be fixed with the provided fix
100+
/// </summary>
101+
/// <param name="text"> Source code line </param>
102+
/// <param name="fixRecord"> Fix record to be applied </param>
103+
/// <returns> Fixed source code line </returns>
104+
public static bool IsFixable(string text, CodeFix fixRecord)
105+
{
106+
if (fixRecord?.FixType is { } fr && fr == FixType.RegexReplace)
107+
{
108+
if (fixRecord.Pattern is { })
109+
{
110+
Regex regex = new Regex(fixRecord.Pattern.Pattern ?? string.Empty);
111+
return regex.IsMatch(text);
112+
}
113+
}
114+
115+
return false;
116+
}
117+
118+
119+
98120
/// <summary>
99121
/// Generate appropriate suppression with comment style based on the filename
100122
/// </summary>

Pipelines/cli/devskim-cli-release.yml

-4
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@ trigger:
77
branches:
88
include:
99
- main
10-
paths:
11-
include:
12-
- DevSkim-DotNet
13-
- rules
1410
pr: none
1511

1612
resources:

Pipelines/vs/devskim-visualstudio-pr.yml

-6
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,6 @@ pr:
77
branches:
88
include:
99
- main
10-
paths:
11-
include:
12-
- Pipelines/vs/devskim-visualstudio-pr.yml
13-
- DevSkim-DotNet/Microsoft.DevSkim
14-
- DevSkim-DotNet/Microsoft.DevSkim.VisualStudio
15-
- rules
1610

1711
resources:
1812
repositories:

Pipelines/vs/devskim-visualstudio-release.yml

-5
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,6 @@ trigger:
77
branches:
88
include:
99
- main
10-
paths:
11-
include:
12-
- DevSkim-DotNet/Microsoft.DevSkim
13-
- DevSkim-DotNet/Microsoft.DevSkim.VisualStudio
14-
- rules
1510
pr: none
1611

1712
resources:

Pipelines/vscode/devskim-vscode-pr.yml

-5
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,6 @@ pr:
77
branches:
88
include:
99
- main
10-
paths:
11-
include:
12-
- Pipelines/vscode/devskim-vscode-pr.yml
13-
- DevSkim-VSCode-Plugin
14-
- rules
1510

1611
resources:
1712
repositories:

Pipelines/vscode/devskim-vscode-release.yml

-4
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@ trigger:
77
branches:
88
include:
99
- main
10-
paths:
11-
include:
12-
- DevSkim-VSCode-Plugin
13-
- rules
1410
pr: none
1511

1612
resources:

version.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json",
3-
"version": "0.8-alpha",
3+
"version": "1.0",
44
"publicReleaseRefSpec": [
55
"^refs/heads/main$",
66
"^refs/heads/v\\d+(?:\\.\\d+)?$"

0 commit comments

Comments
 (0)