Open ndelanou opened 1 year ago
Tried to modify the generated code and faced instance_access_to_static_member
errors when accessing the generated assets.
I don't think there is any workaround right now to access static variables through instances.
This issue can either be closed or kept as a reminder if something change with Dart in the future.
+1 Also would like this.
+1 would like this. This would definitely increase the effective and clean Dart code.
+1 would like this. Otherwise, there is no choice but using asset generator plugin from IDE to use static const variables.
any update from this issue ?!
This is impossible in the current dart. You need to take a trade-off between DX and performance. 🥲
This is impossible in the current dart. You need to take a trade-off between DX and performance. 🥲
https://github.com/FlutterGen/flutter_gen/issues/185
in this issue you told to put style as camel case or snack case, then static const will generated. right? i made this but also static not generated.
my second question if you know good package or extension for asset generation please tell me. thanks
Please show your config. The generated code should looks like this: https://github.com/FlutterGen/flutter_gen/blob/main/packages/core/test_resources/actual_data/assets_camel_case.gen.dart
Sorry, I'm not familiar with other packages.
This is my yaml file:
name: cookpedia description: A new Flutter project. publish_to: 'none' version: 1.0.0+1
environment: sdk: '>=3.0.5 <4.0.0'
dependencies: flutter: sdk: flutter flutter_localizations: sdk: flutter cupertino_icons: ^1.0.2 dio: ^5.2.1+1 flutter_svg: ^2.0.7 flutter_bloc: ^8.1.3 internet_connection_checker: ^1.0.0+1 get_it: ^7.6.0 equatable: ^2.0.5 flutter_hooks: ^0.18.6 pin_code_fields: ^8.0.1
dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^2.0.0 build_runner: flutter_gen_runner:
flutter_gen: assets: style: camel-case
flutter: generate: true uses-material-design: true assets:
assets/json/
fonts:
And The generated file like this:
class $AssetsIconsGen { const $AssetsIconsGen();
/// File path: assets/icons/apple.svg String get apple => 'assets/icons/apple.svg';
/// File path: assets/icons/arabic.svg String get arabic => 'assets/icons/arabic.svg';
/// File path: assets/icons/arrow_back.svg String get arrowBack => 'assets/icons/arrow_back.svg';
/// File path: assets/icons/arrow_down.svg String get arrowDown => 'assets/icons/arrow_down.svg';
/// File path: assets/icons/calendar.svg String get calendar => 'assets/icons/calendar.svg'; }
SO It Did Not generate statics const even i put camel case in style. i dont know why.
@Hadeel-Masoud Can you try
flutter_gen:
assets:
outputs:
style: camel-case
Thanks it works! and now i can use static const instead of get .
@lcdsmao Could you take a look at my case as well? I am using (style: dot-delimiter) and (style: camel - case) both.
But it seems there is no way to put them all below
flutter_gen:
output: lib/style/res
assets:
exclude:
- assets/prompts/**/*
class $AssetsIconsGen {
const $AssetsIconsGen();
/// File path: assets/icons/apple_logo.svg
String get appleLogo => 'assets/icons/apple_logo.svg';
/// List of all assets
List<String> get values => [
appleLogo,
];
}
class $AssetsImagesGen {
const $AssetsImagesGen();
/// File path: assets/images/bg-grad-black-green.png
AssetGenImage get bgGradBlackGreen =>
const AssetGenImage('assets/images/bg-grad-black-green.png');
/// List of all assets
List<AssetGenImage> get values => [
bgGradBlackGreen,
];
}
class Assets {
Assets._();
static const $AssetsIconsGen icons = $AssetsIconsGen();
static const $AssetsImagesGen images = $AssetsImagesGen();
}
Is there an existing issue for this?
Describe the problem
When generating assets using
style: dot-delimiter
, I would like to be able to access the generated assets as constant values. I found this previous issue (#185) but I would like to keep thedot-delimiter
style.Today, the generated code look like this:
So I cannot call it like this:
This is preventing me from creating several const Widgets.
Describe the solution
The generated code could look like this:
Additional context
No response
Code of Conduct