Skip to content

Commit

Permalink
Merge pull request #6096 from Rsge/next
Browse files Browse the repository at this point in the history
Unified QuickFix classes' layout & added Rename-QuickFix localization
  • Loading branch information
Vogel612 authored Mar 26, 2023
2 parents c8f46f7 + 766eae8 commit c0998dd
Show file tree
Hide file tree
Showing 30 changed files with 130 additions and 126 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -106,10 +106,7 @@ public override void Fix(IInspectionResult result, IRewriteSession rewriteSessio
}
}

public override string Description(IInspectionResult result)
{
return Resources.Inspections.QuickFixes.AccessSheetUsingCodeNameQuickFix;
}
public override string Description(IInspectionResult result) => Resources.Inspections.QuickFixes.AccessSheetUsingCodeNameQuickFix;

public override bool CanFixMultiple => true;
public override bool CanFixInProcedure => true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,10 +73,10 @@ public override void Fix(IInspectionResult result, IRewriteSession rewriteSessio
_attributesUpdater.AddAttribute(rewriteSession, declaration, attributeName, annotation.AttributeValues(annotationInstance));
}

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

public override CodeKind TargetCodeKind => CodeKind.AttributesCode;

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

public override bool CanFixMultiple => true;
public override bool CanFixInProcedure => true;
public override bool CanFixInModule => true;
Expand Down
19 changes: 8 additions & 11 deletions Rubberduck.CodeAnalysis/QuickFixes/Concrete/AddStepOneQuickFix.cs
Original file line number Diff line number Diff line change
Expand Up @@ -42,17 +42,6 @@ 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)
{
return Resources.Inspections.QuickFixes.AddStepOneQuickFix;
}

public override void Fix(IInspectionResult result, IRewriteSession rewriteSession)
{
var rewriter = rewriteSession.CheckOutModuleRewriter(result.QualifiedSelection.QualifiedName);
Expand All @@ -76,5 +65,13 @@ private static int GetToExpressionEnd(ForNextStmtContext context)

throw new InvalidOperationException();
}

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

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;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -85,10 +85,10 @@ public override void Fix(IInspectionResult result, IRewriteSession rewriteSessio
_attributesUpdater.UpdateAttribute(rewriteSession, declaration, attributeName, attributeValuesFromAnnotation, oldValues: attributeValues);
}

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

public override CodeKind TargetCodeKind => CodeKind.AttributesCode;

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

public override bool CanFixMultiple => true;
public override bool CanFixInProcedure => true;
public override bool CanFixInModule => true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,12 +44,6 @@ public AnnotateEntryPointQuickFix(IAnnotationUpdater annotationUpdater, Rubberdu
_annotationUpdater = annotationUpdater;
}

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 void Fix(IInspectionResult result, IRewriteSession rewriteSession)
{
var module = result.QualifiedSelection.QualifiedName;
Expand All @@ -65,5 +59,11 @@ public override void Fix(IInspectionResult result, IRewriteSession rewriteSessio
}

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

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;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -77,14 +77,6 @@ public override void Fix(IInspectionResult result, IRewriteSession rewriteSessio
InsertLocalVariableDeclarationAndAssignment(rewriter, result.Target, localIdentifier);
}

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)
{
IAssignedByValParameterQuickFixDialog view = null;
Expand Down Expand Up @@ -165,5 +157,14 @@ private void InsertLocalVariableDeclarationAndAssignment(IModuleRewriter rewrite
rewriter.Remove(endOfStmtCtxt);
rewriter.InsertAfter(insertCtxt.Stop.TokenIndex, $"{endOfStmtCtxtComment}{endOfStmtCtxtEndFormat}{localVariableDeclaration}" + $"{endOfStmtCtxtEndFormat}{localVariableAssignment}{endOfStmtCtxtEndFormat}");
}

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;

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -194,14 +194,6 @@ 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)
{
return Array.IndexOf(((VBAParser.ArgListContext)context.Parent).arg().ToArray(), context);
Expand All @@ -212,5 +204,13 @@ private static void ReplaceTypeHint(RuleContext context, IModuleRewriter rewrite
var typeHintContext = ((ParserRuleContext)context).GetDescendent<VBAParser.TypeHintContext>();
rewriter.Replace(typeHintContext, "&");
}

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;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,6 @@ public override void Fix(IInspectionResult result, IRewriteSession rewriteSessio
}
}

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

private void UpdateSignature(Declaration target, ParameterDeclaration arg, IRewriteSession rewriteSession)
{
var subStmt = (VBAParser.SubStmtContext) target.Context;
Expand Down Expand Up @@ -107,6 +105,8 @@ private void UpdateCall(IdentifierReference reference, int argIndex, IRewriteSes
rewriter.InsertAfter(argListContext.Stop.TokenIndex, ")");
}

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

public override bool CanFixMultiple => true;
public override bool CanFixInProcedure => false;
public override bool CanFixInModule => false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -180,14 +180,6 @@ 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)
{
return declaration.References
Expand All @@ -200,5 +192,13 @@ private bool IsReturnStatement(Declaration declaration, IdentifierReference assi
{
return assignment.ParentScoping.Equals(declaration) && assignment.Declaration.Equals(declaration);
}

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;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -84,18 +84,17 @@ public DeclareAsExplicitTypeQuickFix(ImplicitTypeToExplicitRefactoringAction ref
_refactoring = refactoringAction;
}

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;

public override void Fix(IInspectionResult result, IRewriteSession rewriteSession)
{
_refactoring.Refactor(new ImplicitTypeToExplicitModel(result.Target), rewriteSession);
}

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

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;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,14 @@ namespace Rubberduck.CodeAnalysis.QuickFixes.Concrete
/// </example>
internal class ExpandBangNotationQuickFix : QuickFixBase
{
private readonly string NonIdentifierCharacters = "[](){}\r\n\t.,'\"\\ |!@#$%^&*-+:=; ";
private readonly string AdditionalNonFirstIdentifierCharacters = "0123456789_";

private static readonly Dictionary<string, string> DefaultMemberOverrides = new Dictionary<string, string>
{
["Excel.Range._Default"] = "Item"
};

private readonly IDeclarationFinderProvider _declarationFinderProvider;

public ExpandBangNotationQuickFix(IDeclarationFinderProvider declarationFinderProvider)
Expand Down Expand Up @@ -121,24 +129,12 @@ private bool IsNotLegalIdentifierName(string declarationName)
|| AdditionalNonFirstIdentifierCharacters.Contains(declarationName[0]); ;
}

public override string Description(IInspectionResult result)
{
return Resources.Inspections.QuickFixes.ExpandBangNotationQuickFix;
}
public override string Description(IInspectionResult result) => 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 readonly string NonIdentifierCharacters = "[](){}\r\n\t.,'\"\\ |!@#$%^&*-+:=; ";
private readonly string AdditionalNonFirstIdentifierCharacters = "0123456789_";

private static readonly Dictionary<string, string> DefaultMemberOverrides = new Dictionary<string, string>
{
["Excel.Range._Default"] = "Item"
};

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,19 @@ namespace Rubberduck.CodeAnalysis.QuickFixes.Concrete
/// </example>
internal class ExpandDefaultMemberQuickFix : QuickFixBase
{
private string NonIdentifierCharacters = "[](){}\r\n\t.,'\"\\ |!@#$%^&*-+:=; ";
private string AdditionalNonFirstIdentifierCharacters = "0123456789_";

private static readonly Dictionary<string, string> DefaultMemberBaseOverrides = new Dictionary<string, string>
{
["Excel.Range._Default"] = "Item"
};

private static readonly Dictionary<string, Dictionary<int, string>> DefaultMemberArgumentNumberOverrides = new Dictionary<string, Dictionary<int, string>>
{
["Excel.Range._Default"] = new Dictionary<int, string> { [0] = "Value" }
};

private readonly IDeclarationFinderProvider _declarationFinderProvider;

public ExpandDefaultMemberQuickFix(IDeclarationFinderProvider declarationFinderProvider)
Expand Down Expand Up @@ -165,28 +178,12 @@ private static VBAParser.ArgumentListContext ArgumentList(IdentifierReference in
}
}

public override string Description(IInspectionResult result)
{
return Resources.Inspections.QuickFixes.ExpandDefaultMemberQuickFix;
}
public override string Description(IInspectionResult result) => 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_";

private static readonly Dictionary<string, string> DefaultMemberBaseOverrides = new Dictionary<string, string>
{
["Excel.Range._Default"] = "Item"
};

private static readonly Dictionary<string, Dictionary<int, string>> DefaultMemberArgumentNumberOverrides = new Dictionary<string, Dictionary<int, string>>
{
["Excel.Range._Default"] = new Dictionary<int, string>{[0] = "Value"}
};
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -52,12 +52,6 @@ public IgnoreInModuleQuickFix(IAnnotationUpdater annotationUpdater, RubberduckPa
_annotationUpdater = annotationUpdater;
}

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;

public override void Fix(IInspectionResult result, IRewriteSession rewriteSession)
{
var module = result.QualifiedSelection.QualifiedName;
Expand Down Expand Up @@ -101,5 +95,11 @@ public override void Fix(IInspectionResult result, IRewriteSession rewriteSessio
}

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

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;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -48,12 +48,6 @@ public IgnoreOnceQuickFix(IAnnotationUpdater annotationUpdater, RubberduckParser
_annotationUpdater = annotationUpdater;
}

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 void Fix(IInspectionResult result, IRewriteSession rewriteSession)
{
if (result.Target?.DeclarationType.HasFlag(DeclarationType.Module) ?? false)
Expand Down Expand Up @@ -109,5 +103,11 @@ private void FixModule(IInspectionResult result, IRewriteSession rewriteSession)
}

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

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;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,6 @@ public override void Fix(IInspectionResult result, IRewriteSession rewriteSessio
}
}

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

private void FixMethods(Declaration target, IRewriteSession rewriteSession)
{
var declarationParameters =
Expand Down Expand Up @@ -111,6 +109,8 @@ private void FixMethod(VBAParser.ArgContext context, QualifiedSelection qualifie
}
}

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

public override bool CanFixMultiple => true;
public override bool CanFixInProcedure => true;
public override bool CanFixInModule => true;
Expand Down
Loading

0 comments on commit c0998dd

Please sign in to comment.