PureXML/Sources/Schema
Mihaela Mihaljevic d667b4cf1e feat(editor): structured quick-fixes from completions
Slice 4 of #94 (completes the epic). Quick-fixes are derived from the structured
schema completions, never by parsing a diagnostic message:

- TreeNode gains contentRange (the span between an element's start and end tags),
  captured by the ranged reader, so an inserted attribute or child is placed
  exactly.
- QuickFix and TextEdit model an editor edit (a replacement over a source range;
  an insertion is a zero-width range).
- QuickFixEngine turns a Completions into fixes: a required-but-absent attribute
  becomes an insertion before the start tag's >, and a still-expected required
  child becomes an insertion before the end tag. Schema.Document.quickFixes(at:in:)
  is the entry over a ranged tree.

Tests apply a fix and re-validate: adding the required id, or inserting the
required qty, yields XML the schema then accepts; a complete element offers none.

#94 (editor integration) is complete: ranged recovering read, unified lint,
schema completions, and quick-fixes.
2026-06-08 13:35:33 +02:00
..
BuiltinType.swift feat(schema): XSD simple-type datatype library with facets 2026-06-08 06:29:37 +02:00
ComplexType.swift feat(xsd): xsi:nil/nillable and fixed/default value constraints 2026-06-08 13:03:06 +02:00
ComplexValidator.swift feat(xsd): xsi:nil/nillable and fixed/default value constraints 2026-06-08 13:03:06 +02:00
ContentMatcher.swift feat(editor): schema-driven completions and what-is-missing 2026-06-08 13:27:37 +02:00
DateTimeParser.swift chore: silence clean-build warnings 2026-06-08 07:32:28 +02:00
DateTimeValue.swift feat(schema): XSD simple-type datatype library with facets 2026-06-08 06:29:37 +02:00
DecimalValue.swift feat(schema): XSD simple-type datatype library with facets 2026-06-08 06:29:37 +02:00
IdentityConstraint.swift feat(xsd): add identity constraints (unique, key, keyref) 2026-06-08 08:58:36 +02:00
IdentityValidator.swift refactor(validation): migrate XSD validation onto the framework 2026-06-08 12:43:20 +02:00
Lexical.swift feat(schema): XSD simple-type datatype library with facets 2026-06-08 06:29:37 +02:00
Primitive.swift feat(schema): XSD simple-type datatype library with facets 2026-06-08 06:29:37 +02:00
RelaxNGCompactLexer.swift feat(relaxng): add compact syntax (RNC) and include/externalRef 2026-06-08 09:13:09 +02:00
RelaxNGCompactParser.swift feat(relaxng): add compact syntax (RNC) and include/externalRef 2026-06-08 09:13:09 +02:00
RelaxNGDerivative.swift feat(schema): RELAX NG pattern model, parser, and derivative validation 2026-06-08 06:49:37 +02:00
RelaxNGParser.swift feat(relaxng): add compact syntax (RNC) and include/externalRef 2026-06-08 09:13:09 +02:00
RelaxNGPattern.swift feat(schema): RELAX NG pattern model, parser, and derivative validation 2026-06-08 06:49:37 +02:00
RelaxNGSchema.swift feat(relaxng): add compact syntax (RNC) and include/externalRef 2026-06-08 09:13:09 +02:00
SchemaDocument.swift feat(editor): structured quick-fixes from completions 2026-06-08 13:35:33 +02:00
SimpleType.swift feat(xsd): add list/union simple types, attribute groups, and element/group refs 2026-06-08 08:28:17 +02:00
XSDCompletions.swift feat(editor): schema-driven completions and what-is-missing 2026-06-08 13:27:37 +02:00
XSDContext.swift feat(xsd): xsi:nil/nillable and fixed/default value constraints 2026-06-08 13:03:06 +02:00
XSDParser.swift feat(xsd): xsi:nil/nillable and fixed/default value constraints 2026-06-08 13:03:06 +02:00
XSDSimpleParser.swift feat(xsd): add include/import/redefine, substitution groups, and xsi:type 2026-06-08 08:46:24 +02:00
XSDValidations.swift feat(xsd): xsi:nil/nillable and fixed/default value constraints 2026-06-08 13:03:06 +02:00