Commit Graph

122 Commits

Author SHA1 Message Date
Egor.Eliseev
0c73c9eff9 PY-72274 separating content for python core/pro plugins
1. Delete `intellij.python.community.impl.xml` (move content to `PythonCore` plugin). It is necessary to fix incorrect dependencies: `PythonCore`, `Pythonid` include the same module.
2. Fixed dependencies: if some plugin/module needs Python core functionality, then it should depend on `PythonCore`.


Co-authored-by: Vladimir Koshelev <Vladimir.Koshelev@jetbrains.com>

Merge-request: IJ-MR-136158
Merged-by: Egor Eliseev <Egor.Eliseev@jetbrains.com>

GitOrigin-RevId: ce9ed4c17f601ee1ca2b6cf608f4e30fdac1d879
2024-06-19 21:39:24 +00:00
Ilya.Kazakevich
0a43dbe6b5 [python] v2 python-java module needs access to general python plugin
GitOrigin-RevId: 24159296bc256486a85cc2396c7a5827f1e9208b
2024-01-25 22:14:26 +00:00
Ilya.Kazakevich
9d4751f238 [python, ds, jupyter]: Migrate Python support to V2
Layout:

  JPS modules
  `intellij.python.community`
  `intellij.python.community.impl`
  `intellij.python.parser`
  `intellij.python.psi`
  `intellij.python.psi.impl`
  `intellij.python.ast`
  use package `com.jetbrains.python`
  and go to `intellij.python.community.impl` v2 module

  JPS module
  `intellij.python`
  uses package `com.intellij.python.pro`
  and goes to `intellij.python/pro` v2 module

  Both v2 modules (along with lots of others) come with
  `PythonId` (prof) or `PythonCore` (community) plugins

  DS bundles  `intellij.python.community.impl`

  Idea and other Mini IDEs get `PythonCore` or `PythonId` plugin that bundle modules for Idea and mini IDEs

GitOrigin-RevId: 98f418c52d90d51b9adf3250c561f2c36c767e2d
2024-01-22 20:26:58 +00:00
Sergei Vorobyov
8c13ac897a IDEA-343666 [NPW] fix: use platform icons for languages that present in the Install Plugin popup
GitOrigin-RevId: 838fbf9231cf7ce331c46c4161896a4a51d384ca
2024-01-22 20:01:30 +00:00
Ilya.Kazakevich
064aa436a2 [python] Separate new project wizard class since it is used in java plugin only
GitOrigin-RevId: c7a31b5b17b719d3361bde5dae0c73315e597042
2024-01-16 15:50:13 +00:00
Ilya.Kazakevich
8a334cf9d2 [python] Rename and move python facets
Facets should be in appropriate packages according to v2

GitOrigin-RevId: cacc729a038f40bfaf9ebb2d89d1e1a744fd71f1
2024-01-16 15:50:03 +00:00
Ilya.Kazakevich
5e4dbef015 [python] Move plugin-specific classes to the correct package
GitOrigin-RevId: 14efb7be0fd8f9614a1849c9345bcbf319f76cb9
2024-01-15 23:49:32 +00:00
Ilya.Kazakevich
b599287e32 [python] Refactor icons layout in community
Icons removed from SDK package (no need to have a separate class for it), ultimate icons moved out of community module.

There are only 3 icon packages in community:
* `PythonParserIcons`
* `PythonPsiApiIcons`
* `PythonIcons` (aka `intellij.python.community.impl`)

Latter two have `.json` mapper to replace old icons with new one for New UI which is included into corresponding `.xml` file.

GitOrigin-RevId: 0438ad4485b5a82a89c81ec63ae6e575d5bb52de
2024-01-12 15:53:48 +00:00
Ilya.Kazakevich
826e478335 [python] Move icons in SDK in the right package
GitOrigin-RevId: fcd5331038928a183665a4869c7ea4e34502f1fb
2024-01-12 10:53:46 +00:00
Ilya.Kazakevich
8cc30f7113 [python] icons moved to com.jetbrains.python package, as whole community.python.impl must be there
GitOrigin-RevId: 8c3d1c920d0f34dbfe75399027cc348020a809dd
2024-01-11 20:29:35 +00:00
Sergei Vorobyov
ae7550dccc IDEA-332234 [NPW] new: added icons for all language generators of new project wizard
GitOrigin-RevId: 32c2cc55bc189d8805dffe7dbe8a9ca773a82079
2024-01-05 12:03:33 +00:00
Sergei Vorobyov
ed08f7311e [NPW] cleanup: removed client code for the old new project wizard
The new version of the new project wizard has been stable for more than a year. Anymore, we don't need fallback to old one.

GitOrigin-RevId: 1351f238d7b44a775e0cfaf61fcfadb09fbbc702
2024-01-05 12:02:48 +00:00
Andrey Cherkasov
24adef8e2a Resolve warnings about 'protected' members in a 'final' classes
GitOrigin-RevId: 5d7c04b6371be1f2cc924a86614919ab6ee5b642
2023-12-14 17:36:45 +00:00
Andrey Cherkasov
06342a71b3 [python] Make extension classes final
GitOrigin-RevId: d650b5e733d806a06911f942cfd1dec70197b061
2023-12-13 20:02:09 +00:00
Konstantin Nisht
1e1f6191f7 Revert "[python] Allow modification of python SDK in headless mode for IDEA"
This reverts commit c2ed190ada73e46752f4135f864cf279c3c1f2ca.

GitOrigin-RevId: 8e27ea348debb50fc96c12cc5c93a7d2dea65d24
2023-10-19 16:23:05 +00:00
Konstantin Nisht
5011269a9e [python] Allow modification of python SDK in headless mode for IDEA
GitOrigin-RevId: c2ed190ada73e46752f4135f864cf279c3c1f2ca
2023-09-30 18:44:37 +00:00
Tagir Valeev
f456ed0604 Pattern variable can be used mass cleanup
GitOrigin-RevId: 55839bf0deca5f81d0f7eb5b1c190145a5ea0037
2023-02-07 13:58:20 +00:00
Nikolay Chashnikov
8ce3039acf cleanup: get rid of usages of deprecated constants from PsiType (IDEA-309438)
GitOrigin-RevId: 3373eb8b47af51b9f6dd71e565f773d69e8a3218
2023-01-26 16:11:57 +00:00
Konstantin Nisht
485a8e8397 [warmup] IJPL-29: Avoid direct dependencies on intellij.platform.warmup module
GitOrigin-RevId: fd3dfed4aec7e2d51bc03efe2b416cfb33a4e0d8
2023-01-02 10:54:56 +00:00
Konstantin Nisht
d24fa4a039 [warmup] IJPL-29: Remove logger as a parameter of warm-up functions
GitOrigin-RevId: 800519edf6296100bae2944719e4662579c73796
2023-01-02 10:54:53 +00:00
Konstantin Nisht
d57c774ffe [warmup] IJPL-29: Rename classes to obtain more descriptive names
GitOrigin-RevId: b1b1d68a8a4e84da7b1b678574119a5c73876f74
2023-01-02 10:54:49 +00:00
Konstantin Nisht
6e8005776f [warmup] IJPL-29: Add stub of API for warm-up
GitOrigin-RevId: f5cae5ea02e0f21d2fdf82a3fbdcc9f6bea6c291
2023-01-02 10:54:46 +00:00
Alexey Sedunov
c443410d79 Django: Extract Django/Jinja2 commons
GitOrigin-RevId: 3f6bb7b7cd80cbf6007e1930d4d018e1b1cff44a
2022-10-16 11:59:01 +00:00
Vladimir Krivosheev
a8f6a48409 add jdom to source code to modify and strip to our needs
GitOrigin-RevId: 3e16d0d954aa7bc45c4eadb91164b44e4b2e75d3
2022-03-27 18:52:47 +00:00
Semyon Proshev
4eced25632 Don't update python packages until Packages tab for python interpreter is opened
Otherwise, calling `ProjectStructureConfigurable.reset` leads to packages updates for every python interpreter registered in the IDE and all these updates can stuck in `PyPIPackageUtil.loadPackages`.

GitOrigin-RevId: 3bf23eea9fe562b7ea314ae2cdd37cb9203a54f9
2022-03-18 15:28:02 +00:00
Semyon Proshev
1e146dcf7b Acquire write lock (IDEA-289174)
GitOrigin-RevId: 4b69be16c1c542c22a37dc67707b8e7c6a5c9a05
2022-02-22 12:23:14 +00:00
Andrey Vlasovskikh
b4031d33bd IDEA-282297 [NPW] Disabled old New Project Wizard node for Python
You can now create a Python project either via the New Project node or via framework-specific nodes: Django, Flask, FastAPI.

GitOrigin-RevId: 690c9f6571c91e8a60c12efe932dc9b7efafe0cd
2022-02-21 23:16:56 +00:00
Semyon Proshev
8071ab7dc7 No need to wait for write-action, it is enough to schedule (IDEA-289174)
GitOrigin-RevId: 3b66b14aa08433fe3cc7c89db9dc12ef90dfc7a7
2022-02-21 11:33:01 +00:00
Alexey Kudravtsev
965f6c769c cleanup: method is identical to its super method
GitOrigin-RevId: 350ea63057fc436a3bcebed964228c43db8d5923
2022-01-27 13:29:12 +00:00
Dmitry Jemerov
e7511f7713 Delete JRuby and Python framework detectors
They're confusing, and their reason for existence is much better served with "No Python/Ruby interpreter configured" editor notifications

GitOrigin-RevId: 4c6705d5aa61476dfaedcf0fe79f56caa2833823
2022-01-07 10:13:20 +00:00
Dmitry.Krasilschikov
4841ada34b NPW IDEA-285493 fixed order for languages
GitOrigin-RevId: 06ddf0e815e4b9a1dfaf9d3fd81fc1db5419e46b
2022-01-03 17:02:39 +00:00
Dmitry.Krasilschikov
7263e04455 New Project Wizard: IDEA-285493 let's fixate languages order
GitOrigin-RevId: 694ed2074c21a422c9fd0f3da0b4577c321dc460
2021-12-22 17:09:21 +00:00
Lada Gagina
18d0c28655 PY-50160 Implement the redesigned dialog for package installation failures
IJ-CR-13328

GitOrigin-RevId: 2cfa6c468411391772639441f0d2aeda4fddc435
2021-10-19 15:30:24 +00:00
Irina.Fediaeva
6c243ee77f PY-50769: Make python completion contributors DumbAware
Completion contributors already wrapped in `DumbModeAccessType.RELIABLE_DATA_ONLY.ignoreDumbMode` in `CompletionProgressIndicator#calculateItems` so we don't need any extra-wrappings to prevent IndexNotReadyException

(cherry picked from commit 83c120ed2502474f3ddcfa2a52c6e9552d02e55e)

IJ-CR-14512

GitOrigin-RevId: e806ecb879708a75a8e7f544ea6d16a0648ca069
2021-10-14 08:38:49 +00:00
Andrey Vlasovskikh
ca954ebf09 PY-50536 [NPW] Added New Python project wizard for IntelliJ
GitOrigin-RevId: ef728d8ec331182f18ee19948d96dd7e3c89291f
2021-10-12 16:06:33 +00:00
Tagir Valeev
81d730447a Add type parameters for raw type casts where it's safe
GitOrigin-RevId: 49c3dd961c5c7122d6644b7e4959d0e86ad271da
2021-10-01 07:59:54 +00:00
Semyon Proshev
f78223592b Attempt to improve logging (PY-49082)
Especially for projects with only a few python modules.

GitOrigin-RevId: 676b25dce385e4fbc848880edb0c7473d110dc39
2021-06-11 10:11:07 +00:00
Semyon Proshev
2334617c1b Don't configure python interpreter for modules without py files (PY-49082, PY-49122)
GitOrigin-RevId: 2c5d38216461134f5bf06cfeb47acea0c55c38bb
2021-06-04 12:44:24 +00:00
Semyon Proshev
bf9324167f Fix configuring inner venv for idea + python plugin (PY-49082)
Python project base directory stored in context was ignored during looking for virtual envs because module was not passed.
Such inner venv did not have a precedence in sorting by the same reason.

GitOrigin-RevId: 99bf42d3c9c254878e944cbfc186bdd26b8e580b
2021-06-03 10:28:46 +00:00
Semyon Proshev
94ae100455 Don't resolve to a directory considered as a java package if it is not located under jvm module (PY-49082)
Otherwise, some typeshed directory could be considered as a package and name would be resolved to it even if the corresponding python package is not installed (PyTypeShed.maySearchForStubInRoot is ignored in this case).

GitOrigin-RevId: c453b28655b710f092c9ece3d868a0ee5141c0dd
2021-06-02 18:05:24 +00:00
Semyon Proshev
52b113935a Update configuring python interpreter for idea + plugin (QD-570)
Main change: setup detected sdk.

 Iterate through modules and configure python for all of them instead of doing so file by file.

GitOrigin-RevId: 6a19eeaa42aa78e1b959a413e2533ad33fca810b
2021-06-02 09:51:49 +00:00
Dmitry Jemerov
749ce8a332 Cleanup: remove @author tags
GitOrigin-RevId: 9174eb8d77215b16f9f6c6074e6aced654d95ef1
2021-05-03 13:07:48 +00:00
Nikolay Chashnikov
804cff19da [project structure] avoid unnecessary creation of ModifiableRootModel in ModuleConfigurationState
This commit introduces ModuleConfigurationState::getCurrentRootModel method which can be used if we need to just read the current state of the model and don't need to modify it, and explicit 'getModifiableRootModel' method. The old 'getRootModel' method is deprecated and all its usages are replaced by usages of one of the new methods. This way we avoid creating unnecessary instances of ModifiableRootModel to improve performance and avoid exceptions (EA-251419) which may happen if ModifiableRootModel is created during commit (when ClasspathPanelImpl creates modifiable model to update the table during processing 'rootsChanged').

GitOrigin-RevId: 4cbd410ed6039a5ee652d2585bdeee429baf7df7
2021-01-30 01:37:35 +00:00
Anna Kozlova
cfa826f9b6 java 11 migration: explicit -> diamond for anonymous classes
GitOrigin-RevId: ce15f37f8882fb7915cf5c8b62e3cc4601a5cc76
2021-01-17 11:16:51 +00:00
Semyon Proshev
9109ab3521 Use editable copy of sdk instead of sdk modificator (PY-39477)
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
2020-11-05 18:58:08 +00:00
Mikhail Golubev
7b6cc1fe1f PY-43773 More robust synchronization of Python SDK background updates
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
2020-09-25 20:03:59 +00:00
Vladimir Krivosheev
a67c59c561 platform.core.impl — remove dependency on intellij.platform.util.ui and intellij.platform.core.ui
java.psi.iml — remove dependency on intellij.platform.core.ui

GitOrigin-RevId: c1d4feb04c0471c7d17b5331b86738ee54a97f80
2020-09-21 13:40:47 +00:00
Alexey Kudravtsev
5d41e42767 cleanup: notnull and fix Processor type parameter types
GitOrigin-RevId: 694f1cf4f8b2602e5a0e199c92490e68ec303c1b
2020-09-14 13:46:01 +00:00
Lada Gagina
2f53b0d8f2 i18n: Interpreter settings
GitOrigin-RevId: 6eed8f2f1e4725ec617e7df0c861744cdf8e2be9
2020-08-20 17:44:55 +00:00
Nikita Eshkeev
52f0baa14d [i18n] idea-ui
This patch replaces hard coded strings with i18n properties in idea-ui

Signed-off-by: Nikita Eshkeev <nikita.eshkeev@jetbrains.com>

GitOrigin-RevId: f481ab904b8648a9f0d68d4de91e1f31c01be49f
2020-08-07 00:16:50 +00:00