(cherry picked from commit c04ce4e31d29757b01124bef5d56341c1d5c3076)
(cherry picked from commit dd6672929b)
(cherry picked from commit c616055e7d)
(cherry picked from commit e0b79cb487)
(cherry picked from commit 5bc56a6a642bb0baba1a0434c50f6b45cae64cb9)
(cherry picked from commit fdfad7b125)
(cherry picked from commit b869d83490)
(cherry picked from commit 3c336d8050)
Switch `ProjectJdkTable.getInstance()` to `ProjectJdkTable.getInstance(project)` to ensure project-scoped JDK table usage. This aligns with environment-aware SDK resolution practices and prevents potential inconsistencies in multi-environment setups.
(cherry picked from commit 0f44a59494899ed4234a9a60f7466290317d5245)
IJ-CR-181063
GitOrigin-RevId: eb99fc80a1d7c0c51a39b76cb98da1a7aac78b47
Prevents the build toolwindow from stealing the focus when an automatic build is triggered by the automatic test runner when the code is uncompilable. #IDEA-335769 Fixed
(cherry picked from commit d6bd1f9fade4fab3c91b25bbe788f870aaf123bc)
IJ-CR-180263
GitOrigin-RevId: e5ff8f040d27d4a1686289af4a1158a6ee38c633
* If ExtendableTextComponent.Extension has focusable set to true, extension icon will be replaced with an actual keyboard focusable button.
* Focusable is not set to true by default because there are many cases where the extension is not supposed to be keyboard focusable. For example, if extension already has a keyboard equivalent, like Clear and Search History extensions, or if it's intended to be a simple icon without action.
* Can be disabled with a registry flag `text.field.extension.buttons.focusable`
GitOrigin-RevId: f65fcfb78528cc1affcb090e3f0b669790f76741
Because of external usages and the specifics of the api it has to remain on the backend side (it touches process handler). To make it work, a customization builder is introduced: it gets passed to registered extensions, accumulates customizations, sends it through rpc and applies to the corresponding frontend UI component.
GitOrigin-RevId: 1d0f1bdc954c4b2837e17fb472aa665f0a36e03c
Running scratch files was broken because of changes in ApplicationConfiguration in the previous commit.
Related to IDEA-364759.
GitOrigin-RevId: e80ec0745221bcdc8b44a4924c99a3437ca1cf36
Now we resolve the runtime-qualified class/method name on demand, at `ApplicationConfiguration#getRunClass` level.
We want to keep the ability to run the configuration even if the IDE is in dumb mode,
so now `ApplicationConfiguration#getMainClass` uses alternative resolve (`DumbService#withAlternativeResolveEnabled`).
The test `ApplicationRunClassDumbModeTest` has been added to verify this.
Inside `ClassEditorField`, the field storing ConcurrentMap has been removed.
It was part of a previous – failed – attempt to fix the slowOp,
but in reality it only changed the place where the slowOp occurred.
GitOrigin-RevId: bade72877c02c1bba095c69f264d5f868d41f4d7
Reasons:
- it is the only subclass of ApplicationConfiguration that is not final
- don't see a reason why someone would like to extend it
GitOrigin-RevId: 1ad3bd25cf0681b655c8637f44eae5477a5dbf0d
JavaApplicationSettingsEditor has been there for a few years already.
ApplicationConfigurable is deprecated and marked for removal.
For JetBrainers: see also https://jetbrains.slack.com/archives/C0AEUGGMD/p1680095215010229
GitOrigin-RevId: 473973673b5e2c2fc19c35c16922a2ea50ddaac3
Changes the version check to check for Java 8 compatability after the class file format version was increased. Also adds an additional workaround to the error message. #IDEA-374134
GitOrigin-RevId: 818d7c8e54e431648b5a170e97486bf1fec255ba
Created by Vladimir Krivosheev (Vladimir.Krivosheev) via Patronus
Merge-request: IJ-MR-166073
Merged-by: Vladimir Krivosheev <vladimir.krivosheev@jetbrains.com>
GitOrigin-RevId: 7b3d0f52e2621c6ca2c45aa8ed832724a7fd038a