SdkModificator is not well supported in PythonSdkUpdater and editable copy could play its role instead.
The consequence is that changes are applied only after OK is clicked in `Show All` dialog.
Previously it could be came over by creating sdk modificator for original sdk.
GitOrigin-RevId: 5415eb3bb6c971342b1c1ff576c44bc4571d0bde
Previous synchronization of background updates in PythonSdkUpdater was flawed.
It didn't prevent us from launching several concurrent updates for the same
SDK, but only blocked subsequent refresh tasks on a BlockingSet, still showing
the corresponding progress indicators, piling up threads and exhausting system
resources.
The new implementation attempts to enforce the following policy: no two updates
for the same SDK can be run concurrently, and all subsequent updates for an SDK
already being refreshed are squashed and queued to be executed once it finished.
We also adjusted PythonSdkUpdater interface to better indicate synchronization
of individual methods. The old update() method, which performed a few of update
operations in a blocking fashion, is now deprecated and replaced with more
explicit scheduleUpdate(), always asynchronous, and internal
updateVersionAndPathsSynchronouslyAndScheduleRemaining() that replicates the old
behavior for the time being due to a number of existing usages, but is to be
revised. Synchronous version and paths refreshes are now performed under a modal
progress indicator.
The legacy updating mechanism can be restored as a fallback if
"python.use.new.sdk.updater" Registry flag is reset.
Additionally, internal PyUpdateProjectSdk action was added for diagnostic.
These changes are a result of a joint effort with Alexey Kniazev.
GitOrigin-RevId: 6260cda7a22c4f5932f7d78eb6660a50e2b972b6
This patch replaces hard coded strings with i18n properties in idea-ui
Signed-off-by: Nikita Eshkeev <nikita.eshkeev@jetbrains.com>
GitOrigin-RevId: f481ab904b8648a9f0d68d4de91e1f31c01be49f
The non-impl modules for these plugins now contain more or less just their plugin.xml files
that declare corresponding dependencies.
GitOrigin-RevId: 84fc4761a595912d676cff1e2ab58fba03a8cd22
During the recent refactoring a Python plugin only file python-community-plugin-core.xml got included
into the Python plugin which is now bundled with PyCharm. It resulted in using Python plugin specific
components that were designed for the UI of IntelliJ, not PyCharm. This change restores the
registration of PyIdeCommonOptionsFormFactory and moves all includes of python-community-plugin-core.xml
to Python plugin specific files.
GitOrigin-RevId: cd8b6d9b68266ca99f206c005ba73a2e77657950
'WEB_MODULE' resolves to WebModuleType in IntelliJ IDEA and to PlatformWebModuleType in WebStorm and PhpStorm, so WebModuleType.getInstance will fail with ClassCastException if it's invoked in WebStorm/PhpStorm and PlatformWebModuleType.getInstance will fail if it's invoked in IDEA. Now the both methods are deprecated and PlatformWebModuleType.getInstance which work in all IDEs is used instead. This is needed to use Java support as a plugin in WebStorm (IDEA-195719).