Closed Alexqwesa closed 1 month ago
This could be related to flutter 3.22.x. I downgraded to 3.19.6 and the context menu options showed up again.
This could be related to flutter 3.22.x. I downgraded to 3.19.6 and the context menu options showed up again.
Flutter does not need to be downgraded, just disable custom_lint in analysis_options.yaml to resolve these issues temporary.
This could be related to flutter 3.22.x. I downgraded to 3.19.6 and the context menu options showed up again.
Flutter does not need to be downgraded, just disable custom_lint in analysis_options.yaml to resolve these issues temporary.
Agreed, I just put the info here in case it helps triage the issue.
This could be related to flutter 3.22.x. I downgraded to 3.19.6 and the context menu options showed up again.
Flutter does not need to be downgraded, just disable custom_lint in analysis_options.yaml to resolve these issues temporary.
wouldn't this disable riverpod_lint entirely, hence not solving the problem? I tried (at least in AS) and it's not showing the "convert to consumer widget" assist.
Same problem facing
The request edit.getAssists failed with the following error: RequestErrorCode.PLUGIN_ERROR A request threw the exception:Bad state: Unable to find the context to /Users/nhcoder/Library/Application Support/JetBrains/IdeaIC2024.1/scratches/scratch.dart
This could be related to flutter 3.22.x. I downgraded to 3.19.6 and the context menu options showed up again.
Flutter does not need to be downgraded, just disable custom_lint in analysis_options.yaml to resolve these issues temporary.
wouldn't this disable riverpod_lint entirely, hence not solving the problem? I tried (at least in AS) and it's not showing the "convert to consumer widget" assist.
Nothing at the moment will show the Riverpod "Convert to..." assists. The custom_lint disable just enables the "Wrap with widget..." context assists to work reliably. They seem to show inconsistently without the custom_lint disable temp fix.
This could be related to flutter 3.22.x. I downgraded to 3.19.6 and the context menu options showed up again.
Flutter does not need to be downgraded, just disable custom_lint in analysis_options.yaml to resolve these issues temporary.
wouldn't this disable riverpod_lint entirely, hence not solving the problem? I tried (at least in AS) and it's not showing the "convert to consumer widget" assist.
Nothing at the moment will show the Riverpod "Convert to..." assists. The custom_lint disable just enables the "Wrap with widget..." context assists to work reliably. They seem to show inconsistently without the custom_lint disable temp fix.
Yes, that's what I am experiencing too. I am getting that OP was reporting that he/she didn't see the "Convert" assist, not the inconsistent showing of "Wrap" (for some reason it shows only when the caret is just before the widget name). No big deal since converting them manually is easy, but still disorienting the first time you see it.
I came across this issue too. I'll fix after I'm back from Japan
For now use riverpod_context this library and use and use riverpod with normal widgets, no need to convert to consumer and hook widgets for now.
Context Extensions riverpod_context provides four convenient context extensions to interact with your providers.
context.read
context.watch
context.refresh
context.invalidate
context.listen
context.subscribe
I noticed this issue pop up when I upgraded Android Studio from Iguana to Koala. Reinstalling Iguana fixed it for me.
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.22.1, on macOS 14.0 23A344 darwin-arm64, locale en-US)
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 15.2)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2023.2)
[✓] VS Code (version 1.90.2)
[✓] Connected device (5 available)
[✓] Network resources
• No issues found!
Are you back from Japan? @rrousselGit
Nope
Note that I started looking into fixing custom_lint a bit. But it's a complex problem. Analyzer effectively made a large breaking change as a minor version .. at least from custom_lint's PoV.
It requires a lot of effort to update.
Considering the amount of effort needed, I'm heavily considering making a VScode extension for custom_lint instead of trying to support analyzer_plugin again. This would improve the overall user experience, while needing a similar amount of work
Thanks very much for your work on Riverpod. What would be involved in developing an Android Studio plugin to do the same?
In theory not too much. But I'm not super familiar with making AS plugins. We'll see in due time.
I'm not either, but would be happy to take on that task if needed.
I'll need to complete the VScode one first. Both plugins would likely share a significant portion of their codebase.
I was hoping that would be the case
any update ?
I'm working on it. But it's a complex problem so it's taking some time
Gotta love it when a small change is a breaking change... I'm also very willing to help out with a JetBrains plugin for this, as I love the conversion feature from going from StatelessWidget to ConsumerWidget and so on.
Thanks for all the work, its really appreciated!
Looks like the root of the problem was a bug in the analyzer_plugin mechanism, possibly introduced by a newer analyzer version. And I went on a tangent for a while because I incorrectly diagnosed the problem.
I have a fix for the "common scenarios". And a bug-fix will be needed in the Dart SDK for certain situations. It seems to be tied with monorepos ... but some monorepos do work.
Description of the bug Expected context menu what look like this: https://raw.githubusercontent.com/rrousselGit/riverpod/master/packages/riverpod_lint/resources/convert_to_consumer_widget.gif
But all i got is "Convert to StatefulWidget"
To Reproduce
pubspec.yaml click me to see
analysis_options.yaml click me to see
flutter doctor --verbose click me to see
/home/alex/Android/flutter/bin/flutter doctor --verbose [✓] Flutter (Channel stable, 3.22.1, on openSUSE Leap 15.5 5.14.21-150500.55.62-default, locale en_US.UTF-8) • Flutter version 3.22.1 on channel stable at /home/alex/Android/flutter • Upstream repository https://github.com/flutter/flutter.git • Framework revision a14f74ff3a (vor 7 Tagen), 2024-05-22 11:08:21 -0500 • Engine revision 55eae6864b • Dart version 3.4.1 • DevTools version 2.34.3
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0) • Android SDK at /home/alex/Android/Sdk • Platform android-34, build-tools 34.0.0 • ANDROID_HOME = /home/alex/Android/Sdk • Java binary at: /home/alex/.local/share/JetBrains/Toolbox/apps/AndroidStudio/ch-1/232.10227.8.2321.11479570/jbr/bin/java • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11572160) • All Android licenses accepted.
[✓] Chrome - develop for the web • Chrome at google-chrome
[✓] Linux toolchain - develop for Linux desktop • clang version 13.0.1 • cmake version 3.20.4 • ninja version 1.10.0 • pkg-config version 0.29.2
[✓] Android Studio (version 2023.3) • Android Studio at /home/alex/.local/share/JetBrains/Toolbox/apps/AndroidStudio/ch-1/232.10227.8.2321.11479570 • Flutter plugin version 79.0.2 • Dart plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/6351-dart • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11572160)
[✓] Android Studio (version 2023.2) • Android Studio at /home/alex/.local/share/JetBrains/Toolbox/apps/AndroidStudio/ch-1/232.10227.8.2321.11280706 • Flutter plugin version 78.2.2 • Dart plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/6351-dart • Java version OpenJDK Runtime Environment (build 17.0.9+0-17.0.9b1087.7-11185874)
[✓] VS Code (version 1.89.1) • VS Code at /usr/share/code • Flutter extension version 3.88.0
[✓] Connected device (2 available) • Linux (desktop) • linux • linux-x64 • openSUSE Leap 15.5 5.14.21-150500.55.62-default • Chrome (web) • chrome • web-javascript • Google Chrome 125.0.6422.112
[✓] Network resources • All expected network resources are available.
• No issues found! Process finished with exit code 0
Expected behavior I expect context menu what look like this: https://raw.githubusercontent.com/rrousselGit/riverpod/master/packages/riverpod_lint/resources/convert_to_consumer_widget.gif