@@ -8,15 +8,17 @@ namespace SourceKit.Extensions;
88
99public static class NamedTypeSymbolExtensions
1010{
11- private static SymbolDisplayFormat ConfigureDisplayFormat ( SymbolDisplayFormat format ) => format
12- . WithGlobalNamespaceStyle ( SymbolDisplayGlobalNamespaceStyle . Omitted )
11+ private static SymbolDisplayFormat ConfigureDisplayFormat ( SymbolDisplayFormat format , bool includeGlobal ) => format
12+ . WithGlobalNamespaceStyle ( includeGlobal
13+ ? SymbolDisplayGlobalNamespaceStyle . Included
14+ : SymbolDisplayGlobalNamespaceStyle . Omitted )
1315 . WithGenericsOptions ( SymbolDisplayGenericsOptions . None ) ;
1416
15- private static readonly SymbolDisplayFormat FullyQualifiedSymbolFormat =
16- ConfigureDisplayFormat ( SymbolDisplayFormat . FullyQualifiedFormat ) ;
17+ private static SymbolDisplayFormat FullyQualifiedSymbolFormat ( bool includeGlobal )
18+ => ConfigureDisplayFormat ( SymbolDisplayFormat . FullyQualifiedFormat , includeGlobal ) ;
1719
18- private static readonly SymbolDisplayFormat ShortSymbolFormat =
19- ConfigureDisplayFormat ( SymbolDisplayFormat . MinimallyQualifiedFormat ) ;
20+ private static SymbolDisplayFormat ShortSymbolFormat ( bool includeGlobal )
21+ => ConfigureDisplayFormat ( SymbolDisplayFormat . MinimallyQualifiedFormat , includeGlobal ) ;
2022
2123 private static bool TryGetTypeArgumentSyntax (
2224 this INamespaceOrTypeSymbol symbol ,
@@ -39,15 +41,18 @@ private static bool TryGetTypeArgumentSyntax(
3941 return false ;
4042 }
4143
42- public static string GetFullyQualifiedName ( this INamespaceOrTypeSymbol symbol )
43- => symbol . ToDisplayString ( FullyQualifiedSymbolFormat ) ;
44+ public static string GetFullyQualifiedName ( this INamespaceOrTypeSymbol symbol , bool includeGlobal = false )
45+ => symbol . ToDisplayString ( FullyQualifiedSymbolFormat ( includeGlobal ) ) ;
4446
45- public static string GetShortName ( this INamespaceOrTypeSymbol symbol )
46- => symbol . ToDisplayString ( ShortSymbolFormat ) ;
47+ public static string GetShortName ( this INamespaceOrTypeSymbol symbol , bool includeGlobal = false )
48+ => symbol . ToDisplayString ( ShortSymbolFormat ( includeGlobal ) ) ;
4749
48- public static TypeSyntax ToNameSyntax ( this INamespaceOrTypeSymbol symbol , bool fullyQualified = true )
50+ public static TypeSyntax ToNameSyntax (
51+ this INamespaceOrTypeSymbol symbol ,
52+ bool fullyQualified = true ,
53+ bool includeGlobal = false )
4954 {
50- string name = fullyQualified ? symbol . GetFullyQualifiedName ( ) : symbol . GetShortName ( ) ;
55+ string name = fullyQualified ? symbol . GetFullyQualifiedName ( includeGlobal ) : symbol . GetShortName ( includeGlobal ) ;
5156
5257 TypeSyntax type = TryGetTypeArgumentSyntax ( symbol , fullyQualified , out TypeArgumentListSyntax ? typeArguments )
5358 ? GenericName ( Identifier ( name ) , typeArguments )
@@ -77,7 +82,7 @@ public static TypeSyntax ToNameSyntax(this INamespaceOrTypeSymbol symbol, bool f
7782 public static IEnumerable < INamedTypeSymbol > GetBaseTypes ( this INamedTypeSymbol symbol )
7883 {
7984 return symbol . BaseType is null
80- ? Enumerable . Empty < INamedTypeSymbol > ( )
85+ ? [ ]
8186 : Enumerable . Repeat ( symbol . BaseType , 1 ) . Concat ( symbol . BaseType . GetBaseTypes ( ) ) ;
8287 }
8388
@@ -139,4 +144,4 @@ public static TypeDeclarationSyntax ToSyntax(this INamedTypeSymbol symbol)
139144 _ => throw new ArgumentOutOfRangeException ( ) ,
140145 } ;
141146 }
142- }
147+ }
0 commit comments