Skip to content

GenAPI doesn't always add a blank line between types #48830

Open
@MichaelSimons

Description

@MichaelSimons

With the latest version of GenAPI, a blank line is not always added between types. I am unable to decern what the conditions are on when a space gets added or not.

Example (From running GenAPI on nuget.dependencyresolver.core,6.13.1)

Notice:

  1. Spaces between GraphItem and GraphNode as well as IDependencyProvider and IRemoteDependencyProvider
  2. No spaces between GraphNode and GraphOperations as well as GraphOperations and IDependencyProvider
    public partial class GraphItem<TItem> : System.IEquatable<GraphItem<TItem>>
    {
        public GraphItem(LibraryModel.LibraryIdentity key) { }
        public TItem Data { get { throw null; } set { } }
        public bool IsCentralTransitive { get { throw null; } set { } }
        public LibraryModel.LibraryIdentity Key { get { throw null; } set { } }

        public bool Equals(GraphItem<TItem> other) { throw null; }
        public override bool Equals(object obj) { throw null; }
        public override int GetHashCode() { throw null; }
    }

    public partial class GraphNode<TItem>
    {
        public GraphNode(LibraryModel.LibraryRange key, bool hasInnerNodes, bool hasParentNodes) { }
        public GraphNode(LibraryModel.LibraryRange key) { }
        public Disposition Disposition { get { throw null; } set { } }
        public System.Collections.Generic.IList<GraphNode<TItem>> InnerNodes { get { throw null; } set { } }
        public GraphItem<TItem> Item { get { throw null; } set { } }
        public LibraryModel.LibraryRange Key { get { throw null; } set { } }
        public GraphNode<TItem> OuterNode { get { throw null; } set { } }
        public System.Collections.Generic.IList<GraphNode<TItem>> ParentNodes { get { throw null; } }

        public override string ToString() { throw null; }
    }
    public static partial class GraphOperations
    {
        public static AnalyzeResult<RemoteResolveResult> Analyze(this GraphNode<RemoteResolveResult> root) { throw null; }
        public static void Dump<TItem>(this GraphNode<TItem> root, System.Action<string> write) { }
        public static void ForEach<TItem>(this GraphNode<TItem> root, System.Action<GraphNode<TItem>> visitor) { }
        public static void ForEach<TItem>(this System.Collections.Generic.IEnumerable<GraphNode<TItem>> roots, System.Action<GraphNode<TItem>> visitor) { }
        public static void ForEach<TItem, TContext>(this GraphNode<TItem> root, System.Action<GraphNode<TItem>, TContext> visitor, TContext context) { }
        public static string GetId<TItem>(this GraphNode<TItem> node) { throw null; }
        public static string GetIdAndRange<TItem>(this GraphNode<TItem> node) { throw null; }
        public static string GetIdAndVersionOrRange<TItem>(this GraphNode<TItem> node) { throw null; }
        public static string GetPath<TItem>(this GraphNode<TItem> node) { throw null; }
        public static string GetPathWithLastRange<TItem>(this GraphNode<TItem> node) { throw null; }
        public static Versioning.NuGetVersion GetVersionOrDefault<TItem>(this GraphNode<TItem> node) { throw null; }
        public static Versioning.VersionRange GetVersionRange<TItem>(this GraphNode<TItem> node) { throw null; }
        public static bool IsPackage<TItem>(this GraphNode<TItem> node) { throw null; }
        public static GraphNode<TItem> Path<TItem>(this GraphNode<TItem> node, params string[] path) { throw null; }
        public static void ReleaseDowngradesDictionary(System.Collections.Generic.Dictionary<GraphNode<RemoteResolveResult>, GraphNode<RemoteResolveResult>> dictionary) { }
        public static System.Collections.Generic.Dictionary<GraphNode<RemoteResolveResult>, GraphNode<RemoteResolveResult>> RentDowngradesDictionary() { throw null; }
    }
    public partial interface IDependencyProvider
    {
        LibraryModel.Library GetLibrary(LibraryModel.LibraryRange libraryRange, Frameworks.NuGetFramework targetFramework);
        bool SupportsType(LibraryModel.LibraryDependencyTarget libraryTypeFlag);
    }

    public partial interface IRemoteDependencyProvider
    {
        bool IsHttp { get; }

        Configuration.PackageSource Source { get; }

        Protocol.Core.Types.SourceRepository SourceRepository { get; }

        System.Threading.Tasks.Task<LibraryModel.LibraryIdentity> FindLibraryAsync(LibraryModel.LibraryRange libraryRange, Frameworks.NuGetFramework targetFramework, Protocol.Core.Types.SourceCacheContext cacheContext, Common.ILogger logger, System.Threading.CancellationToken cancellationToken);
        System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<Versioning.NuGetVersion>> GetAllVersionsAsync(string id, Protocol.Core.Types.SourceCacheContext cacheContext, Common.ILogger logger, System.Threading.CancellationToken token);
        System.Threading.Tasks.Task<LibraryModel.LibraryDependencyInfo> GetDependenciesAsync(LibraryModel.LibraryIdentity libraryIdentity, Frameworks.NuGetFramework targetFramework, Protocol.Core.Types.SourceCacheContext cacheContext, Common.ILogger logger, System.Threading.CancellationToken cancellationToken);
        System.Threading.Tasks.Task<Packaging.IPackageDownloader> GetPackageDownloaderAsync(Packaging.Core.PackageIdentity packageIdentity, Protocol.Core.Types.SourceCacheContext cacheContext, Common.ILogger logger, System.Threading.CancellationToken cancellationToken);
    }

I noticed this in dotnet/source-build-reference-packages#1247 which is where the changes from #46425 flow in.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions