internal static bool TrySplitNamespaceAndType(TagHelperDescriptor tagHelperDescriptor, out StringSegment @namespace, out StringSegment typeName)
            {
                if (tagHelperDescriptor.ParsedTypeInfo is { } value)
                {
                    @namespace = value.Namespace;
                    typeName   = value.TypeName;
                    return(value.Success);
                }

                var success = TrySplitNamespaceAndType(tagHelperDescriptor.GetTypeName(), out @namespace, out typeName);

                tagHelperDescriptor.ParsedTypeInfo = new(success, @namespace, typeName);
                return(success);
            }
Beispiel #2
0
            // We need to filter out the duplicate tag helper descriptors that come from the
            // open file in the editor. We mangle the class name for its generated code, so using that here to filter these out.
            internal static bool IsTagHelperFromMangledClass(TagHelperDescriptor tagHelper)
            {
                var typeName = tagHelper.GetTypeName();

                if (tagHelper.IsChildContentTagHelper())
                {
                    // If this is a child content tag helper, we want to look at it's original type.
                    // E.g, if the type name is `Test.__generated__MyComponent.ChildContent`, we want to look at `Test.__generated__MyComponent`.
                    TrySplitNamespaceAndType(typeName, out typeName, out var _);
                }
                if (!TrySplitNamespaceAndType(typeName, out var _, out var className))
                {
                    return(false);
                }

                return(ComponentMetadata.IsMangledClass(className));
            }