solid_generator 3.0.0-dev.6
solid_generator: ^3.0.0-dev.6 copied to clipboard
Solid source-to-lib code generator for Flutter reactive state.
3.0.0-dev.6 #
- FEAT: A widget
build()can read another class's@SolidQuerymethod cross-instance (e.g.viewModel.customers().isLoading) and now gets theSignalBuilderwrap andflutter_solidartimport it needs, while thequery()call sites and thequery.refreshtear-off stay byte-identical (no.valuerewrite). Previously only the class declaring a query could consume it, even though cross-instance@SolidStatereads already worked. The cross-file query-name registry is origin-qualified exactly like the@SolidStateregistry (#110 parity): an ambiguous simple name resolves only on a receiver's resolved-library match, so a same-named non-query method is never spuriously tracked.
3.0.0-dev.5 #
- FIX: Bare
super.xconstructor parameters now seed the cross-file registry: the superclass is located syntactically (alias-aware, same-package imports only), the matched constructor parameter's type is resolved (recursing through super-formal chains, mapping generic type parameters to the extends-clause type arguments), and the registry walk also searches the located superclass file's own imports one hop further (#108). - FIX: Registry entries under a shadowed or multi-origin simple name are qualified by origin library and resolve only on a receiver's resolved-library match, so a local plain class and a foreign
@SolidStateclass sharing a name each behave correctly; ambiguous names never rewrite through AST-only resolution (#110). Side-effect: dispose auto-injection no longer recognizes a name with multiple cross-file origins — passdispose:explicitly for such classes.
3.0.0-dev.4 #
- FIX: Files with no
@Solid*annotation and no provider call site now enter the pipeline when they read cross-file@SolidStatestate — previously they passed through verbatim, leaving reads un-lowered (anddart fixcould collapse the resulting always-non-null guards into dead code) (#106). Pure-consumer plain classes get.valuelowering with noDisposablesynthesis; pure-consumer widgets get the sameSignalBuilder-wrappedbuild()as@SolidEnvironmentwidgets, with imports repaired combinator-aware. Also covered: static-field holders, untyped fields typed via constructor parameters, and collection receivers (.first, for-in).partfiles remain outside the pipeline.
3.0.0-dev.3 #
- FIX: The cross-file registry is seeded from instance-field and constructor-parameter declared types (generic type arguments included), so
@SolidStatereads through plain constructor-injected references lower across files (#104). Locally declared names shadow imports,show/hidecombinators are honored, anddart:core/dart:asyncnames are skipped.
3.0.0-dev.2 #
- FIX: Cross-class
.valuerewriting resolves constructor-injected instance fields (includingthis.-prefixed receivers), not just method parameters and@SolidEnvironmentfields. - FIX:
.environment()/Provider(...)dispose auto-injection is type-aware: injected when the created type provably hasdispose()or is@Solid*-annotated (same- or cross-file), skipped for provably plain types, and kept as the loud compile-time default for unresolvable types (dispose: nullopts out).
3.0.0-dev.1 #
- BREAKING: Raise the Dart SDK lower bound to
^3.10.0to target the solidart v3 ecosystem. - CHORE: Upgrade
analyzerto^12.0.0and adapt to its reshaped class/enum declaration AST (name and members moved ontonamePart/bodyfor primary constructors). - CHORE: Bump
solid_annotationsto^3.0.0-dev.1,dart_styleto^3.1.8, andbuild/build_runner/build_test.
2.0.0+1 #
- DOCS: Update README installation.
2.0.0 #
- FEAT: SignalBuilder placement,
.valuerewrite, dispose synthesis, StatelessWidget→StatefulWidget split. - FEAT: Computed synthesis from getter form of
@SolidState. - FEAT: Fine-grained reactivity with untracked-read semantics (
.untracked). - FEAT: Support the
untracked(() => …)function form for untracked writes inside reactive bodies (e.g. writing a collection signal in a@SolidEffectwithout a cyclic reaction). The call passes through toflutter_solidart'suntracked; inner reads still receive.valuebut are not tracked. Previously this form was rejected. - FEAT: Effect lowering with
initStatematerialization for State and plain-class targets. - FEAT: Resource lowering for Future/Stream with
.when()/.refresh()call-site preservation. - FEAT: Environment field synthesis with Provider-backed DI and cross-class chain rewrites.
1.0.3 #
- FIX: Missing
flutter_solidartimport in generatedmain.dartfile, if no reactive annotations are used.
1.0.2 #
- FIX: Generator not transpiling code correctly in some cases.
1.0.1 #
- FIX: Remove Flutter SDK.
1.0.0+2 #
- CHORE: Add
fluttersdk to resolve score on pub.dev.
1.0.0 #
- Initial version.