| File: Language\DocumentationDescriptor.cs | Web Access |
| Project: src\roslyn\src\Razor\src\Compiler\Microsoft.CodeAnalysis.Razor.Compiler\src\Microsoft.CodeAnalysis.Razor.Compiler.csproj (Microsoft.CodeAnalysis.Razor.Compiler) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System; namespace Microsoft.AspNetCore.Razor.Language; internal abstract partial class DocumentationDescriptor : IEquatable<DocumentationDescriptor> { public static readonly DocumentationDescriptor BindTagHelper_Fallback = new SimpleDescriptor(DocumentationId.BindTagHelper_Fallback); public static readonly DocumentationDescriptor BindTagHelper_Fallback_Event = new SimpleDescriptor(DocumentationId.BindTagHelper_Fallback_Event); public static readonly DocumentationDescriptor BindTagHelper_Fallback_Format = new SimpleDescriptor(DocumentationId.BindTagHelper_Fallback_Format); public static readonly DocumentationDescriptor BindTagHelper_Element = new SimpleDescriptor(DocumentationId.BindTagHelper_Element); public static readonly DocumentationDescriptor BindTagHelper_Element_After = new SimpleDescriptor(DocumentationId.BindTagHelper_Element_After); public static readonly DocumentationDescriptor BindTagHelper_Element_Culture = new SimpleDescriptor(DocumentationId.BindTagHelper_Element_Culture); public static readonly DocumentationDescriptor BindTagHelper_Element_Event = new SimpleDescriptor(DocumentationId.BindTagHelper_Element_Event); public static readonly DocumentationDescriptor BindTagHelper_Element_Format = new SimpleDescriptor(DocumentationId.BindTagHelper_Element_Format); public static readonly DocumentationDescriptor BindTagHelper_Element_Get = new SimpleDescriptor(DocumentationId.BindTagHelper_Element_Get); public static readonly DocumentationDescriptor BindTagHelper_Element_Set = new SimpleDescriptor(DocumentationId.BindTagHelper_Element_Set); public static readonly DocumentationDescriptor BindTagHelper_Component = new SimpleDescriptor(DocumentationId.BindTagHelper_Component); public static readonly DocumentationDescriptor ChildContentParameterName = new SimpleDescriptor(DocumentationId.ChildContentParameterName); public static readonly DocumentationDescriptor ChildContentParameterName_TopLevel = new SimpleDescriptor(DocumentationId.ChildContentParameterName_TopLevel); public static readonly DocumentationDescriptor ComponentTypeParameter = new SimpleDescriptor(DocumentationId.ComponentTypeParameter); public static readonly DocumentationDescriptor EventHandlerTagHelper = new SimpleDescriptor(DocumentationId.EventHandlerTagHelper); public static readonly DocumentationDescriptor EventHandlerTagHelper_PreventDefault = new SimpleDescriptor(DocumentationId.EventHandlerTagHelper_PreventDefault); public static readonly DocumentationDescriptor EventHandlerTagHelper_StopPropagation = new SimpleDescriptor(DocumentationId.EventHandlerTagHelper_StopPropagation); public static readonly DocumentationDescriptor KeyTagHelper = new SimpleDescriptor(DocumentationId.KeyTagHelper); public static readonly DocumentationDescriptor RefTagHelper = new SimpleDescriptor(DocumentationId.RefTagHelper); public static readonly DocumentationDescriptor SplatTagHelper = new SimpleDescriptor(DocumentationId.SplatTagHelper); public static readonly DocumentationDescriptor RenderModeTagHelper = new SimpleDescriptor(DocumentationId.RenderModeTagHelper); public static readonly DocumentationDescriptor FormNameTagHelper = new SimpleDescriptor(DocumentationId.FormNameTagHelper); public static DocumentationDescriptor From(DocumentationId id, params object?[]? args) { if (id < 0 || id > DocumentationId.Last) { throw new ArgumentOutOfRangeException( nameof(id), id, Resources.FormatUnknown_documentation_id_0(id)); } if (args is null or { Length: 0 }) { return id switch { DocumentationId.BindTagHelper_Fallback => BindTagHelper_Fallback, DocumentationId.BindTagHelper_Fallback_Event => BindTagHelper_Fallback_Event, DocumentationId.BindTagHelper_Fallback_Format => BindTagHelper_Fallback_Format, DocumentationId.BindTagHelper_Element => BindTagHelper_Element, DocumentationId.BindTagHelper_Element_After => BindTagHelper_Element_After, DocumentationId.BindTagHelper_Element_Culture => BindTagHelper_Element_Culture, DocumentationId.BindTagHelper_Element_Event => BindTagHelper_Element_Event, DocumentationId.BindTagHelper_Element_Format => BindTagHelper_Element_Format, DocumentationId.BindTagHelper_Element_Get => BindTagHelper_Element_Get, DocumentationId.BindTagHelper_Element_Set => BindTagHelper_Element_Set, DocumentationId.BindTagHelper_Component => BindTagHelper_Component, DocumentationId.ChildContentParameterName => ChildContentParameterName, DocumentationId.ChildContentParameterName_TopLevel => ChildContentParameterName_TopLevel, DocumentationId.ComponentTypeParameter => ComponentTypeParameter, DocumentationId.EventHandlerTagHelper => EventHandlerTagHelper, DocumentationId.EventHandlerTagHelper_PreventDefault => EventHandlerTagHelper_PreventDefault, DocumentationId.EventHandlerTagHelper_StopPropagation => EventHandlerTagHelper_StopPropagation, DocumentationId.KeyTagHelper => KeyTagHelper, DocumentationId.RefTagHelper => RefTagHelper, DocumentationId.SplatTagHelper => SplatTagHelper, DocumentationId.RenderModeTagHelper => RenderModeTagHelper, DocumentationId.FormNameTagHelper => FormNameTagHelper, // If this exception is thrown, there are two potential problems: // // 1. Arguments are being passed for a DocumentationId that doesn't require formatting. // 2. A new DocumentationId was added that needs an entry added in the switch expression above // to return a DocumentationDescriptor. _ => throw new NotSupportedException(Resources.FormatUnknown_documentation_id_0(id)) }; } return new FormattedDescriptor(id, args); } public DocumentationId Id { get; } public abstract object?[] Args { get; } private int? _hashCode; private protected DocumentationDescriptor(DocumentationId id) { Id = id; } public sealed override bool Equals(object? obj) => obj is DocumentationDescriptor other && Equals(other); public abstract bool Equals(DocumentationDescriptor? other); public sealed override int GetHashCode() => _hashCode ??= ComputeHashCode(); protected abstract int ComputeHashCode(); public abstract string GetText(); private string GetDocumentationText() { return Id switch { DocumentationId.BindTagHelper_Fallback => ComponentResources.BindTagHelper_Fallback_Documentation, DocumentationId.BindTagHelper_Fallback_Event => ComponentResources.BindTagHelper_Fallback_Event_Documentation, DocumentationId.BindTagHelper_Fallback_Format => ComponentResources.BindTagHelper_Fallback_Format_Documentation, DocumentationId.BindTagHelper_Element => ComponentResources.BindTagHelper_Element_Documentation, DocumentationId.BindTagHelper_Element_After => ComponentResources.BindTagHelper_Element_After_Documentation, DocumentationId.BindTagHelper_Element_Culture => ComponentResources.BindTagHelper_Element_Culture_Documentation, DocumentationId.BindTagHelper_Element_Event => ComponentResources.BindTagHelper_Element_Event_Documentation, DocumentationId.BindTagHelper_Element_Format => ComponentResources.BindTagHelper_Element_Format_Documentation, DocumentationId.BindTagHelper_Element_Get => ComponentResources.BindTagHelper_Element_Get_Documentation, DocumentationId.BindTagHelper_Element_Set => ComponentResources.BindTagHelper_Element_Set_Documentation, DocumentationId.BindTagHelper_Component => ComponentResources.BindTagHelper_Component_Documentation, DocumentationId.ChildContentParameterName => ComponentResources.ChildContentParameterName_Documentation, DocumentationId.ChildContentParameterName_TopLevel => ComponentResources.ChildContentParameterName_TopLevelDocumentation, DocumentationId.ComponentTypeParameter => ComponentResources.ComponentTypeParameter_Documentation, DocumentationId.EventHandlerTagHelper => ComponentResources.EventHandlerTagHelper_Documentation, DocumentationId.EventHandlerTagHelper_PreventDefault => ComponentResources.EventHandlerTagHelper_PreventDefault_Documentation, DocumentationId.EventHandlerTagHelper_StopPropagation => ComponentResources.EventHandlerTagHelper_StopPropagation_Documentation, DocumentationId.KeyTagHelper => ComponentResources.KeyTagHelper_Documentation, DocumentationId.RefTagHelper => ComponentResources.RefTagHelper_Documentation, DocumentationId.SplatTagHelper => ComponentResources.SplatTagHelper_Documentation, DocumentationId.RenderModeTagHelper => ComponentResources.RenderModeTagHelper_Documentation, DocumentationId.FormNameTagHelper => ComponentResources.FormNameTagHelper_Documentation, // If this exception is thrown, a new DocumentationId was added that needs an entry added in // the switch expression above to return a resource string. var id => throw new NotSupportedException(Resources.FormatUnknown_documentation_id_0(id)) }; } }