138 Commits
Author SHA1 Message Date
David Lysenkoandintellij-monorepo-bot c23c78ac0d potw-changes-to-261
This MR cherry picks changes done for PY-87723 and PY-87578

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

GitOrigin-RevId: c74229ed48ae8702667dda201613a2d0c3f25369
2026-02-26 19:55:47 +00:00
David Lysenkoandintellij-monorepo-bot 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
Ilia Zakoulovandintellij-monorepo-bot 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
Alexey Katsmanandintellij-monorepo-bot 9ebdd29d37 PY-87232 Change venv module name
GitOrigin-RevId: faf2719abc6236f93840f7a2e34e58eec9f6e868
2026-01-29 13:25:49 +00:00
Timur Aliberdovandintellij-monorepo-bot 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
Egor Eliseevandintellij-monorepo-bot 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
David Lysenkoandintellij-monorepo-bot 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.Kazakevichandintellij-monorepo-bot 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.Kazakevichandintellij-monorepo-bot 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 Katsmanandintellij-monorepo-bot 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
Ilya.Kazakevichandintellij-monorepo-bot cc2a447cc5 PY-79486: Split sdk detector to backend-frontend
GitOrigin-RevId: c06ca10a1640e7dea536f1b94df82b7bcfadf14b
2025-10-03 06:26:19 +00:00
Vyacheslav Moklevandintellij-monorepo-bot 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 Moklevandintellij-monorepo-bot 510d46690f [RDCT] PY-84272: Fix after rebase
GitOrigin-RevId: cea743655cc7a1c856884cfd86d578d15466362b
2025-10-02 11:44:10 +00:00
Vyacheslav Moklevandintellij-monorepo-bot 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 Moklevandintellij-monorepo-bot 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.Kazakevichandintellij-monorepo-bot 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
Nikolay Chashnikovandintellij-monorepo-bot 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
Vladimir.Koshelevandintellij-monorepo-bot 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 Zakoulovandintellij-monorepo-bot 20e64ad596 PY-82074: Introduce PyCharm non-modal welcome screen
GitOrigin-RevId: ce867e42111789fda03bae15665a6860a140e9b1
2025-09-15 16:35:39 +00:00
Vitaly Legchilkinandintellij-monorepo-bot 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
Ilya.Kazakevichandintellij-monorepo-bot 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
Egor Eliseevandintellij-monorepo-bot 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
Ilya.Kazakevichandintellij-monorepo-bot 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.Kazakevichandintellij-monorepo-bot 80f248d842 Python: Move helpers locator out of PSI module
GitOrigin-RevId: 55fb4b41c56fdd41b6d9523cd7a148c002ffb8be
2025-06-07 21:59:42 +00:00
Yuriy Artamonovandintellij-monorepo-bot 0967818c60 [python] IJPL-155949 Allow update for PyCharm bundled plugins
GitOrigin-RevId: 391fa1b9fea42adfe63380af2a148a8c3b08cd66
2025-05-26 19:39:03 +00:00
Vitaly Legchilkinandintellij-monorepo-bot a697724acc [python] merge with latest changes (PY-79451)
GitOrigin-RevId: a50334e1c235d37ed64a61ae298dc25949014c89
2025-05-08 01:15:49 +00:00
Vitaly Legchilkinandintellij-monorepo-bot 91a13e2436 [python] implement python package manager actions (PY-79451)
* PythonPackageManagerJobService.kt added to manage tool jobs
* Base PythonPackageManagerAction.kt was added to cover all python package manager actions
* Implementations for Poetry / Hatch / uv
* Poetry pyproject.toml watcher was removed (replaced with poetry actions)

GitOrigin-RevId: 0bbc5a7802826674140ca1c80be27b6cd7d0f59e
2025-05-08 01:15:49 +00:00
Vladimir.Koshelevandintellij-monorepo-bot 67594cdaad [pycharm] finish community migration to v2
# Conflicts:
#	community/python/pluginCore/resources/META-INF/plugin.xml

GitOrigin-RevId: e4d6969fd15a3fddc4d6a03491fb9f9634285edf
2025-04-30 10:08:56 +00:00
Mikhail Golubevandintellij-monorepo-bot a3d51f7191 PY-79488 Prototype UV project model support
GitOrigin-RevId: 9ef8405f2e617541771275f5dd79106a0063380c
2025-04-29 15:29:41 +00:00
Ilya.Kazakevichandintellij-monorepo-bot 74b4990d4f PY-80062: ignore Django facet (WIP)
GitOrigin-RevId: f0c4835dcf99f7c1f5a1ecec0402160020371c59
2025-04-08 22:10:13 +00:00
Aleksandr Sorotskiiandintellij-monorepo-bot 53bc8ed84f fix displaying unavailable python run configurations from pro tier; start with django; PY-80062
Merge-request: IJ-MR-159510
Merged-by: Ilya Kazakevich <ilya.kazakevich@jetbrains.com>

GitOrigin-RevId: d9dfe8bdcb27a57c935bca570e96902687f58ba8
2025-04-07 22:13:54 +00:00
David Lysenkoandintellij-monorepo-bot a1b07bb061 [pycharm] PY-79448 Add a feature flag to prevent poetry lock from being run
GitOrigin-RevId: 94977a3fb4390c683211fe253885bb2cc8c1eb35
2025-04-07 14:57:15 +00:00
Yuriy Artamonovandintellij-monorepo-bot 1c524da10b [project] Mute more spelling problems for Java and Python plugins
GitOrigin-RevId: c75d3634ebb3d649fea82e78fddc9d3c186d7493
2025-04-06 17:55:11 +00:00
Nikita Katkovandintellij-monorepo-bot 1393d86af9 [json + remdev] IJPL-176240 Update all runtime plugin dependencies: now most of the plugins depend on the json.backend module as they expect corresponding functionality and API to be available (primarilly Json Schema-related features)
GitOrigin-RevId: 141b7732330eefa01fdada3413e434fe7d2d512b
2025-04-03 13:08:20 +00:00
Mikhail Golubevandintellij-monorepo-bot 9131e29041 PY-79488 Prototype multimodule Poetry project support
Whenever a pyproject.toml file is found in a new IJ project root
(without .idea) we register the corresponding root as managed by Poetry
in `.idea/poetry.xml` (so called "linking") and then read all
pyproject.toml in the project tree setting up the corresponding IJ
modules and dependencies between them (so called "syncing").
The changes are persisted in the workspace model cache, there are
no additional config files, besides `.idea/poetry.xml`.

If a new pyproject.xml module is added to the root of an existing
project, we ask user whether its project model should be applied.

When a pyproject.toml is then changed in the editor or externally,
we either automatically apply the changes (reloading) or ask
a user about it, depending on the settings in
"Settings | Build, Execution, Deployment | Build Tools".

If automatic linking and syncing doesn't work for some reason
(e.g. there is no top-level pyproject.toml as in grazie-ml),
there are manual actions "Link All Poetry Projects" and
"Sync All Poetry Projects".

GitOrigin-RevId: 77a480cdf56d45f22c943acbad3a7c20d5eb56a5
2025-03-28 14:50:08 +00:00
Ilya Kazakevichandintellij-monorepo-bot 92e25c9022 Python: Cache system pythons to speed up a function result.
1. Preload pythons from a project start activity
2. Cache them for some time (see `cache` variable)
3. Provide API to refresh


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

GitOrigin-RevId: 8b58ad3f35f144364d4103578d20a3cfc9b637f2
2025-03-27 14:31:48 +00:00
Vitaly Legchilkinandintellij-monorepo-bot 61ec26ac28 [python][hatch] create module structure only for pure python projects (PY-79939)
+ add work directory and hatch env name to hatch sdk data
+ support hatch run on cli level

GitOrigin-RevId: 4782bc52fcd23775b51903ae05f2575f574401cc
2025-03-25 19:45:38 +00:00
Aleksandr.Govenkoandintellij-monorepo-bot ab13d9dfd2 PY-45729 Intention to convert between single-line comma-separated things and multi-line representation
Merge-request: IJ-MR-155221
Merged-by: Aleksandr Govenko <aleksandr.govenko@jetbrains.com>

GitOrigin-RevId: 1da524fe3f995e28bf23843f02761065ae45f965
2025-03-25 13:43:44 +00:00
Vitaly Legchilkinandintellij-monorepo-bot 133bb61a1d [python] dependencies highlight and completion in pyproject.toml fix (PY-72985)
* use module sdk instead of project sdk in dependency completion
* remove dependency on the "requirements.txt" in the UnsatisfiedRequirementInspection (might be also pyproject.toml)
* move poetry-related things to own package

GitOrigin-RevId: 878ad4c419ed8025aa27bca2357ec7bed2e26f3c
2025-03-18 21:50:59 +00:00
Aleksandr Sorotskiiandintellij-monorepo-bot 5cd9d71bee support for uv configuration in idea sdk management
GitOrigin-RevId: 17207321c24bf3746742648efac8163b39aa88ef
2025-03-13 11:41:43 +00:00
Vitaly Legchilkinandintellij-monorepo-bot 498de69f2a [python] Support Hatch SDK (PY-60410)
* add new / select existing for local sdks
* create a new project with hatch sdk
* open hatch-managed project

GitOrigin-RevId: 86e970a39bc44cec34be7c82717806fc4d0009c4
2025-03-12 20:49:14 +00:00
Natalia.Murychevaandintellij-monorepo-bot e759b8e4d8 [PyCharm] PY-77597 Re-order the "New File or Directory" options #PY-77597 Fixed
* Move Python-specific file types up in the "NewGroup" actions group
* Rename several actions so that their naming is aligned with the corresponding actions' names in IntelliJ platform

GitOrigin-RevId: af828c30daa801c0ca52c1271be45279946e34f0
2025-03-04 17:00:31 +00:00
Vladimir.Koshelevandintellij-monorepo-bot 268bc9307f [python] move PyProjectScopeBuilder to pycharm community customization
GitOrigin-RevId: fb38f3038a19bd66302920ce435d03da891a5fb5
2025-02-17 16:28:02 +00:00
Aleksandr Sorotskiiandintellij-monorepo-bot 42b6334183 pycharm uv support survey; #PY-78501 Fixed
GitOrigin-RevId: 314259d784d9cbf471a661ee51aa337d312fd613
2025-02-06 13:40:10 +00:00
Mikhail Golubevandintellij-monorepo-bot fc8b4ca91a PY-54269 Set up cross-module dependencies using the existing "transferred roots" mechanism
Namely, whenever there is a `sys.path` entry or a user-added path pointing
to the root of another project module, instead of configuring a source root
for it, we now set up the corresponding module dependency and save it
as a "transferred root" in additional data alongside extra directories
configured as source roots.

This POC solution has a number of limitations:
- A module dependency is set up only if the corresponding module
has already been added to the project. Modules are added using
"Attach to project" as before.
- Since detecting modules is happening on the interpreter introspection
phase, if project A depends on project B, once the module B is actually
configured as an IJ module, one needs to restart SDK update for project
A's SDK to detect the dependency.
- Detecting module dependencies this way requires having a configured
project interpreter for each dependent module, which might not be
practical for large projects, such as grazie-ml.
- It doesn't play well with manual editing of module dependencies in
settings.

Overall, this workaround works well with an existing multi-module project,
where a new subproject with its own SDK and module dependencies needs to
be added as an IJ module. But ideally we need to rely on the actual
project configuration files, not on runtime values of `sys.path`, and
make the workflow of configuring all project modules at once simpler.

A registry key "python.detect.cross.module.dependencies", disabled by default,
activates the feature.

As part of the feature, I also disabled configuring source roots for
`sys.path` entries not belonging to the current module. It leads
to a confusing situation where multiple modules have a content root
(with a single source root) pointing to the same directory in another
module. In a multi-module setting, it can happen if several modules
depend on some subproject that has not yet been configured as an IJ
module.

GitOrigin-RevId: 47e832edeeea21f5206c981bd604a6012100e9da
2025-02-04 22:07:19 +00:00
Ilya.Kazakevichandintellij-monorepo-bot 6b6658fbc9 Python: make system python service available from community.
We make it a part of PythonCore module to use it from community

GitOrigin-RevId: ea6b00b6ac1a24478f9ff74cb34beffab0942089
2025-02-03 22:07:16 +00:00
Aleksandr Sorotskiiandintellij-monorepo-bot e0e9e611a6 support for listing uv provided pythons PY-77537
GitOrigin-RevId: 7003a66ba729d7565c1cf876198d85d45d025659
2025-02-03 17:10:53 +00:00
Ilya.Kazakevichandintellij-monorepo-bot dafe83d2c7 Python: temporary hack: Move SPP to community to break cyclic dependency.
Will move it back soon.

GitOrigin-RevId: b2f032dbc9926b2e23c0438d2ce522985c7a6ad4
2025-01-30 17:45:52 +00:00
Aleksandr Sorotskiiandintellij-monorepo-bot e9f5ddd211 cleanup python package manager internal interface. squash redundant test python package manager implementations.
GitOrigin-RevId: e1f80d690a5c67868312e626e79d7fbd73e06808
2025-01-29 19:52:47 +00:00
Ilya.Kazakevichandintellij-monorepo-bot 1b8625925c Python: remove package attr from PythonCore and move its modules into right packages.
PythonCore consists of several v1 modules (they aren't v2 modules in its content, but bare v1 modules to be packed directly in it).

They used to have `com.jetbrains` package to match plugin's package.

I now removed plugin package and moved modules to the appropriate packages.

https://jetbrains.slack.com/archives/CMDBCUBGE/p1738073999835749?thread_ts=1738008244.276339&cid=CMDBCUBGE

GitOrigin-RevId: 5702998a23598d4aa363064025afad8951faf7f7
2025-01-29 02:56:22 +00:00