diff --git a/TODOnewNR.txt b/TODOnewNR.txt index 72d50a1672..24c894e357 100644 --- a/TODOnewNR.txt +++ b/TODOnewNR.txt @@ -1,7 +1,6 @@  Commented code, needs to be ported and re-enabled: ParseProjectContent - Ambiences DefinitionViewPad Class Browser (removed from source tree; to be reimplemented using WPF) NRefactoryLanguageConverter diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.csproj b/src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.csproj index c5a639e3b1..964b08d2c9 100644 --- a/src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.csproj +++ b/src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.csproj @@ -90,7 +90,7 @@ {53DCA265-3C3C-42F9-B647-F72BA678122B} ICSharpCode.NRefactory.CSharp - False + True {3B2A5653-EC97-4001-BB9B-D90F1AF2C371} diff --git a/src/Libraries/NRefactory/ICSharpCode.NRefactory.CSharp/OutputVisitor/CSharpAmbience.cs b/src/Libraries/NRefactory/ICSharpCode.NRefactory.CSharp/OutputVisitor/CSharpAmbience.cs index d64ea6a15f..19960922e7 100644 --- a/src/Libraries/NRefactory/ICSharpCode.NRefactory.CSharp/OutputVisitor/CSharpAmbience.cs +++ b/src/Libraries/NRefactory/ICSharpCode.NRefactory.CSharp/OutputVisitor/CSharpAmbience.cs @@ -49,9 +49,7 @@ namespace ICSharpCode.NRefactory.CSharp void ConvertMember(IMember member, ISynchronizedTypeResolveContext ctx, StringWriter writer) { - TypeSystemAstBuilder astBuilder = new TypeSystemAstBuilder(ctx); - astBuilder.ShowModifiers = (ConversionFlags & ConversionFlags.ShowModifiers) == ConversionFlags.ShowModifiers; - astBuilder.ShowAccessibility = (ConversionFlags & ConversionFlags.ShowAccessibility) == ConversionFlags.ShowAccessibility; + TypeSystemAstBuilder astBuilder = CreateAstBuilder(ctx); astBuilder.ShowParameterNames = (ConversionFlags & ConversionFlags.ShowParameterNames) == ConversionFlags.ShowParameterNames; AttributedNode node = (AttributedNode)astBuilder.ConvertEntity(member); @@ -81,12 +79,19 @@ namespace ICSharpCode.NRefactory.CSharp writer.Write((node is IndexerDeclaration) ? ']' : ')'); } } - - void ConvertTypeDeclaration(ITypeDefinition typeDef, ITypeResolveContext ctx, StringWriter writer) + + TypeSystemAstBuilder CreateAstBuilder(ITypeResolveContext ctx) { TypeSystemAstBuilder astBuilder = new TypeSystemAstBuilder(ctx); astBuilder.ShowModifiers = (ConversionFlags & ConversionFlags.ShowModifiers) == ConversionFlags.ShowModifiers; astBuilder.ShowAccessibility = (ConversionFlags & ConversionFlags.ShowAccessibility) == ConversionFlags.ShowAccessibility; + astBuilder.AlwaysUseShortTypeNames = (ConversionFlags & ConversionFlags.UseFullyQualifiedTypeNames) != ConversionFlags.UseFullyQualifiedTypeNames; + return astBuilder; + } + + void ConvertTypeDeclaration(ITypeDefinition typeDef, ITypeResolveContext ctx, StringWriter writer) + { + TypeSystemAstBuilder astBuilder = CreateAstBuilder(ctx); TypeDeclaration typeDeclaration = (TypeDeclaration)astBuilder.ConvertEntity(typeDef); PrintModifiers(typeDeclaration.Modifiers, writer); if ((ConversionFlags & ConversionFlags.ShowDefinitionKeyWord) == ConversionFlags.ShowDefinitionKeyWord) { @@ -113,7 +118,7 @@ namespace ICSharpCode.NRefactory.CSharp void WriteTypeDeclarationName(ITypeDefinition typeDef, ITypeResolveContext ctx, StringWriter writer) { - TypeSystemAstBuilder astBuilder = new TypeSystemAstBuilder(ctx); + TypeSystemAstBuilder astBuilder = CreateAstBuilder(ctx); if (typeDef.DeclaringTypeDefinition != null) { WriteTypeDeclarationName(typeDef.DeclaringTypeDefinition, ctx, writer); writer.Write('.'); @@ -129,7 +134,7 @@ namespace ICSharpCode.NRefactory.CSharp void WriteMemberDeclarationName(IMember member, ITypeResolveContext ctx, StringWriter writer) { - TypeSystemAstBuilder astBuilder = new TypeSystemAstBuilder(ctx); + TypeSystemAstBuilder astBuilder = CreateAstBuilder(ctx); if ((ConversionFlags & ConversionFlags.UseFullyQualifiedMemberNames) == ConversionFlags.UseFullyQualifiedMemberNames) { writer.Write(ConvertType(member.DeclaringType)); writer.Write('.'); @@ -193,11 +198,7 @@ namespace ICSharpCode.NRefactory.CSharp public string ConvertVariable(IVariable v, ITypeResolveContext context) { using (var ctx = context.Synchronize()) { - TypeSystemAstBuilder astBuilder = new TypeSystemAstBuilder(ctx); - astBuilder.ShowModifiers = (ConversionFlags & ConversionFlags.ShowModifiers) == ConversionFlags.ShowModifiers; - astBuilder.ShowAccessibility = (ConversionFlags & ConversionFlags.ShowAccessibility) == ConversionFlags.ShowAccessibility; - astBuilder.ShowParameterNames = (ConversionFlags & ConversionFlags.ShowParameterNames) == ConversionFlags.ShowParameterNames; - astBuilder.AlwaysUseShortTypeNames = (ConversionFlags & ConversionFlags.UseFullyQualifiedTypeNames) != ConversionFlags.UseFullyQualifiedTypeNames; + TypeSystemAstBuilder astBuilder = CreateAstBuilder(ctx); AstNode astNode = astBuilder.ConvertVariable(v); CSharpFormattingOptions formatting = new CSharpFormattingOptions(); StringWriter writer = new StringWriter(); @@ -208,8 +209,7 @@ namespace ICSharpCode.NRefactory.CSharp public string ConvertType(IType type) { - TypeSystemAstBuilder astBuilder = new TypeSystemAstBuilder(MinimalResolveContext.Instance); - astBuilder.AlwaysUseShortTypeNames = (ConversionFlags & ConversionFlags.UseFullyQualifiedTypeNames) != ConversionFlags.UseFullyQualifiedTypeNames; + TypeSystemAstBuilder astBuilder = CreateAstBuilder(MinimalResolveContext.Instance); AstType astType = astBuilder.ConvertType(type); CSharpFormattingOptions formatting = new CSharpFormattingOptions(); StringWriter writer = new StringWriter(); @@ -220,8 +220,7 @@ namespace ICSharpCode.NRefactory.CSharp public string ConvertType(ITypeReference type, ITypeResolveContext context) { using (var ctx = context.Synchronize()) { - TypeSystemAstBuilder astBuilder = new TypeSystemAstBuilder(ctx); - astBuilder.AlwaysUseShortTypeNames = (ConversionFlags & ConversionFlags.UseFullyQualifiedTypeNames) != ConversionFlags.UseFullyQualifiedTypeNames; + TypeSystemAstBuilder astBuilder = CreateAstBuilder(ctx); AstType astType = astBuilder.ConvertTypeReference(type); CSharpFormattingOptions formatting = new CSharpFormattingOptions(); StringWriter writer = new StringWriter();