Skip to content

Commit

Permalink
Merge pull request #5531 from MDoerner/RedesignOfQuickFixApplication
Browse files Browse the repository at this point in the history
Redesign of quickfix application mechanics.
  • Loading branch information
retailcoder committed Jul 4, 2020
2 parents 9dd34c5 + 4e2f8ed commit 35cb948
Show file tree
Hide file tree
Showing 76 changed files with 835 additions and 302 deletions.
2 changes: 2 additions & 0 deletions Rubberduck.CodeAnalysis/QuickFixes/Abstract/QuickFixBase.cs
Expand Up @@ -57,8 +57,10 @@ public void RemoveInspections(params Type[] inspections)
public abstract void Fix(IInspectionResult result, IRewriteSession rewriteSession);
public abstract string Description(IInspectionResult result);

public abstract bool CanFixMultiple { get; }
public abstract bool CanFixInProcedure { get; }
public abstract bool CanFixInModule { get; }
public abstract bool CanFixInProject { get; }
public abstract bool CanFixAll { get; }
}
}
Expand Up @@ -39,8 +39,10 @@ public override void Fix(IInspectionResult result, IRewriteSession rewriteSessio

protected abstract void Refactor(IInspectionResult result);

public override bool CanFixMultiple => false;
public override bool CanFixInProcedure => false;
public override bool CanFixInModule => false;
public override bool CanFixInProject => false;
public override bool CanFixAll => false;
}
}
Expand Up @@ -17,7 +17,7 @@ namespace Rubberduck.CodeAnalysis.QuickFixes.Concrete
/// <inspections>
/// <inspection name="SheetAccessedUsingStringInspection" />
/// </inspections>
/// <canfix procedure="true" module="true" project="true" />
/// <canfix multiple="true" procedure="true" module="true" project="true" all="true" />
/// <example>
/// <before>
/// <![CDATA[
Expand Down Expand Up @@ -111,8 +111,10 @@ public override string Description(IInspectionResult result)
return Resources.Inspections.QuickFixes.AccessSheetUsingCodeNameQuickFix;
}

public override bool CanFixMultiple => true;
public override bool CanFixInProcedure => true;
public override bool CanFixInModule => true;
public override bool CanFixInProject => true;
public override bool CanFixAll => true;
}
}
Expand Up @@ -16,7 +16,7 @@ namespace Rubberduck.CodeAnalysis.QuickFixes.Concrete
/// <inspection name="MissingModuleAnnotationInspection" />
/// <inspection name="MissingMemberAnnotationInspection" />
/// </inspections>
/// <canfix procedure="true" module="true" project="true" />
/// <canfix multiple="true" procedure="true" module="true" project="true" all="true"/>
/// <example>
/// <before>
/// <![CDATA[
Expand Down Expand Up @@ -79,8 +79,10 @@ private static string AttributeBaseName(string attributeName, Declaration declar

public override string Description(IInspectionResult result) => Resources.Inspections.QuickFixes.AddAttributeAnnotationQuickFix;

public override bool CanFixMultiple => true;
public override bool CanFixInProcedure => true;
public override bool CanFixInModule => true;
public override bool CanFixInProject => true;
public override bool CanFixAll => true;
}
}
Expand Up @@ -15,7 +15,7 @@ namespace Rubberduck.CodeAnalysis.QuickFixes.Concrete
/// <inspection name="HungarianNotationInspection" />
/// <inspection name="UseMeaningfulNameInspection" />
/// </inspections>
/// <canfix procedure="false" module="false" project="false" />
/// <canfix multiple="true" procedure="false" module="false" project="false" all="false"/>
internal sealed class AddIdentifierToWhiteListQuickFix : QuickFixBase
{
private readonly IConfigurationService<CodeInspectionSettings> _settings;
Expand All @@ -38,8 +38,10 @@ public override void Fix(IInspectionResult result, IRewriteSession rewriteSessio

public override string Description(IInspectionResult result) => Resources.Inspections.QuickFixes.WhiteListIdentifierQuickFix;

public override bool CanFixInProcedure { get; } = false;
public override bool CanFixInModule { get; } = false;
public override bool CanFixInProject { get; } = false;
public override bool CanFixMultiple => true;
public override bool CanFixInProcedure => false;
public override bool CanFixInModule => false;
public override bool CanFixInProject => false;
public override bool CanFixAll => false;
}
}
Expand Up @@ -15,7 +15,7 @@ namespace Rubberduck.CodeAnalysis.QuickFixes.Concrete
/// <inspections>
/// <inspection name="MissingAttributeInspection" />
/// </inspections>
/// <canfix procedure="true" module="true" project="true" />
/// <canfix multiple="true" procedure="true" module="true" project="true" all="true" />
/// <example>
/// <before>
/// <![CDATA[
Expand Down Expand Up @@ -77,8 +77,10 @@ public override void Fix(IInspectionResult result, IRewriteSession rewriteSessio

public override CodeKind TargetCodeKind => CodeKind.AttributesCode;

public override bool CanFixMultiple => true;
public override bool CanFixInProcedure => true;
public override bool CanFixInModule => true;
public override bool CanFixInProject => true;
public override bool CanFixAll => true;
}
}
Expand Up @@ -13,7 +13,7 @@ namespace Rubberduck.CodeAnalysis.QuickFixes.Concrete
/// <inspections>
/// <inspection name="StepIsNotSpecifiedInspection" />
/// </inspections>
/// <canfix procedure="true" module="true" project="true" />
/// <canfix multiple="true" procedure="true" module="true" project="true" all="true" />
/// <example>
/// <before>
/// <![CDATA[
Expand Down Expand Up @@ -42,11 +42,11 @@ public AddStepOneQuickFix()
: base(typeof(StepIsNotSpecifiedInspection))
{}

public override bool CanFixMultiple => true;
public override bool CanFixInProcedure => true;

public override bool CanFixInModule => true;

public override bool CanFixInProject => true;
public override bool CanFixAll => true;

public override string Description(IInspectionResult result)
{
Expand Down
Expand Up @@ -16,7 +16,7 @@ namespace Rubberduck.CodeAnalysis.QuickFixes.Concrete
/// <inspections>
/// <inspection name="AttributeValueOutOfSyncInspection" />
/// </inspections>
/// <canfix procedure="true" module="true" project="true" />
/// <canfix multiple="true" procedure="true" module="true" project="true" all="true" />
/// <example>
/// <before>
/// <![CDATA[
Expand Down Expand Up @@ -94,8 +94,10 @@ private static bool IsDefaultAttribute(ComponentType componentType, string attri

public override string Description(IInspectionResult result) => Resources.Inspections.QuickFixes.AdjustAttributeAnnotationQuickFix;

public override bool CanFixMultiple => true;
public override bool CanFixInProcedure => true;
public override bool CanFixInModule => true;
public override bool CanFixInProject => true;
public override bool CanFixAll => true;
}
}
Expand Up @@ -17,7 +17,7 @@ namespace Rubberduck.CodeAnalysis.QuickFixes.Concrete
/// <inspections>
/// <inspection name="AttributeValueOutOfSyncInspection" />
/// </inspections>
/// <canfix procedure="true" module="true" project="true" />
/// <canfix multiple="true" procedure="true" module="true" project="true" all="true" />
/// <example>
/// <before>
/// <![CDATA[
Expand Down Expand Up @@ -89,8 +89,10 @@ public override void Fix(IInspectionResult result, IRewriteSession rewriteSessio

public override CodeKind TargetCodeKind => CodeKind.AttributesCode;

public override bool CanFixMultiple => true;
public override bool CanFixInProcedure => true;
public override bool CanFixInModule => true;
public override bool CanFixInProject => true;
public override bool CanFixAll => true;
}
}
Expand Up @@ -11,7 +11,7 @@ namespace Rubberduck.CodeAnalysis.QuickFixes.Concrete
/// <inspections>
/// <inspection name="ApplicationWorksheetFunctionInspection" />
/// </inspections>
/// <canfix procedure="true" module="true" project="true" />
/// <canfix multiple="true" procedure="true" module="true" project="true" all="true" />
/// <example>
/// <before>
/// <![CDATA[
Expand Down Expand Up @@ -42,8 +42,10 @@ public override void Fix(IInspectionResult result, IRewriteSession rewriteSessio

public override string Description(IInspectionResult result) => Resources.Inspections.QuickFixes.ApplicationWorksheetFunctionQuickFix;

public override bool CanFixMultiple => true;
public override bool CanFixInProcedure => true;
public override bool CanFixInModule => true;
public override bool CanFixInProject => true;
public override bool CanFixAll => true;
}
}
Expand Up @@ -23,7 +23,7 @@ namespace Rubberduck.CodeAnalysis.QuickFixes.Concrete
/// <inspections>
/// <inspection name="AssignedByValParameterInspection" />
/// </inspections>
/// <canfix procedure="true" module="true" project="true" />
/// <canfix multiple="false" procedure="false" module="false" project="false" all="false" />
/// <example>
/// <before>
/// <![CDATA[
Expand Down Expand Up @@ -79,9 +79,11 @@ public override void Fix(IInspectionResult result, IRewriteSession rewriteSessio

public override string Description(IInspectionResult result) => Resources.Inspections.QuickFixes.AssignedByValParameterMakeLocalCopyQuickFix;

public override bool CanFixMultiple => false;
public override bool CanFixInProcedure => false;
public override bool CanFixInModule => false;
public override bool CanFixInProject => false;
public override bool CanFixAll => false;

private string PromptForLocalVariableName(Declaration target)
{
Expand Down
Expand Up @@ -12,7 +12,7 @@ namespace Rubberduck.CodeAnalysis.QuickFixes.Concrete
/// <inspections>
/// <inspection name="ModuleScopeDimKeywordInspection" />
/// </inspections>
/// <canfix procedure="false" module="true" project="true" />
/// <canfix multiple="true" procedure="false" module="true" project="true" all="true" />
/// <example>
/// <before>
/// <![CDATA[
Expand Down Expand Up @@ -49,8 +49,10 @@ public override void Fix(IInspectionResult result, IRewriteSession rewriteSessio

public override string Description(IInspectionResult result) => Resources.Inspections.QuickFixes.ChangeDimToPrivateQuickFix;

public override bool CanFixMultiple => true;
public override bool CanFixInProcedure => false;
public override bool CanFixInModule => true;
public override bool CanFixInProject => true;
public override bool CanFixAll => true;
}
}
Expand Up @@ -19,7 +19,7 @@ namespace Rubberduck.CodeAnalysis.QuickFixes.Concrete
/// <inspections>
/// <inspection name="IntegerDataTypeInspection" />
/// </inspections>
/// <canfix procedure="true" module="true" project="true" />
/// <canfix multiple="true" procedure="true" module="true" project="true" all="true" />
/// <example>
/// <before>
/// <![CDATA[
Expand Down Expand Up @@ -196,9 +196,11 @@ public override void Fix(IInspectionResult result, IRewriteSession rewriteSessio

public override string Description(IInspectionResult result) => Resources.Inspections.QuickFixes.IntegerDataTypeQuickFix;

public override bool CanFixMultiple => true;
public override bool CanFixInProcedure => true;
public override bool CanFixInModule => true;
public override bool CanFixInProject => true;
public override bool CanFixAll => true;

private static int GetParameterIndex(VBAParser.ArgContext context)
{
Expand Down
Expand Up @@ -17,7 +17,7 @@ namespace Rubberduck.CodeAnalysis.QuickFixes.Concrete
/// <inspections>
/// <inspection name="ProcedureCanBeWrittenAsFunctionInspection" />
/// </inspections>
/// <canfix procedure="false" module="false" project="false" />
/// <canfix multiple="true" procedure="false" module="false" project="false" all="false" />
/// <example>
/// <before>
/// <![CDATA[
Expand Down Expand Up @@ -107,8 +107,10 @@ private void UpdateCall(IdentifierReference reference, int argIndex, IRewriteSes
rewriter.InsertAfter(argListContext.Stop.TokenIndex, ")");
}

public override bool CanFixMultiple => true;
public override bool CanFixInProcedure => false;
public override bool CanFixInModule => false;
public override bool CanFixInProject => false;
public override bool CanFixAll => false;
}
}
Expand Up @@ -19,7 +19,7 @@ namespace Rubberduck.CodeAnalysis.QuickFixes.Concrete
/// <inspection name="NonReturningFunctionInspection" />
/// <inspection name="FunctionReturnValueNotUsedInspection" />
/// </inspections>
/// <canfix procedure="false" module="true" project="false" />
/// <canfix multiple="true" procedure="false" module="true" project="false" all="false" />
/// <example>
/// <before>
/// <![CDATA[
Expand Down Expand Up @@ -182,9 +182,11 @@ private static void ConvertExitPropertyStatements(VBAParser.PropertyGetStmtConte

public override string Description(IInspectionResult result) => Resources.Inspections.QuickFixes.ConvertFunctionToProcedureQuickFix;

public override bool CanFixMultiple => true;
public override bool CanFixInProcedure => false;
public override bool CanFixInModule => true;
public override bool CanFixInProject => false;
public override bool CanFixAll => false;

private IEnumerable<ParserRuleContext> GetReturnStatements(Declaration declaration)
{
Expand Down
Expand Up @@ -13,7 +13,7 @@ namespace Rubberduck.CodeAnalysis.QuickFixes.Concrete
/// <inspections>
/// <inspection name="VariableTypeNotDeclaredInspection" />
/// </inspections>
/// <canfix procedure="true" module="true" project="true" />
/// <canfix multiple="true" procedure="true" module="true" project="true" all="true" />
/// <example>
/// <before>
/// <![CDATA[
Expand Down Expand Up @@ -53,8 +53,10 @@ public override void Fix(IInspectionResult result, IRewriteSession rewriteSessio

public override string Description(IInspectionResult result) => Resources.Inspections.QuickFixes.DeclareAsExplicitVariantQuickFix;

public override bool CanFixMultiple => true;
public override bool CanFixInProcedure => true;
public override bool CanFixInModule => true;
public override bool CanFixInProject => true;
public override bool CanFixAll => true;
}
}
Expand Up @@ -20,7 +20,7 @@ namespace Rubberduck.CodeAnalysis.QuickFixes.Concrete
/// <inspection name="UseOfBangNotationInspection" />
/// <inspection name="UseOfRecursiveBangNotationInspection" />
/// </inspections>
/// <canfix procedure="true" module="true" project="true" />
/// <canfix multiple="true" procedure="true" module="true" project="true" all="true" />
/// <example>
/// <before>
/// <![CDATA[
Expand Down Expand Up @@ -126,9 +126,11 @@ public override string Description(IInspectionResult result)
return Resources.Inspections.QuickFixes.ExpandBangNotationQuickFix;
}

public override bool CanFixMultiple => true;
public override bool CanFixInProcedure => true;
public override bool CanFixInModule => true;
public override bool CanFixInProject => true;
public override bool CanFixAll => true;

private string NonIdentifierCharacters = "[](){}\r\n\t.,'\"\\ |!@#$%^&*-+:=; ";
private string AdditionalNonFirstIdentifierCharacters = "0123456789_";
Expand Down
Expand Up @@ -24,7 +24,7 @@ namespace Rubberduck.CodeAnalysis.QuickFixes.Concrete
/// <inspection name="ImplicitRecursiveDefaultMemberAccessInspection" />
/// <inspection name="SuspiciousLetAssignmentInspection" />
/// </inspections>
/// <canfix procedure="true" module="true" project="true" />
/// <canfix multiple="true" procedure="true" module="true" project="true" all="true" />
/// <example>
/// <before>
/// <![CDATA[
Expand Down Expand Up @@ -170,9 +170,11 @@ public override string Description(IInspectionResult result)
return Resources.Inspections.QuickFixes.ExpandDefaultMemberQuickFix;
}

public override bool CanFixMultiple => true;
public override bool CanFixInProcedure => true;
public override bool CanFixInModule => true;
public override bool CanFixInProject => true;
public override bool CanFixAll => true;

private string NonIdentifierCharacters = "[](){}\r\n\t.,'\"\\ |!@#$%^&*-+:=; ";
private string AdditionalNonFirstIdentifierCharacters = "0123456789_";
Expand Down

0 comments on commit 35cb948

Please sign in to comment.