Commit Graph

289 Commits

Author SHA1 Message Date
Vladimir Krivosheev
227c6496d3 IJPL-233558 IJ-MR-184958 IJ-MR-184993 IJ-MR-179029 IJ-MR-184126 IJ-MR-181153 IJ-MR-146078 IJ-MR-175479 IJ-MR-186058 refactor(python): apply internal visibility and style cleanup
GitOrigin-RevId: 55813678163231437659883dcfde46444414f23e
2026-02-12 15:38:42 +00:00
Vladimir Krivosheev
c546068c91 IJPL-233558 IJ-MR-184958 IJ-MR-184993 IJ-MR-179029 IJ-MR-184126 IJ-MR-181153 IJ-MR-146078 IJ-MR-175479 IJ-MR-186058 refactor: apply dependency and style cleanups
add explicit kotlin-stdlib, restructure projectFrame

GitOrigin-RevId: c151a69ae1e9b925b1892a3b01ba5d01566bba3b
2026-02-12 15:38:41 +00:00
Ilya.Kazakevich
8fd70026cb cleanup [python]: remove unused symbols
GitOrigin-RevId: cbefb7c4667b2d2d1a8f38bcddc28fb51a0ce226
2026-02-10 23:07:23 +00:00
David Lysenko
7906446900 PY-87123
[pycharm] PY-87123 Synchronize build files

[pycharm] PY-87123 Add icons for process weight

[pycharm] PY-87123 Extract Pipenv icons/mapper into a pipenv module

[pycharm] PY-87123 Extract Conda icons/mapper into a separate module

[pycharm] PY-87459 Fix process tree autoscroll

Fixes an issue in which the process tree would not automatically scroll up
after new processes are added.

[pycharm] PY-87112 Change the icon of the tool window to a new one

[pycharm] PY-87123 Rename `Styling` object to `OutputSectionStyling`

This is done to match the naming of `TreeSectionStyling`.

[pycharm] PY-87123 Render spinner instead of an icon for running processes

[pycharm] PY-87123 Refactor TreeSection

* Extract tree content into its own composable
* Extract styling values into a styling object
* Remove redundant icons that can be constructed programmatically

[pycharm] PY-87123 Address feedback

[pycharm] PY-87123 Implement custom styling for critical errors

Critical errors are ones that are displayed to the user via the error sink.

[pycharm] PY-87123 Add tool-dependant icons to POTW process tree

[pycharm] PY-87123 Implement ProcessOutputIconMapping extension point

The extension point provides a way for tooling-related modules to define
custom mapping between file extensions and icons that should be used by
the Process Output Tool Window.


Merge-request: IJ-MR-189367
Merged-by: David Lysenko <david.lysenko@jetbrains.com>

GitOrigin-RevId: 0d728779f04f2066e929954681ec7a23741f5f74
2026-02-10 21:28:26 +00:00
Maxim Popov
a45f149b8a [debugger] PY-87450 add debugpy justMyCode checkbox for python configurations, where it is supported
Merge-request: IJ-MR-190905
Merged-by: Maxim Popov <maxim.popov@jetbrains.com>

GitOrigin-RevId: b34a0edf0c89ffd1967516810e0160c5f0cb0fce
2026-02-10 21:12:30 +00:00
Ilya.Kazakevich
c797dcc7bc cleanup [python]: remove unused symbol, hide symbols not used by external plugins
GitOrigin-RevId: e5728587e408460009fa5c59fb2a1b0bcd7463a6
2026-02-04 22:34:24 +00:00
Ilia Zakoulov
6e2d9cc90b PY-84031: Implement PyExternalFilesIndexService to index external files.
Non-project files by default are not indexed, do not have a module and do not have an SDK.
`PyExternalFilesIndexService` is resposible for adding a custom entities to the workspace model.

Space-RevId: dd7c50009e56dea0d69914c9f7f1524c7e77fe20

GitOrigin-RevId: cdfa2a578a01431fb9e0a06ce820c1d9b0f3fc0d
2026-02-03 23:35:47 +00:00
Leonid Shalupov
188b7ef96f IJI-3282 Optimize imports
GitOrigin-RevId: 3b5c00d8ff20b8d0bb6005bc450921085d2da9b2
2026-01-31 17:03:42 +00:00
Alexey Katsman
9ebdd29d37 PY-87232 Change venv module name
GitOrigin-RevId: faf2719abc6236f93840f7a2e34e58eec9f6e868
2026-01-29 13:25:49 +00:00
Yuriy Artamonov
9514b1d461 [platform] IJPL-224518 Cleanup private modifier usages with extensions/services in intellij.python.*
GitOrigin-RevId: 8a3b9d6763dbb00e30c9266ca1decc9803ef6304
2025-12-22 22:17:32 +00:00
Vladimir Krivosheev
9102a339c5 IJPL-218803 IJ-MR-179029 IJ-MR-175479 IJ-MR-184126 don't export execution from lang to avoid excessive and incorrect deps on debugger
GitOrigin-RevId: f27713c975606c010f230539bc7ffe7f9c6c815c
2025-11-29 15:49:21 +00:00
Timur Aliberdov
e6114fb207 IJPL-205982: move nonModalWelcomeScreen from PythonCore to intellij.pycharm.community.customization.shared
IdeaUltimatePluginModuleDependenciesTest failed with the following message: `Plugin 'Python Community Edition' conflicts with 'IDEA CORE' and may work incorrectly. Their respective modules 'intellij.platform.ide.nonModalWelcomeScreen' and 'intellij.platform.ide.nonModalWelcomeScreen' declare the same package prefix`

GitOrigin-RevId: af33d6b2f341b90103a7db1e0ff5b5a3131427d9
2025-11-26 18:22:28 +00:00
Ilya Kazakevich
7a580fd48b link/PY-85711/skip-non-python-modules-for-non-pycharm-ides
[python]: PY-85709: Support Python facet for non-PyCharm IDEs.

The following code doesn't work for anything but PyCharm.
```kotlin
ModuleRootManager.getInstance(module).sdk
```

We now call `com.jetbrains.python.module.PyModuleService.findPythonSdk` which supports both Python SDK and Facet.

[python]: PY-85711 : Do not touch non-python modules in `removeFakeModuleEntity` and do not set `inherited` for newly created modules.

1. We should never delete any module which isn't python.

2. No need to look for sdk in workspace as we already do that for all modules by reverting their SDK settings. Moreover, `InheritedSdkDependency` was wrong: it set project-level Java JDK as Python SDK

[python]: PY-85711 : Make `PyActiveSdkModuleConfigurable` filter non-python modules.

See `com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable.isSuitableForModule` comment

[python]: PY-85711 : Move `isPythonModule` to `PyModuleService`.

We are going to reuse it all over the code

[python]: PY-85711 : Refactor `PyModuleService`.

Drop unneeded class


Merge-request: IJ-MR-183088
Merged-by: Ilya Kazakevich <ilya.kazakevich@jetbrains.com>

GitOrigin-RevId: 19f65ba65ea7ea8d8ff8698a64e6a3cbe6803cb0
2025-11-24 22:50:38 +00:00
David Lysenko
1ec8bb7406 [pycharm] PY-85729 Fix smoke tests
GitOrigin-RevId: 43ef5cff8a1bb2a555ceb5a6a50a776726a0bbde
2025-11-21 20:13:25 +00:00
Egor Eliseev
f5f0d7ce1e [python] PY-83446 Function is executed on hover while debugging
Merge-request: IJ-MR-180916
Merged-by: Egor Eliseev <Egor.Eliseev@jetbrains.com>

GitOrigin-RevId: a57d32cd81bb3817639fe0d5190d6de8522a8b1f
2025-11-01 00:04:56 +00:00
Morgan Bartholomew
7e25ddaa9b [internal] IJPL-215577 add kotlin-annotations-jvm as a dependency
GitOrigin-RevId: ecedf94905a79996265f78f888c850c9f92d4368
2025-10-30 06:32:23 +00:00
Vladimir Krivosheev
8f99839141 IJPL-214432 IJ-MR-179029 do not use okhttp for build-script-downloader (we can do it as now we use only java 21)
GitOrigin-RevId: b6c157dacc1647c0f644dae9d1ebaa85830bc82e
2025-10-24 15:56:23 +00:00
David Lysenko
f9835df460 PY-81494
[pycharm] PY-81494 Fix further flakiness

[pycharm] PY-81494 Address feedback

[pycharm] PY-81494 Fix flakiness

[pycharm] PY-81494 Separate modules

[pycharm] PY-81494 Fix tests

[pycharm] PY-81494 Change waitFor to awaitExit for coroutines

[pycharm] PY-81494 Configuration fixes

[pycharm] PY-81494 Add usage statistics

[pycharm] PY-81494 Address feedback

[pycharm] PY-81494 Add more limit tests

[pycharm] PY-81494 Post-rebase fixes

[pycharm] PY-81494 Implement logging tests

[pycharm] PY-81494 Final design adjustments

[pycharm] PY-81494 Refactor flows

[pycharm] PY-81494 Add more OutputSection tests

[pycharm] PY-81494 Add Toolbar tests

[pycharm] PY-81494 Add InterText tests

[pycharm] PY-81494 Add FilterActionGroup tests

[pycharm] PY-81494 Add EmptyContainerNotice tests

[pycharm] PY-81494 Add CollapsibleListSection tests

[pycharm] PY-81494 Add ActionIconButton tests

[pycharm] PY-81494 Address feedback

[pycharm] PY-81494 Address feedback

[pycharm] PY-81494 Post-rebase fixes

[pycharm] PY-81494 Address initial feedback

[pycharm] PY-81494 Fix existing tests & add new to tree

[pycharm] PY-81494 Implement copy to clipboard button

[pycharm] PY-81494 Amend design

[pycharm] PY-81494 Begin implementing output tests

[pycharm] PY-81494 Refactor file structure

[pycharm] PY-81494 Implement tests for process list

[pycharm] PY-81494 wip tests for process list

[pycharm] PY-81494 Finishing touches

[pycharm] PY-81494 Consolidate list logic in the model

[pycharm] PY-81494 Add logging limits

[pycharm] PY-81494 Implement open tool window on exec service error

[pycharm] PY-81494 Implement open command in terminal

[pycharm] PY-81494 Add expansion actions

[pycharm] PY-81494 Implement categorization by coroutine names

[pycharm] PY-81494 Memorize expansion states between tool window openings

[pycharm] PY-81494 Memorize scroll state between tool window openings

[pycharm] PY-81494 Introduce collapsible section for process info

[pycharm] PY-81494 Implement view setting filtering

[pycharm] PY-81494 Refactor process logging to use shared flows

[pycharm] PY-81494 Implement tests for ProcessList composable

[pycharm] PY-81494 Implement process toolwindow prototype


Merge-request: IJ-MR-176106
Merged-by: David Lysenko <david.lysenko@jetbrains.com>

GitOrigin-RevId: 16ffe4980f92254afd269f5c65bb5cf4d5d78fc9
2025-10-21 07:58:13 +00:00
Ilya.Kazakevich
c183e6e634 [python] PY-79486: (WIP) split pyproject.toml tools into backend/common.
Each tool (uv, poetry) now has `common` and `backend` part. `common` has icons because we need them both on the front and on the back.

We might need to create `front` module also if we wouldn't be able to use icons in compose.

GitOrigin-RevId: b5662fbdf3d23f1ddaa5926469d1cfd2051a0fba
2025-10-16 17:21:59 +00:00
Ilya.Kazakevich
f1a3b39973 [python] PY-79486: (WIP) Move tools to separate modules to access them from the frontend.
We are slowly moving all tools to the separate modules to register them as EP. On the front we might have `ToolId` only. To map it to an icon we will use EP.

GitOrigin-RevId: 642f4b8d77a0a14b6b61a5192607fbc7984529c7
2025-10-15 22:13:46 +00:00
Alexey Katsman
59fa0db43c [python] PY-83881 Detect existing environments when creating SDK
Before the changes, there wasn't any mechanism to detect that
environment was already created (for example, .venv exists in the
project). In these situations, during SDK creation we could've created
another environment which was not expected by users.

With these changes, it's now possible to detect in the configurator that
environment already exists, and use it when creating SDK.


Merge-request: IJ-MR-177317
Merged-by: Alexey Katsman <alexey.katsman@jetbrains.com>

GitOrigin-RevId: a612a1069ca5275bedbcfa6af9377059dab7c072
2025-10-14 19:24:05 +00:00
Timur Malanin
defbf5a1d0 PY-80882 Introduce support for "Run with" tools in Python run configurations. Introduce PyRunToolProvider and UvRunToolProvider to enable uv run for UV SDKs and update Python run configuration logic accordingly
GitOrigin-RevId: 0323bba73b2f9d3530280c5d03e749c664adb425
2025-10-13 19:57:17 +00:00
Vitaly Legchilkin
84934e9e9e [python] (IJPL-205889) (BAZEL-2462) don't call getOrCreateAdditionalData for non-python sdks
+ add requirePythonSdk() verification for the Sdk extension functions, these methods are not designed to be called for non-python sdks and now will throw IllegalArgumentException.

also corrects dependency tree:
+ move PythonSdkUtil to the python.sdk module, remove dependency on psi.impl
+ create PySkeletonUtil for skeleton utils and leave it in the psi.impl

[python] (IJPL-205889) (BAZEL-2462) don't call getOrCreateAdditionalData for non-python sdks

+ add requirePythonSdk() verification for the Sdk extension functions, these methods are not designed to be called for non-python sdks and now will throw IllegalArgumentException

also corrects dependency tree:
+ move PythonSdkUtil to the python.sdk module, remove dependency on psi.impl
+ create PySkeletonUtil for skeleton utils and leave it in the psi.impl

GitOrigin-RevId: 20d958c5e15cc4e05545b2e61b126b5e015696ed
2025-10-10 18:17:28 +00:00
Vladimir Krivosheev
30413b84c9 IJPL-209476 IJ-MR-175479 extract jettison, jaxen, bouncy-castle
GitOrigin-RevId: d9f6e8e745fbfb69604eb02d0f95cad976d4d7f9
2025-10-09 21:36:26 +00:00
Nikolay Chashnikov
c3d006d45e [plugin model] use 'internal' visibility for content modules which are used from modules of other plugins (IJPL-207059)
These modules and their classes don't have external usages, so they shouldn't be made 'public' at least for now. The 'namespace' is also set to 'jetbrains' for plugins which contain such modules or modules which use them to allow 'internal' visibility to work.

GitOrigin-RevId: 198007e49320075dc27faadde6963e98332296a4
2025-10-08 18:39:06 +00:00
Vladimir Krivosheev
641682ce04 IJPL-209476 extract intellij.tasks.jira, fix xml-rpc bundling for python
GitOrigin-RevId: bcbd2885afc54f653403515f5f815da2ed32a6e3
2025-10-07 08:15:08 +00:00
Alexander Koshevoy
666c4f449f [projectModel] Partition "Global Libraries" per eel environment and select via Project (IJPL-175311)
Application‑level libraries ("Global Libraries" in UI) must be isolated by the environment, so each EEL environment sees only its own library set. This prevents cross‑environment leakage and aligns library scoping with SDK scoping.

Notes
- Environment choice is derived from the passed `Project` (carrier of the already‑resolved `EelMachine`), so selection is synchronous and safe for this API surface.
- API names stay as they are; documentation clarifies that the `Project` parameter selects the environment for the application‑level table and does not turn it into a project‑level table.
- In the Project Structure UI, the existing environment‑scoped modifiable model remains owned by the UI; outside the UI, callers get a standalone modifiable model for the chosen environment.

GitOrigin-RevId: e88445929d19012d029e79d44f09f694aba8df6f
2025-10-06 22:52:56 +00:00
Vladimir Krivosheev
4b619431c2 IJ-MR-175479 IJ-CR-146078 IJPL-209476 fast-util
GitOrigin-RevId: 87af2a3aad6e264a9b332c20ff572ec735f741f2
2025-10-06 16:34:02 +00:00
Vladimir Fedorov
98fb93a589 [mlapi] JBAI-16716: update MLAPI library to 0.2.0
This change updates ML API library to the latest stable version.
In this version, we introduced improved module splitting:
* mlapi-core – contains almsot no dependencies (except for kotlinx-serialization) and includes core ML factors
* mlapi-catboost – contains CatBoost-related abstractions and libraries

Merge-request: IJ-MR-177078
Merged-by: Vladimir Fedorov <890readrid@gmail.com>

GitOrigin-RevId: 14c89d3e4ba51474db9bf22d0c9364a502eddc35
2025-10-06 13:23:28 +00:00
Vladimir Krivosheev
9f425c84ea IJ-MR-175479 IJ-CR-146078 IJPL-209476 guava as product module (part 2)
GitOrigin-RevId: 22ee846c39d44cd481ad55d11889ff43ad3b389a
2025-10-04 19:03:47 +00:00
Ilya.Kazakevich
cc2a447cc5 PY-79486: Split sdk detector to backend-frontend
GitOrigin-RevId: c06ca10a1640e7dea536f1b94df82b7bcfadf14b
2025-10-03 06:26:19 +00:00
Vyacheslav Moklev
2800cb41c3 [RDCT] PY-84272: Move intellij.python.common.frontend module to PyCharm frontend and backend plugins from the Python plugin
GitOrigin-RevId: 1dc89955534d1cd9bb38ec6e195d820f12630f20
2025-10-02 11:44:10 +00:00
Vyacheslav Moklev
510d46690f [RDCT] PY-84272: Fix after rebase
GitOrigin-RevId: cea743655cc7a1c856884cfd86d578d15466362b
2025-10-02 11:44:10 +00:00
Vyacheslav Moklev
fd9c18ead5 [RDCT] PY-84272: Prepare dependencies and rpc/compose plugins in new modules
GitOrigin-RevId: 67a9f2056156dde9e16c094eb43d389562f4d8ac
2025-10-02 11:44:10 +00:00
Vyacheslav Moklev
4bb9385403 [RDCT] PY-84272: Create a frontend python module that is loaded in monolith and Remote Development client
It should be named `intellij.python.frontend`, but this name is occupied by another module, that should be named `intellij.python.frontend.split`

GitOrigin-RevId: 9c691512950b1f02cebd4a2d201560650460b16c
2025-10-02 11:44:10 +00:00
Ilya.Kazakevich
5a4843d743 PY-79486: Introduce sdkConfigurator module.
This module listens for topic that model was just rebuilt from `pyproject.toml` and does its best to configure SDK.

It will support UI to make this process configurable

GitOrigin-RevId: c752c94385814b5fc4413316c0d9d4cc2adb41e4
2025-10-02 06:59:28 +00:00
Vladimir.Koshelev
68caf2edce [python] fix symver packaging into python core plugin.
GitOrigin-RevId: 10d17df2e222722ebf1e3206dea7ac88c5201bd1
2025-09-30 18:46:16 +00:00
Vladimir.Koshelev
497622b4c8 [python] PY-84498 fix CNEs, add tests, and fix the issue to make these tests runnable.
GitOrigin-RevId: a9d9d14750174c85a75049a2020b179977d6d4dc
2025-09-30 18:46:16 +00:00
Nikolay Chashnikov
4158e45854 [plugin model] use 'public' visibility for content modules which have plugin aliases (IJPL-207059)
Such modules can be referenced not by a 'dependencies.module' tag, but via a 'depends' or 'dependencies.plugin' tag with the plugin alias, so they should be public. 'jetbrains' namespace is used for them.

GitOrigin-RevId: f3d0601685fe1d312a2508be08e97f8d985e7133
2025-09-30 16:18:22 +00:00
Ilia Kirianovskii
f43aa95086 [bazel] Update build files (IJI-3062)
GitOrigin-RevId: 98a67396a48bddc3d084cc93c50ae2f2017bfe8c
2025-09-29 00:11:15 +00:00
Vladimir.Koshelev
e862fc89e2 [python] PY-84398 update content.yaml files
GitOrigin-RevId: 6bd5e194d662af873922a478432429c03f29430f
2025-09-26 15:15:29 +00:00
Vladimir.Koshelev
c5b44ca085 [python] PY-84398 get rid of package prefix in python modules.
It doesn't work. Sad, but true.

GitOrigin-RevId: c6cf4f2971ce813a2ce18afb2dcee22c2c5dad75
2025-09-26 15:15:29 +00:00
Vladimir.Koshelev
ba393efaa7 [python] PY-84398 get rid of embedded loading rules in PythonCore plugin, fix related issues
GitOrigin-RevId: 54f4bb333e0ca06a002a86c75f0bbc474863253e
2025-09-26 15:15:29 +00:00
Ilia Kirianovskii
1e3bda186d [python] Add intellij.python.pyproject._test module descriptor to run tests in dev-mode (IJPL-116621)
GitOrigin-RevId: 6b0cddaa77c2357ae5a1168e315e08946beac7d5
2025-09-25 20:05:21 +00:00
Ilya.Kazakevich
c4ab08d8d9 Python: update tuweni version
GitOrigin-RevId: 706ce1fb4e2309da7c00edf03e1f33b1493111c0
2025-09-24 22:09:24 +00:00
Ilya.Kazakevich
fd6322f117 Python: move classes to com.jetbrains.python.sdk.impl and close it.
`com.jetbrains.python` was closed by accident.

GitOrigin-RevId: 78109e34c720abfa2cefb1fa7d8d20db2ed1ad11
2025-09-22 18:50:06 +00:00
Ilia Zakoulov
f21ddee4e1 PY-82074: Add non modal welcome screen to plugin-content.yaml for PyCharm
GitOrigin-RevId: 1ebf6301074ec082bd10da7b377bbd23b6e80ea0
2025-09-15 16:35:39 +00:00
Ilia Zakoulov
20e64ad596 PY-82074: Introduce PyCharm non-modal welcome screen
GitOrigin-RevId: ce867e42111789fda03bae15665a6860a140e9b1
2025-09-15 16:35:39 +00:00
Nikita Katkov
ec1b47d730 [docker & split mode] IJPL-203173 Update plugin and platform layout snapshots after an attempt to simplify and make more straightforward the Docker plugin layout
Some platform changes regarding jackson-yaml library are questionable though, require thorough review

GitOrigin-RevId: 561b83ae1550cf896747fff75cbaaa371ae4abdf
2025-08-27 18:05:52 +00:00
Ilia Kirianovskii
dc268560b6 [bazel] Update build files (IJI-2835)
GitOrigin-RevId: 275260ab73f59d3c08f0b4cb9f4c89b74054094a
2025-08-20 08:49:22 +00:00