@@ -70,6 +70,7 @@ void InitProperties()
7070 this . UseKeywordsForBuiltinTypes = true ;
7171 this . UseNullableSpecifierForValueTypes = true ;
7272 this . ShowAccessibility = true ;
73+ this . UsePrivateProtectedAccessibility = true ;
7374 this . ShowModifiers = true ;
7475 this . ShowBaseTypes = true ;
7576 this . ShowTypeParameters = true ;
@@ -93,13 +94,19 @@ void InitProperties()
9394 public bool AddResolveResultAnnotations { get ; set ; }
9495
9596 /// <summary>
96- /// Controls the accessibility modifiers are shown.
97+ /// Controls whether accessibility modifiers are shown.
9798 /// The default value is <see langword="true" />.
9899 /// </summary>
99100 public bool ShowAccessibility { get ; set ; }
100101
101102 /// <summary>
102- /// Controls the non-accessibility modifiers are shown.
103+ /// Controls whether "private protected" accessibility modifiers are shown.
104+ /// The default value is <see langword="true" />.
105+ /// </summary>
106+ public bool UsePrivateProtectedAccessibility { get ; set ; }
107+
108+ /// <summary>
109+ /// Controls whether non-accessibility modifiers are shown.
103110 /// The default value is <see langword="true" />.
104111 /// </summary>
105112 public bool ShowModifiers { get ; set ; }
@@ -1805,7 +1812,7 @@ EntityDeclaration ConvertTypeDefinition(ITypeDefinition typeDefinition)
18051812 Modifiers modifiers = Modifiers . None ;
18061813 if ( this . ShowAccessibility )
18071814 {
1808- modifiers |= ModifierFromAccessibility ( typeDefinition . Accessibility ) ;
1815+ modifiers |= ModifierFromAccessibility ( typeDefinition . Accessibility , UsePrivateProtectedAccessibility ) ;
18091816 }
18101817 if ( this . ShowModifiers )
18111818 {
@@ -2073,7 +2080,7 @@ Accessor ConvertAccessor(IMethod accessor, MethodSemanticsAttributes kind, Acces
20732080 }
20742081 }
20752082 if ( this . ShowAccessibility && accessor . Accessibility != ownerAccessibility )
2076- decl . Modifiers = ModifierFromAccessibility ( accessor . Accessibility ) ;
2083+ decl . Modifiers = ModifierFromAccessibility ( accessor . Accessibility , UsePrivateProtectedAccessibility ) ;
20772084 if ( this . ShowModifiers && accessor . HasReadonlyModifier ( ) )
20782085 decl . Modifiers |= Modifiers . Readonly ;
20792086 TokenRole keywordRole = kind switch {
@@ -2342,7 +2349,7 @@ DestructorDeclaration ConvertDestructor(IMethod dtor)
23422349 #endregion
23432350
23442351 #region Convert Modifiers
2345- public static Modifiers ModifierFromAccessibility ( Accessibility accessibility )
2352+ public static Modifiers ModifierFromAccessibility ( Accessibility accessibility , bool usePrivateProtected )
23462353 {
23472354 switch ( accessibility )
23482355 {
@@ -2357,7 +2364,7 @@ public static Modifiers ModifierFromAccessibility(Accessibility accessibility)
23572364 case Accessibility . ProtectedOrInternal :
23582365 return Modifiers . Protected | Modifiers . Internal ;
23592366 case Accessibility . ProtectedAndInternal :
2360- return Modifiers . Private | Modifiers . Protected ;
2367+ return usePrivateProtected ? Modifiers . Private | Modifiers . Protected : Modifiers . Protected ;
23612368 default :
23622369 return Modifiers . None ;
23632370 }
@@ -2388,7 +2395,7 @@ Modifiers GetMemberModifiers(IMember member)
23882395 Modifiers m = Modifiers . None ;
23892396 if ( this . ShowAccessibility && NeedsAccessibility ( member ) )
23902397 {
2391- m |= ModifierFromAccessibility ( member . Accessibility ) ;
2398+ m |= ModifierFromAccessibility ( member . Accessibility , UsePrivateProtectedAccessibility ) ;
23922399 }
23932400 if ( this . ShowModifiers )
23942401 {
0 commit comments