Remove the demo text-parsing domain
The scaffolding domain existed to prove the shell end to end before there was
anything real to put in it. There is now, so it goes - as CLAUDE.md promised it
would.
Gone: the two sample parsers, ITextParser, ParsedRecord, the parser catalog,
ParseViewModel and ParseView, their tests, and the settings key that remembered
which parser was last used. ParseError.LineNumber becomes Index, since for a
listing "line 42" was simply untrue, and the error keys move from Parse.Error.*
to Collect.Error.* now that parsing is not a concept here.
Kept: IParser<,>, ParseOutcome, ParseProgress and ParseError. The streaming
contract was always the general part - it was only ever the text-shaped closure
of it that was scaffolding.
Rendering the dashboard caught two keys that were referenced but never added
during the rename: the XAML was repointed and the resources were not. The parity
test could not see it, because it compares the two files against each other and
a key absent from both is consistent. That gap now has its own test, which reads
every {l:Loc} in the XAML and checks it resolves - a screenshot is too late and
too manual a way to find a missing string.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
fe62bcf53f
commit
f8744c930a
@@ -1,7 +1,5 @@
|
||||
using AvParser.Core.Collecting;
|
||||
using AvParser.Core.Collecting.Sources;
|
||||
using AvParser.Core.Parsing;
|
||||
using AvParser.Core.Parsing.Samples;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
namespace AvParser.Core.DependencyInjection;
|
||||
@@ -10,20 +8,17 @@ namespace AvParser.Core.DependencyInjection;
|
||||
public static class CoreServiceCollectionExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// Registers every parser plus the catalog that indexes them.
|
||||
/// Registers every media source the domain itself provides.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Adding a parser is a one-line change here — that is the whole point of the
|
||||
/// <see cref="ITextParser"/> / <see cref="IParserCatalog"/> split.
|
||||
/// Adding a source is a one-line change here — that is the whole point of the
|
||||
/// <see cref="IMediaSource"/> / <see cref="IMediaSourceCatalog"/> split. Sources that need a
|
||||
/// network live in the infrastructure layer and register themselves there.
|
||||
/// </remarks>
|
||||
public static IServiceCollection AddAvParserCore(this IServiceCollection services)
|
||||
{
|
||||
ArgumentNullException.ThrowIfNull(services);
|
||||
|
||||
services.AddSingleton<ITextParser, DelimitedTextParser>();
|
||||
services.AddSingleton<ITextParser, KeyValueTextParser>();
|
||||
services.AddSingleton<IParserCatalog, ParserCatalog>();
|
||||
|
||||
services.AddSingleton<IMediaSource, UrlListSource>();
|
||||
|
||||
return services;
|
||||
|
||||
Reference in New Issue
Block a user