From 6b0ff5b2b7fccc15c3e9c7ed3d7e16e05633ea38 Mon Sep 17 00:00:00 2001 From: Josef Pihrt Date: Fri, 27 Sep 2019 16:04:49 +0200 Subject: [PATCH] Sort types in type hierarchy. --- src/Documentation/SymbolDefinitionWriter.cs | 6 +++++- src/Workspaces.Core/Comparers/SymbolDefinitionComparer.cs | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Documentation/SymbolDefinitionWriter.cs b/src/Documentation/SymbolDefinitionWriter.cs index d51c060186..e6ce3cdf95 100644 --- a/src/Documentation/SymbolDefinitionWriter.cs +++ b/src/Documentation/SymbolDefinitionWriter.cs @@ -361,7 +361,11 @@ private void WriteNamespaces(in OneOrMany assemblies, Cancellat private void WriteTypeHierarchy(IEnumerable types, CancellationToken cancellationToken = default) { - TypeHierarchy hierarchy = TypeHierarchy.Create(types, SymbolDefinitionComparer.SystemFirst.TypeComparer); + IComparer comparer = (Format.Includes(SymbolDefinitionPartFilter.ContainingNamespaceInTypeHierarchy)) + ? SymbolDefinitionComparer.SystemFirst.TypeComparer + : SymbolDefinitionComparer.OmitContainingNamespace.TypeComparer; + + TypeHierarchy hierarchy = TypeHierarchy.Create(types, comparer); WriteTypeHierarchy(hierarchy, cancellationToken); } diff --git a/src/Workspaces.Core/Comparers/SymbolDefinitionComparer.cs b/src/Workspaces.Core/Comparers/SymbolDefinitionComparer.cs index a512f5d031..3b951096ca 100644 --- a/src/Workspaces.Core/Comparers/SymbolDefinitionComparer.cs +++ b/src/Workspaces.Core/Comparers/SymbolDefinitionComparer.cs @@ -19,6 +19,8 @@ internal SymbolDefinitionComparer(SymbolDefinitionSortOptions options = SymbolDe public static SymbolDefinitionComparer SystemFirst { get; } = new DefaultSymbolDefinitionComparer(SymbolDefinitionSortOptions.SystemFirst); + public static SymbolDefinitionComparer OmitContainingNamespace { get; } = new DefaultSymbolDefinitionComparer(SymbolDefinitionSortOptions.OmitContainingNamespace); + public static SymbolDefinitionComparer SystemFirstOmitContainingNamespace { get; } = new DefaultSymbolDefinitionComparer(SymbolDefinitionSortOptions.SystemFirst | SymbolDefinitionSortOptions.OmitContainingNamespace); public SymbolDefinitionSortOptions Options { get; }