Commit Graph

274 Commits

Author SHA1 Message Date
Ilya.Kazakevich
a1b92b2591 [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: 560b5aa67e4e747a1653ad6e4f780301a3fae289
2025-11-24 16:35:26 +00:00
Ilya.Kazakevich
434590383d [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: 3cd0ad9f8da4a69739c8f632a6305ddd7c29d62d
2025-11-24 16:35:26 +00:00
David Lysenko
7ae15dd8d4 IJ-MR-182960-to-253
[pycharm] PY-85729 Post-cherry-pick fixes

[pycharm] PY-85729 Fix stress test on Windows

[pycharm] PY-85729 Fix smoke tests

[pycharm] PY-85729 Add visibility attribute to plugin config

[pycharm] PY-85729 Add a coroutine cleanup test

[pycharm] PY-85729 Add a stress env test

[pycharm] PY-85729 Minor cosmetic fixes

[pycharm] PY-85729 Performance improvement: add debounce to reduce the amount of GC garbage

[pycharm] PY-85729 Fix potential OOM: adjust limits

[pycharm] PY-85729 Fix potential OOM: add cancellation logic for background process observer

The background error process observation logic didn't cancel the coroutines, making them last for way longer than needed. Cancellation logic was added to remedy this.

[pycharm] PY-85729 Fix OOM: Force LazyTree recomposition on tree change

It looks like LazyTree composable hogs memory by keeping track of all the previous trees; this is bad for our use case as any snapshot change to the tree will be saved, causing potential OOM by not freeing the processes. This is fixed by forcing a recomposition on each tree change (via key(tree)).


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

GitOrigin-RevId: 6a3f71219da1b8577b26d35ce73846685314eb3d
2025-11-22 11:20:30 +00:00
Egor Eliseev
0e99914369 [python] PY-83446 Function is executed on hover while debugging
Merge-request: IJ-MR-180916
Merged-by: Egor Eliseev <Egor.Eliseev@jetbrains.com>

(cherry picked from commit a57d32cd81bb3817639fe0d5190d6de8522a8b1f)

IJ-MR-180916

GitOrigin-RevId: 1ae4e5e801c91d3677d61f65485fe3cb08e1eec4
2025-11-01 08:16:41 +00:00
David Lysenko
fc7d863a50 IJ-MR-176106-to-253
[pycharm] PY-81494 Fix deadlocking code


Merge-request: IJ-MR-179432
Merged-by: David Lysenko <david.lysenko@jetbrains.com>
[pycharm] PY-81494 Config fixes

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>


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

GitOrigin-RevId: 44552a582dd628d206b207e02e6f24c7749b4d9f
2025-10-22 09:04:47 +00:00
Alexey Katsman
cc191a617f [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: dd0cf0c02b18e90022e9ec828b7f9ad2282cd5b3
2025-10-21 21:47:11 +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
Vitaly Legchilkin
42e77f6682 [python][evolution] Python Sdk Evolution widget (PoC)
Merge-request: IJ-MR-172341
Merged-by: Vitaly Legchilkin <Vitaly.Legchilkin@jetbrains.com>

GitOrigin-RevId: 46dd03abe5bbcb02a9b0202d232979dff5f4e492
2025-08-13 21:51:41 +00:00
Ilia Kirianovskii
e5b36e9b7c [bazel] Update build files (IJI-2696, IJI-2878)
GitOrigin-RevId: 80912356c3f137a518cc16f361d74cc356702241
2025-07-07 16:40:12 +00:00
Ilya.Kazakevich
a0231c334a PY-77226: Introduce InterpreterService.
This service is aimed to substitute various SDK-management tools in PyCharm.

Begin with `InterpreterService()` function.

GitOrigin-RevId: 368d56c4a78812fe81de941e5e5ce61a56d385e6
2025-06-26 23:26:54 +00:00
Vladimir Fedorov
2c15058004 [ml-api] JBAI-14600 unify ML API version
* Switched to the project-level dependency everywhere
* Introduced a new module intellij.platform.ml.logs to separate ml-api library usages from intellij.platform.ml and intellij.platform.ml.impl modules
* The following models has been adapted to the latest ML API version: python imports ranking, fuzzy resolve, completion trigger model, jetenry inline prompt detection, jetenry fleet code classification

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

GitOrigin-RevId: 9056efba5a5397a700daabb453ee1477cfaabdf3
2025-06-23 16:32:35 +00:00
Egor Eliseev
21ae30258c [python] Remove unuseful ktor dependencies in intellij.python.community.impl module
Merge-request: IJ-MR-166082
Merged-by: Egor Eliseev <Egor.Eliseev@jetbrains.com>

GitOrigin-RevId: 447218b7df368ac1c8da7ca3b2d096ccceb93f69
2025-06-19 14:30:30 +00:00
Vladimir Krivosheev
a49e310575 IJ-MR-162467 don't export intellij.platform.lang.core
GitOrigin-RevId: dea0fc36382a29eda134dba69917d41c7b585cf2
2025-06-18 11:28:23 +00:00
Nikita Ashihmin
05e32e764d PY-19974 Packages: Add conda envinroment.yml support, refactor sync methods
Signed-off-by: Nikita.Ashihmin <nikita.ashihmin@jetbrains.com>


Merge-request: IJ-MR-164824
Merged-by: Nikita Ashihmin <Nikita.Ashihmin@jetbrains.com>

GitOrigin-RevId: 85cbf7b873742ded72029af1f4ff3e34af9bae22
2025-06-17 00:18:33 +00:00
Vladimir Krivosheev
b935234c91 IJ-MR-162467 don't export intellij.platform.projectModel
GitOrigin-RevId: 11c0bf5ca0f3a6d892658a2b149d85cace9aa2b8
2025-06-14 13:00:48 +00:00
Vladimir Krivosheev
ef0323d07c IJ-MR-162467 don't export intellij.platform.core
GitOrigin-RevId: 05f350c1c087be1bf9b46d8bdac5345a65f55958
2025-06-13 21:52:48 +00:00
Ilya.Kazakevich
2e14347844 Python: extract python-specific extensions from exec service to simplify API and make it extendable for intepreters.
Use `ExecService` `api.kt` to exec any binary and extensions from `execService.python/api.kt` for python-specific things (i.e helpers)

GitOrigin-RevId: bb217798a9d1ee886c4b12220ec1f66a5ef08336
2025-06-07 22:05:56 +00:00
Ilya.Kazakevich
80f248d842 Python: Move helpers locator out of PSI module
GitOrigin-RevId: 55fb4b41c56fdd41b6d9523cd7a148c002ffb8be
2025-06-07 21:59:42 +00:00
Vladimir Krivosheev
65fe061584 IJ-MR-162467 don't export intellij.platform.analysis
GitOrigin-RevId: fcbcb68010b58cb507fee2c47473758b999e471b
2025-06-04 11:16:33 +00:00
Yuriy Artamonov
0967818c60 [python] IJPL-155949 Allow update for PyCharm bundled plugins
GitOrigin-RevId: 391fa1b9fea42adfe63380af2a148a8c3b08cd66
2025-05-26 19:39:03 +00:00
Vladimir Krivosheev
fbc9805e89 IJ-MR-162467 don't export intellij.platform.jps.model
GitOrigin-RevId: ebaebc90d514e5f3046fe2b973647da4bf156625
2025-05-14 18:10:23 +00:00
Vladimir Krivosheev
e6503904f1 update bazel files
GitOrigin-RevId: 56d6864910cad2dfe611d38d680ee290d4209f79
2025-05-13 18:02:20 +00:00