Add enum parsing to document yaml parsing

This commit is contained in:
michael-hawker 2022-04-22 16:23:59 -07:00 коммит произвёл Michael Hawker MSFT (XAML Llama)
Родитель cbcb6225a7
Коммит 2ec9c9d6bc
1 изменённых файлов: 26 добавлений и 0 удалений

Просмотреть файл

@ -84,11 +84,37 @@ public partial class ToolkitSampleMetadataGenerator : IIncrementalGenerator
return null;
}
if (!Enum.TryParse<ToolkitSampleCategory>(category.Text, out var categoryValue))
{
// TODO: extract index to get proper line number?
ctx.ReportDiagnostic(
Diagnostic.Create(
DiagnosticDescriptors.MarkdownYAMLFrontMatterException,
Location.Create(file.Path, TextSpan.FromBounds(0, 1), new LinePositionSpan(LinePosition.Zero, LinePosition.Zero)),
file.Path,
"Can't parse category field, use value from ToolkitSampleCategory enum."));
return null;
}
if (!Enum.TryParse<ToolkitSampleSubcategory>(subcategory.Text, out var subcategoryValue))
{
// TODO: extract index to get proper line number?
ctx.ReportDiagnostic(
Diagnostic.Create(
DiagnosticDescriptors.MarkdownYAMLFrontMatterException,
Location.Create(file.Path, TextSpan.FromBounds(0, 1), new LinePositionSpan(LinePosition.Zero, LinePosition.Zero)),
file.Path,
"Can't parse subcategory field, use value from ToolkitSampleSubcategory enum."));
return null;
}
return new ToolkitFrontMatter()
{
Title = title.Text,
Description = description.Text,
Keywords = keywords.Text,
Category = categoryValue,
Subcategory = subcategoryValue,
};
}
}).OfType<ToolkitFrontMatter>().ToImmutableArray());