-
Notifications
You must be signed in to change notification settings - Fork 332
⚙️ Flip org.jetbrains.android
to optional
#7949
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
👍 That's a great update, which allows us to use JetBrains Community Edition IDEs for coding, as not everyone needs Android support (they can try Android Studio for that). |
There seem to be exceptions when running on IntelliJ IDEA Ultimate. Not sure if it's related. Marking as draft for further investigations. 2025-03-07 00:25:59,609 [ 74946] INFO - #c.i.p.s.VulnerableApiService - Error on parsing libraries, retry
2025-03-07 00:26:09,624 [ 84961] INFO - #c.i.p.s.VulnerableApiService - Error on parsing libraries, retry
2025-03-07 00:26:09,624 [ 84961] WARN - #c.i.p.s.VulnerableApiService - retry failed
java.lang.Throwable: Control-flow exceptions (e.g. this class com.intellij.openapi.application.ReadAction$CannotReadException) should never be logged. Instead, these should have been rethrown if caught.
at com.intellij.openapi.diagnostic.Logger.ensureNotControlFlow(Logger.java:493)
at com.intellij.idea.IdeaLogger.warn(IdeaLogger.java:139)
at com.intellij.packageChecker.service.VulnerableApiService$createLibrariesFqnVulnerabilitiesFlow$3.invokeSuspend(VulnerableApiService.kt:141)
at com.intellij.packageChecker.service.VulnerableApiService$createLibrariesFqnVulnerabilitiesFlow$3.invoke(VulnerableApiService.kt)
at com.intellij.packageChecker.service.VulnerableApiService$createLibrariesFqnVulnerabilitiesFlow$3.invoke(VulnerableApiService.kt)
at kotlinx.coroutines.flow.FlowKt__ErrorsKt$catch$$inlined$unsafeFlow$1.collect(SafeCollector.common.kt:113)
at kotlinx.coroutines.flow.FlowKt__ErrorsKt$catch$$inlined$unsafeFlow$1$1.invokeSuspend(SafeCollector.common.kt)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:102)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:608)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:873)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:763)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:750)
Caused by: com.intellij.openapi.application.ReadAction$CannotReadException
at com.intellij.openapi.application.ReadAction$CannotReadException.lambda$jobCancellation$0(ReadAction.java:128)
at com.intellij.openapi.progress.util.ProgressIndicatorUtilService.runActionAndCancelBeforeWrite(ProgressIndicatorUtilService.java:55)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:157)
at com.intellij.openapi.application.rw.CancellableReadActionKt.cancellableReadActionInternal(cancellableReadAction.kt:28)
at com.intellij.openapi.application.rw.CancellableReadActionKt.cancellableReadAction$lambda$0(cancellableReadAction.kt:17)
at com.intellij.openapi.progress.ContextKt.prepareThreadContext(context.kt:85)
at com.intellij.openapi.application.rw.CancellableReadActionKt.cancellableReadAction(cancellableReadAction.kt:16)
at com.intellij.openapi.application.rw.PlatformReadWriteActionSupport.computeCancellable(PlatformReadWriteActionSupport.kt:42)
at com.intellij.openapi.application.ReadAction.computeCancellable(ReadAction.java:115)
at com.intellij.packageChecker.service.VulnerableApiService$createLibrariesFqnVulnerabilitiesFlow$1.invokeSuspend(VulnerableApiService.kt:124)
at com.intellij.packageChecker.service.VulnerableApiService$createLibrariesFqnVulnerabilitiesFlow$1.invoke(VulnerableApiService.kt)
at com.intellij.packageChecker.service.VulnerableApiService$createLibrariesFqnVulnerabilitiesFlow$1.invoke(VulnerableApiService.kt)
at kotlinx.coroutines.flow.FlowKt__ZipKt$combine$1$1.invokeSuspend(Zip.kt:29)
at kotlinx.coroutines.flow.FlowKt__ZipKt$combine$1$1.invoke(Zip.kt)
at kotlinx.coroutines.flow.FlowKt__ZipKt$combine$1$1.invoke(Zip.kt)
at kotlinx.coroutines.flow.internal.CombineKt$combineInternal$2.invokeSuspend(Combine.kt:73)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
... 4 more |
Turns out the built artifacts on Windows will fail with specific projects but not related. |
This is cool. Since it raises a kind of product question I'll have to defer to folks with more context. Specifically: are we signing on to support these additional IDEs? /fyi @anderdobo |
What @pq said. There have been a number of P0 issues that have prevented us from doing anything with the Flutter IJ plugin for bit, but with the release out yesterday, and hopefully a quick resolve on some of the bugs introduced, see the M85.1 milestone, we are happy to take a look at PRs. More time can be spent on issues that are in current milestones. For this PR, what @pq said is right, this is a product question. There are strong arguments on both sides with regard to if the Flutter IJ plugin should increase it's surface area to support more than Android Studio / Community / Ultimate. |
e03dfc6
to
f2bc11c
Compare
For everyone who wants to try the plugin on other IDEs, I've setup the release workflow with my fork, and you can download the plugin through GitHub Release: https://github.com/AlexV525/flutter-intellij/releases |
I've been looking over IJ documentation to make sure I understand how extensions work and the consequences of having this dependency. One thing that I want to clarify - it seems our current setup with only |
@AlexV525 I talked to Jaime today about this change. Does |
@helin24 Thanks for digging in!
They seem similar, but
If I understand you correctly, we might also put the following declaration: <depends optional="true" config-file="studio-contribs.xml">com.intellij.modules.androidstudio</depends> Correct? |
We already have:
But I was wondering if we could add:
instead of using a new config file However, if the contents of the android studio module and the android plugin are different, then we're risking some files missing or versioning issues. Unless the functionality we're using from the android studio module is so basic that it's likely to be available in both? Having not looked into the details, I have no idea. It seems odd to me that we would check for |
I guess I haven't take a look about which dep we use for Android integrations. It seems reasonable that we rely on So we may be able remove the |
Hmm.. are you saying now that perhaps we don't need this line entirely? (i.e. are you referring to
My understanding is this:
Maybe the outstanding question now is what functionality the line in question:
contributes (or could contribute, with Let me know if my understanding is in line with your thinking. |
@helin24 : I think you are correct. But how would I test this using the current configuration? I've tried many times to |
@AlexV525 Are you able to build the plugin with |
660afe5
to
18f21da
Compare
@helin24 Sorry for the delay. I've tested with |
This seems wrong. Let me write a new comment. |
I'm also curious, what happens here when the
This file imports |
No problem at all! There are always some small changes that expose some unthoughtful history. :)
It's the first scenario. Only a new entry will display at this place. Clicking it will navigate to the normal project creation panel. The problem is, if we don't specify a config file: (P.S. I also found a bug that when the Flutter plugin is installed without the Android plugin installed, clicking "File > New > Project" will result in non-responsive.)
There are a couple of businesses that still rely on the plugin: flutter-intellij/src/io/flutter/FlutterInitializer.java Lines 163 to 165 in dec96dc
Because it requires us (the author of flutter-intellij) to install the plugin at our compile time, rather than end users. |
I suspect this is the reason I ran into non-responsive interface. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for checking on all of these edge cases! I think if you can rebase onto master this will be ready to go.
56e3f10
to
048f1d1
Compare
@AlexV525 can you investigate changing this method to not use the Android dependency? https://github.com/flutter/flutter-intellij/blob/master/src/io/flutter/FlutterUtils.java#L92 I think it will be something like checking I just want to get rid of the error that occurs during File > New Project when a user is on IntelliJ IDEA and has the Flutter plugin installed but not the Android plugin. |
Sure I could try but no time guarantee for now :) |
@AlexV525 no problem - if you can't get to it next week either I'll work on it or we may revert this change for this release and try again for next release. |
Tip
To try out the plugin on other IDEs, head over to https://github.com/AlexV525/flutter-intellij/releases and download the latest release!
Resolves #6809
Resolves #7205
Resolves #7947
Tested with PyCharm 2024.3.2
Pre-launch Checklist
///
).