From 11c3eb3470f73ee6421a83e1ff944a829e53140a Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Fri, 18 Jul 2014 23:44:56 +0200 Subject: [PATCH] Ad #316: Error when running Search for issues with Automatically Fix enabled. Add SupportsAutoFix (default = false) property to prevent issues from trying to 'fix' code which cannot be fixed without user interaction. --- .../Project/Src/Refactoring/SearchForIssuesCommand.cs | 2 +- .../ICSharpCode.NRefactory.CSharp/Refactoring/IssueAttribute.cs | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/SearchForIssuesCommand.cs b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/SearchForIssuesCommand.cs index 505eebfa84..462a225070 100644 --- a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/SearchForIssuesCommand.cs +++ b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/SearchForIssuesCommand.cs @@ -226,7 +226,7 @@ namespace CSharpBinding.Refactoring cancellationToken.ThrowIfCancellationRequested(); var issues = provider.GetIssues(context).ToList(); // Fix issues, if possible: - if (issues.Any(i => i.Actions.Count > 0)) { + if (provider.Attribute.SupportsAutoFix && issues.Any(i => i.Actions.Count > 0)) { using (var script = context.StartScript()) { foreach (var issue in issues) { if (issue.Actions.Count > 0) { diff --git a/src/Libraries/NRefactory/ICSharpCode.NRefactory.CSharp/Refactoring/IssueAttribute.cs b/src/Libraries/NRefactory/ICSharpCode.NRefactory.CSharp/Refactoring/IssueAttribute.cs index 2d97900196..0a72c4728b 100644 --- a/src/Libraries/NRefactory/ICSharpCode.NRefactory.CSharp/Refactoring/IssueAttribute.cs +++ b/src/Libraries/NRefactory/ICSharpCode.NRefactory.CSharp/Refactoring/IssueAttribute.cs @@ -41,6 +41,7 @@ namespace ICSharpCode.NRefactory.CSharp public string SuppressMessageCheckId { get; set; } public int PragmaWarning { get; set; } public bool IsEnabledByDefault { get; set; } + public bool SupportsAutoFix { get; set; } public Severity Severity { get; set; }