Browse Source

Enable the GSOC context actions and issue providers.

newNRvisualizers
Daniel Grunwald 13 years ago
parent
commit
a69e79474f
  1. 227
      src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.addin
  2. 1
      src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.csproj
  3. 19
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/SDNamingConventionService.cs
  4. 10
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/SDRefactoringContext.cs
  5. 1
      src/AddIns/BackendBindings/CSharpBinding/Tests/CSharpBinding.Tests.csproj
  6. 72
      src/AddIns/BackendBindings/CSharpBinding/Tests/RegistrationTests.cs
  7. 5
      src/Libraries/NRefactory/ICSharpCode.NRefactory.CSharp/Refactoring/BaseRefactoringContext.cs
  8. 2
      src/Libraries/NRefactory/ICSharpCode.NRefactory.CSharp/Refactoring/CodeActions/ConvertConditionalToIfAction.cs
  9. 2
      src/Libraries/NRefactory/ICSharpCode.NRefactory.CSharp/Refactoring/CodeActions/ConvertIfToConditionalAction.cs
  10. 2
      src/Libraries/NRefactory/ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/InconsistentNamingIssue/NamingConventionService.cs
  11. 2
      src/Libraries/NRefactory/ICSharpCode.NRefactory.Tests/CSharp/CodeActions/ConvertConditionalToIfTests.cs
  12. 2
      src/Libraries/NRefactory/ICSharpCode.NRefactory.Tests/CSharp/CodeActions/ConvertIfToConditionalTests.cs

227
src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.addin

@ -151,107 +151,140 @@
</Path> </Path>
<Path path = "/SharpDevelop/ViewContent/TextEditor/C#/IssueProviders"> <Path path = "/SharpDevelop/ViewContent/TextEditor/C#/IssueProviders">
<Class id = "ConditionalToNullCoalescing" <Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.AccessToDisposedClosureIssue" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConditionalToNullCoalescingIssue" /> <Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.AccessToModifiedClosureIssue" />
<Class id = "ExplicitConversionInForEach" <Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.AssignmentMadeToSameVariableIssue" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.ExplicitConversionInForEachIssue" /> <Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.BitwiseOperationOnNonFlagsEnumIssue" />
<Class id = "NotImplementedException" <Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.CallToObjectEqualsViaBaseIssue" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.NotImplementedExceptionIssue" /> <Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.CallToVirtualFunctionFromConstructorIssue" />
<Class id = "RedundantInternal" <Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.CastExpressionOfIncompatibleTypeIssue" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantInternalIssue" /> <Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.CompareBooleanWithTrueOrFalseIssue" />
<Class id = "RedundantNamespaceUsage" <Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.CompareFloatWithEqualityOperatorIssue" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantNamespaceUsageIssue" /> <Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConditionalToNullCoalescingIssue" />
<Class id = "RedundantPrivate" <Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConstantConditionIssue" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantPrivateIssue" /> <Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.DoubleNegationIssue" />
<Class id = "RedundantThis" <Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ExceptionRethrowIssue" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantThisIssue" /> <Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ExplicitConversionInForEachIssue" />
<Class id = "RedundantUsing" <Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ExpressionIsAlwaysOfProvidedTypeIssue" />
class = "CSharpBinding.Refactoring.SDRedundantUsingIssue" /> <Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ExpressionIsNeverOfProvidedTypeIssue" />
<Class id = "StringIsNullOrEmpty" <Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ForControlVariableNotModifiedIssue" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.StringIsNullOrEmptyIssue" /> <Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.FormatStringIssue" />
<Class id = "UseVarKeyword" <Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.IdenticalConditionalBranchIssue" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.UseVarKeywordIssue" /> <Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.InconsistentNamingIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.IncorrectCallToObjectGetHashCodeIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.IncorrectExceptionParameterOrderingIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.LocalVariableHidesMemberIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.LocalVariableNotUsedIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.LocalVariableOnlyAssignedIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.MethodNeverReturnsIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.MethodOverloadHidesOptionalParameterIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.MultipleEnumerationIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.NegativeRelationalExpressionIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.NotImplementedExceptionIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.OptionalParameterCouldBeSkippedIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ParameterCanBeDemotedIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ParameterHidesMemberIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ParameterNotUsedIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ParameterOnlyAssignedIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantArrayInitializerCommaIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantAssignmentIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantAttributeParenthesesIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantCaseLabelIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantCatchIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantElseIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantFieldInitializerIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantInternalIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantNamespaceUsageIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantObjectCreationArgumentListIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantObjectOrCollectionInitializerIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantPrivateIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantThisIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantToStringIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantTypeCastIssue" />
<Class class = "CSharpBinding.Refactoring.SDRedundantUsingIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.RedundantWhereWithPredicateIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReferenceEqualsCalledWithValueTypeIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReferenceToStaticMemberViaDerivedTypeIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.StaticFieldInGenericTypeIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.StringIsNullOrEmptyIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ThreadStaticOnInstanceFieldIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.TypeParameterNotUsedIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.UnreachableCodeIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.UseVarKeywordIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.ValueParameterUnusedIssue" />
<Class class = "ICSharpCode.NRefactory.CSharp.Refactoring.VariableDeclaredInWideScopeIssue" />
</Path> </Path>
<Path path = "/SharpDevelop/ViewContent/TextEditor/C#/ContextActions"> <Path path = "/SharpDevelop/ViewContent/TextEditor/C#/ContextActions">
<!-- In this path, you can add SD context action providers using <Class>, <!-- In this path, you can add SD context action providers using <Class>,
or you can add NR5 code action providers using <CSharpCodeActionProvider> --> or you can add NR5 code action providers using <CSharpCodeActionProvider> -->
<CSharpCodeActionProvider id = "ExtractMethod" <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.AddAnotherAccessorAction" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.ExtractMethod.ExtractMethodAction" /> <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.AddCatchTypeAction" />
<CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.CheckIfParameterIsNullAction" />
<CSharpCodeActionProvider id = "AddAnotherAccessor" <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertAnonymousDelegateToLambdaAction" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.AddAnotherAccessorAction" /> <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertAsToCastAction" />
<CSharpCodeActionProvider id = "CheckIfParameterIsNull" <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertCastToAsAction" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.CheckIfParameterIsNullAction" /> <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertConditionalToIfAction" />
<CSharpCodeActionProvider id = "ConvertDecToHex" <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertDecToHexAction" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertDecToHexAction" /> <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertExplicitToImplicitImplementationAction" />
<CSharpCodeActionProvider id = "ConvertHexToDec" <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertForeachToForAction" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertHexToDecAction" /> <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertHexToDecAction" />
<CSharpCodeActionProvider id = "ConvertForeachToFor" <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertIfToConditionalAction" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertForeachToForAction" /> <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertIfToSwitchAction" />
<CSharpCodeActionProvider id = "CreateBackingStore" <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertImplicitToExplicitImplementationAction" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.CreateBackingStoreAction" /> <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertInitializerToExplicitInitializationsAction" />
<CSharpCodeActionProvider id = "CreateClassDeclaration" <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertLambdaBodyExpressionToStatementAction" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.CreateClassDeclarationAction" /> <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertLambdaBodyStatementToExpressionAction" />
<CSharpCodeActionProvider id = "CreateConstructorDeclaration" <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertLambdaToAnonymousDelegateAction" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.CreateConstructorDeclarationAction" /> <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertSwitchToIfAction" />
<CSharpCodeActionProvider id = "CreateDelegateAction" <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ConvertToInitializerAction" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.CreateDelegateAction" /> <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.CreateBackingStoreAction" />
<CSharpCodeActionProvider id = "CreateEventInvocator" <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.CreateClassDeclarationAction" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.CreateEventInvocatorAction" /> <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.CreateConstructorDeclarationAction" />
<CSharpCodeActionProvider id = "CreateField" <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.CreateCustomEventImplementationAction" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.CreateFieldAction" /> <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.CreateDelegateAction" />
<CSharpCodeActionProvider id = "CreateIndexer" <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.CreateEventInvocatorAction" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.CreateIndexerAction" /> <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.CreateFieldAction" />
<CSharpCodeActionProvider id = "CreateLocalVariable" <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.CreateIndexerAction" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.CreateLocalVariableAction" /> <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.CreateLocalVariableAction" />
<CSharpCodeActionProvider id = "CreateMethodDeclaration" <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.CreateMethodDeclarationAction" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.CreateMethodDeclarationAction" /> <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.CreateOverloadWithoutParameterAction" />
<CSharpCodeActionProvider id = "CreateProperty" <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.CreatePropertyAction" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.CreatePropertyAction" /> <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.DeclareLocalVariableAction" />
<CSharpCodeActionProvider id = "DeclareLocalVariable" <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ExtensionMethodInvocationToStaticMethodInvocationAction" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.DeclareLocalVariableAction" /> <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ExtractAnonymousMethodAction" />
<CSharpCodeActionProvider id = "ExtractField" <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ExtractFieldAction" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.ExtractFieldAction" /> <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ExtractMethod.ExtractMethodAction" />
<CSharpCodeActionProvider id = "FlipOperatorArguments" <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.FlipOperatorArgumentsAction" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.FlipOperatorArgumentsAction" /> <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.GenerateGetterAction" />
<CSharpCodeActionProvider id = "GenerateGetter" <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.GeneratePropertyAction" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.GenerateGetterAction" /> <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.GenerateSwitchLabelsAction" />
<CSharpCodeActionProvider id = "GenerateProperty" <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ImplementAbstractMembersAction" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.GeneratePropertyAction" /> <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ImplementInterfaceAction" />
<CSharpCodeActionProvider id = "GenerateSwitchLabels" <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ImplementInterfaceExplicitAction" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.GenerateSwitchLabelsAction" /> <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.InlineLocalVariableAction" />
<CSharpCodeActionProvider id = "ImplementAbstractMembers" <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.InsertAnonymousMethodSignatureAction" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.ImplementAbstractMembersAction" /> <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.IntroduceConstantAction" />
<CSharpCodeActionProvider id = "ImplementInterface" <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.IntroduceFormatItemAction" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.ImplementInterfaceAction" /> <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.InvertIfAction" />
<CSharpCodeActionProvider id = "ImplementInterfaceExplicit" <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.IterateViaForeachAction" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.ImplementInterfaceExplicitAction" /> <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.JoinDeclarationAndAssignmentAction" />
<CSharpCodeActionProvider id = "InlineLocalVariable" <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.JoinStringAction" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.InlineLocalVariableAction" /> <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.MergeNestedIfAction" />
<CSharpCodeActionProvider id = "InsertAnonymousMethodSignature" <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.MoveToOuterScopeAction" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.InsertAnonymousMethodSignatureAction" /> <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.NegateRelationalExpressionAction" />
<CSharpCodeActionProvider id = "IntroduceConstant" <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.PutInsideUsingAction" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.IntroduceConstantAction" /> <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.RemoveBackingStoreAction" />
<CSharpCodeActionProvider id = "IntroduceFormatItem" <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.RemoveBracesAction" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.IntroduceFormatItemAction" /> <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.RemoveRedundantCatchTypeAction" />
<CSharpCodeActionProvider id = "InvertIf" <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.RemoveRegionAction" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.InvertIfAction" /> <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReplaceEmptyStringAction" />
<CSharpCodeActionProvider id = "RemoveBackingStore" <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.SplitDeclarationAndAssignmentAction" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.RemoveBackingStoreAction" /> <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.SplitDeclarationListAction" />
<CSharpCodeActionProvider id = "RemoveBraces" <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.SplitStringAction" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.RemoveBracesAction" /> <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.StaticMethodInvocationToExtensionMethodInvocationAction" />
<CSharpCodeActionProvider id = "RemoveRegion" <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.UseExplicitTypeAction" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.RemoveRegionAction" /> <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.UseStringFormatAction" />
<CSharpCodeActionProvider id = "ReplaceEmptyString" <CSharpCodeActionProvider class = "ICSharpCode.NRefactory.CSharp.Refactoring.UseVarKeywordAction" />
class = "ICSharpCode.NRefactory.CSharp.Refactoring.ReplaceEmptyStringAction" />
<CSharpCodeActionProvider id = "SplitDeclarationAndAssignment"
class = "ICSharpCode.NRefactory.CSharp.Refactoring.SplitDeclarationAndAssignmentAction" />
<CSharpCodeActionProvider id = "SplitString"
class = "ICSharpCode.NRefactory.CSharp.Refactoring.SplitStringAction" />
<CSharpCodeActionProvider id = "UseExplicitType"
class = "ICSharpCode.NRefactory.CSharp.Refactoring.UseExplicitTypeAction" />
<CSharpCodeActionProvider id = "UseVarKeyword"
class = "ICSharpCode.NRefactory.CSharp.Refactoring.UseVarKeywordAction" />
</Path> </Path>
</AddIn> </AddIn>

1
src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.csproj

@ -79,6 +79,7 @@
<Compile Include="Src\Refactoring\CSharpContextActionWrapper.cs" /> <Compile Include="Src\Refactoring\CSharpContextActionWrapper.cs" />
<Compile Include="Src\Refactoring\IssueManager.cs" /> <Compile Include="Src\Refactoring\IssueManager.cs" />
<Compile Include="Src\Refactoring\IssueOptionsViewModel.cs" /> <Compile Include="Src\Refactoring\IssueOptionsViewModel.cs" />
<Compile Include="Src\Refactoring\SDNamingConventionService.cs" />
<Compile Include="Src\Refactoring\SDRedundantUsingIssue.cs" /> <Compile Include="Src\Refactoring\SDRedundantUsingIssue.cs" />
<Compile Include="Src\Refactoring\EditorScript.cs" /> <Compile Include="Src\Refactoring\EditorScript.cs" />
<Compile Include="Src\Refactoring\SearchForIssuesCommand.cs" /> <Compile Include="Src\Refactoring\SearchForIssuesCommand.cs" />

19
src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/SDNamingConventionService.cs

@ -0,0 +1,19 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using System.Linq;
using ICSharpCode.NRefactory.CSharp.Refactoring;
namespace CSharpBinding.Refactoring
{
sealed class SDNamingConventionService : NamingConventionService
{
public override IEnumerable<NamingRule> Rules {
get {
return Enumerable.Empty<NamingRule>();
}
}
}
}

10
src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/SDRefactoringContext.cs

@ -2,7 +2,9 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System; using System;
using System.ComponentModel.Design;
using System.Threading; using System.Threading;
using CSharpBinding.Parser; using CSharpBinding.Parser;
using ICSharpCode.NRefactory; using ICSharpCode.NRefactory;
using ICSharpCode.NRefactory.CSharp; using ICSharpCode.NRefactory.CSharp;
@ -36,6 +38,7 @@ namespace CSharpBinding.Refactoring
this.selectionStart = selectionStart; this.selectionStart = selectionStart;
this.selectionLength = selectionLength; this.selectionLength = selectionLength;
this.location = location; this.location = location;
InitializeServices();
} }
public SDRefactoringContext(ITextEditor editor, CSharpAstResolver resolver, TextLocation location) public SDRefactoringContext(ITextEditor editor, CSharpAstResolver resolver, TextLocation location)
@ -48,6 +51,13 @@ namespace CSharpBinding.Refactoring
this.selectionStart = editor.SelectionStart; this.selectionStart = editor.SelectionStart;
this.selectionLength = editor.SelectionLength; this.selectionLength = editor.SelectionLength;
this.location = location; this.location = location;
InitializeServices();
}
void InitializeServices()
{
this.Services = new ServiceContainer(SD.Services);
this.Services.AddService(typeof(NamingConventionService), new SDNamingConventionService());
} }
public override bool Supports(Version version) public override bool Supports(Version version)

1
src/AddIns/BackendBindings/CSharpBinding/Tests/CSharpBinding.Tests.csproj

@ -70,6 +70,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="CSharpFormattingTests.cs" /> <Compile Include="CSharpFormattingTests.cs" />
<Compile Include="RegistrationTests.cs" />
<Compile Include="MockTextEditor.cs" /> <Compile Include="MockTextEditor.cs" />
<Compile Include="OverrideCompletionTests.cs" /> <Compile Include="OverrideCompletionTests.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />

72
src/AddIns/BackendBindings/CSharpBinding/Tests/RegistrationTests.cs

@ -0,0 +1,72 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using CSharpBinding.Refactoring;
using ICSharpCode.Core;
using ICSharpCode.NRefactory.CSharp.Refactoring;
using NUnit.Framework;
using Rhino.Mocks;
namespace CSharpBinding.Tests
{
/// <summary>
/// Tests that issue providers and context actions from NR are registered in the AddIn-Tree.
/// </summary>
[TestFixture]
public class RegistrationTests
{
Assembly NRCSharp = typeof(ICodeIssueProvider).Assembly;
Assembly CSharpBinding = typeof(SDRefactoringContext).Assembly;
AddIn addIn;
List<Type> registeredIssueProviders;
List<Type> NRissueProviders;
List<Type> registeredContextActions;
List<Type> NRcontextActions;
Type FindType(string @class)
{
return CSharpBinding.GetType(@class, false) ?? NRCSharp.GetType(@class, true);
}
[TestFixtureSetUpAttribute]
public void FixtureSetUp()
{
var addInTree = MockRepository.GenerateStub<IAddInTree>();
addIn = AddIn.Load(addInTree, "CSharpBinding.addin");
registeredIssueProviders = addIn.Paths["/SharpDevelop/ViewContent/TextEditor/C#/IssueProviders"].Codons
.Select(c => FindType(c.Properties["class"])).ToList();
NRissueProviders = NRCSharp.ExportedTypes.Where(t => !t.IsAbstract && t.GetInterface(typeof(ICodeIssueProvider).FullName) != null).ToList();
registeredContextActions = addIn.Paths["/SharpDevelop/ViewContent/TextEditor/C#/ContextActions"].Codons
.Select(c => FindType(c.Properties["class"])).ToList();
NRcontextActions = NRCSharp.ExportedTypes.Where(t => !t.IsAbstract && t.GetInterface(typeof(ICodeActionProvider).FullName) != null).ToList();
}
[Test]
public void NoDuplicateRegistrations()
{
Assert.AreEqual(registeredIssueProviders, registeredIssueProviders.Distinct());
Assert.AreEqual(registeredContextActions, registeredContextActions.Distinct());
}
[Test]
public void AllNRefactoryIssueProvidersAreRegistered()
{
var registeredNRissueProviders = registeredIssueProviders.Select(p => p.Assembly == CSharpBinding ? p.BaseType : p);
Assert.IsEmpty(NRissueProviders.Except(registeredNRissueProviders), "There are providers in NR that are not registered in SD");
}
[Test]
public void AllNRefactoryCodeActionProvidersAreRegistered()
{
var registeredNRcodeActionProviders = registeredContextActions.Select(p => p.Assembly == CSharpBinding ? p.BaseType : p);
Assert.IsEmpty(NRcontextActions.Except(registeredNRcodeActionProviders), "There are context actions in NR that are not registered in SD");
}
}
}

5
src/Libraries/NRefactory/ICSharpCode.NRefactory.CSharp/Refactoring/BaseRefactoringContext.cs

@ -175,13 +175,14 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring
} }
#region IServiceProvider implementation #region IServiceProvider implementation
readonly ServiceContainer services = new ServiceContainer(); IServiceContainer services = new ServiceContainer();
/// <summary> /// <summary>
/// Gets a service container used to associate services with this context. /// Gets a service container used to associate services with this context.
/// </summary> /// </summary>
public ServiceContainer Services { public IServiceContainer Services {
get { return services; } get { return services; }
protected set { services = value; }
} }
/// <summary> /// <summary>

2
src/Libraries/NRefactory/ICSharpCode.NRefactory.CSharp/Refactoring/CodeActions/ConvertConditionalToIfAction.cs

@ -28,7 +28,7 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
namespace ICSharpCode.NRefactory.CSharp.Refactoring.CodeActions namespace ICSharpCode.NRefactory.CSharp.Refactoring
{ {
[ContextAction ("Convert '?:' to 'if'", Description = "Convert '?:' operator to 'if' statement.")] [ContextAction ("Convert '?:' to 'if'", Description = "Convert '?:' operator to 'if' statement.")]
public class ConvertConditionalToIfAction : ICodeActionProvider public class ConvertConditionalToIfAction : ICodeActionProvider

2
src/Libraries/NRefactory/ICSharpCode.NRefactory.CSharp/Refactoring/CodeActions/ConvertIfToConditionalAction.cs

@ -28,7 +28,7 @@ using System;
using System.Linq; using System.Linq;
using ICSharpCode.NRefactory.PatternMatching; using ICSharpCode.NRefactory.PatternMatching;
namespace ICSharpCode.NRefactory.CSharp.Refactoring.CodeActions namespace ICSharpCode.NRefactory.CSharp.Refactoring
{ {
[ContextAction ("Convert 'if' to '?:'", Description = "Convert 'if' statement to '?:' operator.")] [ContextAction ("Convert 'if' to '?:'", Description = "Convert 'if' statement to '?:' operator.")]
public class ConvertIfToConditionalAction : SpecializedCodeAction <IfElseStatement> public class ConvertIfToConditionalAction : SpecializedCodeAction <IfElseStatement>

2
src/Libraries/NRefactory/ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/InconsistentNamingIssue/NamingConventionService.cs

@ -1,4 +1,4 @@
// //
// NamingConventionService.cs // NamingConventionService.cs
// //
// Author: // Author:

2
src/Libraries/NRefactory/ICSharpCode.NRefactory.Tests/CSharp/CodeActions/ConvertConditionalToIfTests.cs

@ -24,7 +24,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE. // THE SOFTWARE.
using ICSharpCode.NRefactory.CSharp.Refactoring.CodeActions; using ICSharpCode.NRefactory.CSharp.Refactoring;
using NUnit.Framework; using NUnit.Framework;
namespace ICSharpCode.NRefactory.CSharp.CodeActions namespace ICSharpCode.NRefactory.CSharp.CodeActions

2
src/Libraries/NRefactory/ICSharpCode.NRefactory.Tests/CSharp/CodeActions/ConvertIfToConditionalTests.cs

@ -25,7 +25,7 @@
// THE SOFTWARE. // THE SOFTWARE.
using ICSharpCode.NRefactory.CSharp.Refactoring.CodeActions; using ICSharpCode.NRefactory.CSharp.Refactoring;
using NUnit.Framework; using NUnit.Framework;
namespace ICSharpCode.NRefactory.CSharp.CodeActions namespace ICSharpCode.NRefactory.CSharp.CodeActions

Loading…
Cancel
Save