This repository was archived by the owner on Oct 31, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 78
Generated Metadata for Abstract Classes is missing the abstract class attribute #1482
Copy link
Copy link
Open
Labels
Description
When I generate the metadata for HostWorkspaceServices
namespace Microsoft.CodeAnalysis.Host
{
/// <summary>
/// Per workspace services provided by the host environment.
/// </summary>
public abstract class HostWorkspaceServices
{
/// <summary>
/// The host services this workspace services originated from.
/// </summary>
/// <returns></returns>
public abstract HostServices HostServices { get; }
...The resulting metadata is
namespace Microsoft.CodeAnalysis.Host
open Microsoft.CodeAnalysis
open Microsoft.CodeAnalysis.Host
type HostWorkspaceServices =
new : unit -> HostWorkspaceServices
/// Finds all language services of the corresponding type across all supported languages that match the filter criteria.
member FindLanguageServices : filter:HostWorkspaceServices.MetadataFilter -> System.Collections.Generic.IEnumerable<'TLanguageService>
/// Gets the Microsoft.CodeAnalysis.Host.HostLanguageServices for the language name.
member GetLanguageServices : languageName:string -> HostLanguageServices
/// Gets a workspace specific service provided by the host identified by the service type. If the host does not provide the service, this method returns System.InvalidOperationException.
member GetRequiredService : unit -> 'TWorkspaceService when 'TWorkspaceService :> IWorkspaceService
/// Gets a workspace specific service provided by the host identified by the service type. If the host does not provide the service, this method returns null.
member GetService : unit -> 'TWorkspaceService when 'TWorkspaceService :> IWorkspaceService
/// The host services this workspace services originated from.
member HostServices : HostServices
/// Returns true if the language is supported.
member IsSupported : languageName:string -> bool
/// A service for storing information across that can be retrieved in a separate process.
member PersistentStorage : IPersistentStorageService
/// A list of language names for supported language services.
member SupportedLanguages : System.Collections.Generic.IEnumerable<string>
/// A service for storing information in a temporary location that only lasts for the duration of the process.
member TemporaryStorage : ITemporaryStorageService
/// The workspace corresponding to this workspace services instantiation
member Workspace : WorkspaceIt should show the abstract class attribute above the type, i.e.
namespace Microsoft.CodeAnalysis.Host
open Microsoft.CodeAnalysis
open Microsoft.CodeAnalysis.Host
[<AbstractClass>]
type HostWorkspaceServices =
...If attributes are generally being left out of the metadata, perhaps the fix is to add them generally? If that would add far too many attributes maybe we could identify a subset of attributes that would be most useful to add.