Merged
Conversation
…erences Microsoft.CodeAnalysis.Analyzers (cherry picked from commit 198dfd74dc2b052b9e7c69b91216f9a1a5e21a9f) NET-CR-18206 GitOrigin-RevId: 27093f6dee2d2384199b1e7bfde2eaf788c5e29d
PyDebugProcess implements PyStepIntoSupport (pydevd path unchanged). PythonDapDebugProcess implements PyStepIntoSupport: justMyCode=true: "Step Into My Code" enabled, "Step Into" disabled; justMyCode=false → "Step Into My Code" disabled with a tooltip. Add PyDapStepIntoAction as a DAP-aware replacement for the platform "Step Into" action in the debug toolbar. Merge-request: IJ-MR-193319 Merged-by: Egor Eliseev <Egor.Eliseev@jetbrains.com> (cherry picked from commit 6ee6b7afda307e11e4d477bfa9c05a2f80734b6e) GitOrigin-RevId: a0a41d0e9decfcb9e9872114cbfb231cc2c3a0bc
Add a segmented button to Settings | Python | Debugger Add ComboBoxAction in the Debug tool window toolbar (Python.DebuggerBackendSwitcher) Show a one-time GotIt tooltip on the first debug session Show a confirmation dialog when switching backend during an active session Merge-request: IJ-MR-194172 Merged-by: Egor Eliseev <Egor.Eliseev@jetbrains.com> (cherry picked from commit 965677f0668b3493290f9f3bb59ed6e7da2f2f38) GitOrigin-RevId: 33211f8da8e83835f74ad9bb7de7cd2eea5dc407
Simply modify the configuration in the background and always restart the session. If the session has already ended, hide the quick fix. Merge-request: IJ-MR-194323 Merged-by: Egor Eliseev <Egor.Eliseev@jetbrains.com> (cherry picked from commit fd6c55fda3950e756d62bf508b4e274f069282c0) GitOrigin-RevId: b669a3abec5ba870965b9e0bef4a91e0aafdefcf
…gpy switcher UI JupyterDebugBackendSwitchHandler — new handler for backend switching: restarts the Jupyter kernel for a clean state. PyDebuggerBackendSwitcherAction — Beta instead of New for debugpy; "Report Issue" now pre-fills the description with system information Merge-request: IJ-MR-195507 Merged-by: Egor Eliseev <Egor.Eliseev@jetbrains.com> (cherry picked from commit ba620baef07b931fe85f62e582dd075fdc2517c1) GitOrigin-RevId: 6184721927109c492f5dabf8085f371a0905ae42
Merge-request: IJ-MR-195844 Merged-by: Egor Eliseev <Egor.Eliseev@jetbrains.com> (cherry picked from commit 86f50c02787eb9af41e20d7014b9c8a2d6122910) GitOrigin-RevId: 8724774a2e6f4e9140fb9701aa23ec526a77eb51
(cherry picked from commit 983304fb955d228d946ff75b0c3f20aa35a5d0f1) IJ-CR-192634 GitOrigin-RevId: ced4dc6ce1313719fab195cf20954b393de2ba89
This will ensure that any new plugins appear in UI GitOrigin-RevId: 35d21e259009c9ca26f7fb7ea9102275677b9567
…s, but only one is python module. We only autoconfigure SDK when there is one module. But there might be other (non-python) modules. We must ignore them. (cherry picked from commit 6c45d3678aa16f54ba6967b24a8dd8afdb7fa2f6) IJ-CR-196680 GitOrigin-RevId: c97e21f04870df605f8bcfdf4e563009ff5c8654
…g DnD from project view Use our startup performance events for that. Not the best way, but the easiest one. It would be nice to have this information in `local.exec` event, but it is very hard to propagate this information there. (cherry picked from commit 6653119cd76874497d5be56b8d33e638b1a165b5) IJ-CR-194740 GitOrigin-RevId: 038c151c047093ba5cf3390a0c6505efc4c4423d
Previously, we tracked subcommands for every terminal command. And reported subcommand only if it was specified for the particular command. Actually, it doesn't matter whether some subcommand specified for any command in our allowlist or not. We just need to detect user patterns. Also, it removes a lot of duplication from `subCommand` FUS field. (cherry picked from commit bc2fcdef771656a98ab2a685e64e42e5cfede56d) IJ-CR-194740 GitOrigin-RevId: d00483245dac3e19ad983dd44d758dfc81264b26
…and subcommands This way we can distinguish "unknown subcommand" and "no subcommand" cases. (cherry picked from commit 3e5ae06c0a11dd3511ff3c86f4fa3df20c48b8f2) IJ-CR-194740 GitOrigin-RevId: d26ee14d78e533338799d7309ad157c76d90b8f7
We will report the longest known subcommand that matches the user command.
For example, if user command is `uv pip install foo`, and known subcommands set contains `pip install`, then we will report `CommandData("uv", "pip install")`.
(cherry picked from commit 094b7340eeb880d149cab1c257f41d3386eb03fe)
IJ-CR-194740
GitOrigin-RevId: 443672c2a7083540dcee0207ffbe207c7f88a589
(cherry picked from commit 0fef48f5920372cc5ce12505c5a395c04b848b88) IJ-CR-194740 GitOrigin-RevId: 8a78538234129d827781965aba8986cfd395b455
…e path>' It was reported as third.party before. (cherry picked from commit 28e779faa393d2e84def6c1979ba2c60670d23d5) IJ-CR-194740 GitOrigin-RevId: f12db3e045230f1b0ab28571b73475fa735c4c97
`FileComparisonFailedError` allows seeing diff of what is wrong. So, the expected value can be just copy-pasted to the `known-commands.txt`. (cherry picked from commit 58135c1aa1027526515de3d6b2b70f94abb0d2e5) IJ-CR-194740 GitOrigin-RevId: 6919895e00dd8cf654595624da25ba47188ef596
(cherry picked from commit f678767ba51dd1b7ec457c226eff5d17c0b67004) IJ-CR-194740 GitOrigin-RevId: 145af606cc77f1428b8bba63d34757fb994471c3
…name It is important for PowerShell cmdlets. Most of them can contain upper-case letters but actually can be invoked in any case. So, let's match the executable name case-insensitively. Because of that, we have to store and report all command names in lower case for consistency. (cherry picked from commit 6e4bb8d60a808f5fc36f4fdac01db211cbba1b30) IJ-CR-194740 GitOrigin-RevId: b8333eece5c7c85e27430969a0ca84068b396303
Gradle case is handled separately. And subcommands were accidentally skipped for it. (cherry picked from commit 517f534887996ab8e519c7f44d9476e65f65fc2b) IJ-CR-194740 GitOrigin-RevId: d44b0299e8b94d038cc07b9314ceaddd5de11371
…mand fields are used (cherry picked from commit 6ab7905a3ea05a6b98ff995306372141167f3d9c) IJ-CR-194740 GitOrigin-RevId: f304909cd16f8c8516ab9b473a0adff3e37abb96
(cherry picked from commit 00fd75dae01bfab8e53f65d6b60bfb5265d5e7da) GitOrigin-RevId: 1cdd91554e1fd479821f25d18f17450334ddc532
… suspended SDK resolution - Convert PyModuleService (abstract class) to Kotlin interface - Convert PyModuleServiceImpl to Kotlin with project-level scope - Change from application-level to project-level service - Add findPythonSdkWaitingForProjectModel suspend method that awaits JPS project model loading before resolving the SDK - Mark old findPythonSdk as @ApiStatus.Obsolete - Update all call sites to use getInstance(project) (cherry picked from commit 4dc39a57dbc6063d37522fac8befe01329c10cde) (cherry picked from commit 529405c76d8e2fa503ccc40e15dd0834dd59f469) GitOrigin-RevId: c15be35cb8c16da918c3b15da9768f5538f6c5ef
…lows - Add PythonSdkConfigurationMutex with StateFlow-based lock observation and tryWithLock that throws SdkConfigurationAlreadyInProgressException - Add suspended Module.findPythonSdk() extension that waits for project model to load before resolving - Wrap setupSdk in the global mutex with progress text reporting - Wire mutex into InterpreterFixExecutor, PythonLanguageRuntimeUI - Simplify PyAsyncFileInspectionRunner to use the shared mutex state (cherry picked from commit ace82cf69f1ce88b7a851d063af553f5b6f665d4) (cherry picked from commit 02f58779d332886406393410c582d94458c1db65) GitOrigin-RevId: 823b393069ca4e0862b85560ceca472ef4f6ff2e
…guration - Add autoConfigureSdkIfNeeded to sdkSuggestionTools that waits for project model and uses the global mutex - Add early return in getModuleInfo when SDK is already configured - Simplify ModulesSdkConfigurator to use autoConfigureSdkIfNeeded - Simplify InterpreterSettingsQuickFix to use autoConfigureSdkIfNeeded - Remove SDK-configured notification from PyProjectSdkConfiguration (cherry picked from commit f1423427eeb433d379519e3b9d1af00b46fc869d) (cherry picked from commit b81353d3af62f2d1f694d8c0d470d4495a01c989) GitOrigin-RevId: 1b075eba8569d3eeb10e5ad6eed1730d4147e32e
…ts handling - Add PySdkTransferredRootsListener that handles root transfer and virtualenv exclusion reactively on PySdkListener.TOPIC - Remove switchToSdk function from AddInterpreterActions - Register listener in intellij.python.community.impl.xml - Update PySdkPopupFactory, advancedActions, PySdkFromEnvironmentVariable to set module.pythonSdk directly (cherry picked from commit 989a0d0d0be5722a92be8709868b97343e4889ae) (cherry picked from commit b5d01f47409b127020a3021b1f3dc7ff8147ce9c) GitOrigin-RevId: b582a6ce8ba87a3189654658528d8a553e64f80c
…project.toml listener - Simplify PyConfigurableInterpreterList: fix comparator transitivity violation, remove unused sorting logic - Simplify PyVenvSdkConfiguration to use PathHolder.Eel-based createSdk - Remove unused PyDetectedSdk.setupSdk from PySdkExt - Simplify pyproject.toml notification listener to use flow.first instead of collect+cancel pattern (cherry picked from commit 35db9db995d4847fd2155b76b78552dd03d8cb7f) (cherry picked from commit 0419a4761996cc2592fb0df560846170cbe4434d) GitOrigin-RevId: 712eb1ac1514c9d51c75504fae8d82d79282427d
Previously the fixture created the venv directly as the module content root. Since inner virtualenvs are excluded from the module source roots, this caused the entire content root to be excluded. Create the venv in a .venv subdirectory instead, matching real-world project layout. (cherry picked from commit 492e2cfa9cdc01af91610f8579d771dd3a8eaa2d) (cherry picked from commit 6a5f5491e46b39c28089e73bd15f5e6f8af2d192) GitOrigin-RevId: 74a329f9fc8e8426f117ecd6e4b67d40d7b1b49b
Wait for indexes to be ready in setUp to prevent a race condition where the previous test's tearDown modifies source roots, triggering async reindexing that may not complete before checkHighlighting runs. (cherry picked from commit 3f5aabba7480ee3f19d70b56a50977952a43a43e) (cherry picked from commit 4dd46e1936ef3fcee055de7631436a25473b0af6) GitOrigin-RevId: 0f8347ce79fd50c89ad47d698276dcc7b6e9261f
…tory The test was looking for the Python binary directly in the temp directory instead of the `.venv` subdirectory where the virtual environment is actually created. Also sort imports alphabetically. (cherry picked from commit 4fba4755f3ee51e866da299e538a53a87c6a68d5) IJ-MR-196794 (cherry picked from commit 8f32934772fbf81952e16234354b1f34dd06c9e6) GitOrigin-RevId: 49890a3c0302cbfc5e6dd6211da2b30a9fcb2304
…callers setupSdk held pythonSdkConfigurationMutex internally, but callers also acquired the same non-reentrant mutex, causing a deadlock (coroutine suspended forever waiting for itself). Fix: remove the lock from setupSdk and add it to all SDK creation entry points instead: - PythonAddLocalInterpreterPresenter.okClicked - NewProjectWizardPythonData.setupProject - PyV3BaseProjectSettings.generateAndGetSdk - PySdkFromEnvironmentVariableConfigurator (converted from runInEdt to coroutine with mutex + EDT context) - createVenvAndSdk callers: lib.kt (misc project), welcome screen, features trainer (lock added at call site since auto-configurators already hold the lock when calling createVenvAndSdk) GitOrigin-RevId: f1d8b2e1c4a839b36cfed3a8fe3078df911fd523
(cherry picked from commit d0f85dca12162f9694829fee95f15a52791922ea) IJ-MR-196869 GitOrigin-RevId: 278f8952dfc7a73032da41d08250560dce604680
https://buildserver.labs.intellij.net/build/906396435 GitOrigin-RevId: f795db3f0b1df6f7176b3ed3a08600651259d878
Use the login shell (with /bin/sh fallback) to run `test -f` instead of directly invoking `/usr/bin/test`, which may not exist on minimal remote systems or Docker containers. Also simplify `executeCommand` to return `PyResult<String>` and `getShell` to return `String` with a `/bin/sh` fallback, removing unnecessary error wrapping. (cherry picked from commit a03e1156dd81bf4398c763dfd009bd23061973be) IJ-MR-196962 GitOrigin-RevId: 3c03760b5e358e6e77d53da79b63d55a8724115a
https://buildserver.labs.intellij.net/build/906304499 GitOrigin-RevId: 1bf20eee3ab2e9b9aa62d56351e1cdcb42944397
(cherry picked from commit 094ce8db0084f9cb588d538a640f9c7951440771) IJ-MR-192981 (cherry picked from commit cae1acc0c274165038b09395475b9ad311a5acee) GitOrigin-RevId: 137bfc717fd1a87ed485dc97402d23436d283e0e
…ons. Toolwindow was updating with a noticeable delay because packagesChanged event was fired after slow async tasks and SDK changes relied on indirect rootsChanged. Now events fire immediately and SDK switches are handled directly via PySdkListener. (cherry picked from commit 99e4cf56cc3ef937e8c8f6a7e448d44d53f0df00) IJ-MR-196949 GitOrigin-RevId: 10a87fe7eecffed6f1175e644cdd1c3e7d87fdf4
…de (IJPL-236292)(IJ-MR-196758) (cherry picked from commit 20c567aecca47d06d4b52897d7969ce5c19428bd) (cherry picked from commit 2cdb95054498382859bd028eacb91446af6b060e) IJ-CR-197089 GitOrigin-RevId: a32d2cdefd11ea349be63d1af2364bf5ef51ccc5
…viceImpl If the jpsProjectLoaded callback is never invoked (e.g. due to a platform bug), findPythonSdkWaitingForProjectModel hangs forever. Add a 10-second safety-net coroutine that auto-completes the deferred and logs an error. The timeout accounts for the 5-second delay in JpsGlobalModelSynchronizerImpl and the 1-second delay in ModuleManagerComponentBridgeInitializer. (cherry picked from commit 93f08a979d8dc4ddf578eab618191275d14f82c7) IJ-MR-197117 GitOrigin-RevId: ccb5b6d391b8f577f910dd61111357ef98a54546
https://buildserver.labs.intellij.net/build/907355802 GitOrigin-RevId: 8307324c3197303ccdcfdeef0f15629075b3056f
…UI fixes - Fix detectEnvironments crash on non-local filesystems (Docker, SSH, WSL) - Move UV-specific detection logic from FileSystem to UvPathOperations - Add EEL API check before scanning directories - Check pyvenv.cfg for "uv = " to distinguish UV vs regular venvs - Fix interpreterPath not set on PyTargetAwareAdditionalData for Docker - Fix browsed environment not appearing in combo box dropdown - Fix validation race when tool validation completes after detection - Add FileSystem.resolvePythonHome() as counterpart to resolvePythonBinary() - Remove redundant venvPath parameter (derive from pythonBinary) - Clean up remote SDK names: remove "Remote" prefix, redundant version, and unreadable Docker SHA hashes (cherry picked from commit fa5b11e22e29c189cf3ff7bc58a080b329596224) IJ-MR-197162 GitOrigin-RevId: 80f311deff7ba3ca2a48b91c68ee81e36e0cfc2a
… resolve package names from pyproject.toml - Skip [project.optional-dependencies] and [dependency-groups] in NotInstalledRequirementInspection (previously only [build-system] was excluded) - Filter DeclaredButNotInstalledPackagesChecker to only report packages from [project].dependencies, not from optional/dev groups - Resolve workspace member package name from pyproject.toml instead of using module name in uv tree --package - Parse dependency group/extra annotations from uv tree output - Strip extras from package names (e.g. uvicorn[standard] -> uvicorn) (cherry picked from commit 958696becd90026016c1367128f48e4861f5c5ac) IJ-MR-196282 GitOrigin-RevId: dbf32ba9cf98d39efd25ab5244548412f075eb3f
…kage Right-clicking a package while another package's context menu was open showed stale actions because the popup handler did not update the description controller. The TreeSelectionListener skips the update when the tree lacks focus (e.g. a previous popup stole it), so the SELECTED_PACKAGE_DATA_CONTEXT remained stale. Now the popup handler calls handlePackageSelection directly before showing the menu. (cherry picked from commit 81c0f361e1e9ea9d45ba74e83933e91e1f216125) IJ-MR-197068 GitOrigin-RevId: 82dc54ef29b901429407803e7b1b98d1fa7d9320
These changes provide correct handling of protocol methods defined in metaclasses. Such methods have the highest priority when operating on class objects, even if the class inherits a direct implementation of the protocol, e.g., Iterable (cherry picked from commit 1556c15d2b78dfe8f02797862d75e24462b637de) (cherry picked from commit 89676de48b29d89219898b3d99f08f3e4f27863d) IJ-CR-196674 GitOrigin-RevId: d62e8592a6808001910ba433fae83f8ed3cff392
The issue was highlighted by the following semantics: `Enum`'s metaclass is `EnumMeta` and implements iterable protocol as ``` def __iter__(self: type[_EnumMemberT]) -> Iterator[_EnumMemberT]: ... ``` Thus, we need to correctly bind the actual type of `Enum` implementation we're working with (say, `MyEnum`) to `_EnumMemberT` to be able to infer `Iterator[MyEnum]` and then get the correct type of e.g., `set(MyEnum)` (cherry picked from commit 53b26f963bdf8746c1f8fde5ee41aa37c415d920) (cherry picked from commit b0ce2298ae6a3e4706b55a56a6ba357ae9f6470d) IJ-CR-196674 GitOrigin-RevId: 20106ebfa230695d8000f81c5f3f56011b9b4570
(cherry picked from commit 0054a59cef0e90504b73f39df63b742e065e5a73) IJ-MR-197159 GitOrigin-RevId: 5b869b46c78a4874be0c78b3789d4154308aa13f
GitOrigin-RevId: d7fc9f09743527a790ae4ab8836c55e7ea0e7297
https://buildserver.labs.intellij.net/build/909012597 GitOrigin-RevId: d3487ee9e21446af3cdacfd95dccc3eb9803a3f3
https://buildserver.labs.intellij.net/build/909149893 GitOrigin-RevId: d08cdfd8c8e14b66ca7504465f2b9e47243dadc0
(cherry picked from commit 1da884badf9455b9763b71c818dc5861a247e8a8) IJ-CR-197366 GitOrigin-RevId: 65de79e0466517af5ef57863f0fe7b3178c1b096
…s-project notifications The mutex was a global singleton whose isLocked StateFlow was observed by every project's InterpreterFixExecutor. A lock state change from any project fanned out updateAllNotifications() to all projects, triggering stale cache refreshes with visible "Checking existing environments" progress bars in idle projects. Replace the global val with a per-project service so each project observes only its own mutex state. (cherry picked from commit cc14dce7d07231f6d7d4c3f654cdd8d3a2099ffc) IJ-MR-197413 GitOrigin-RevId: 9d39149a66c57bb9b0a1de88c2c74524ec089519
…ter SDK initialization showNoSdkMessage() switches content panel to noSdkPanel, but resetSearch/showSearchResult never switched it back to scrollingPackageListComponent, so the message persisted even after packages were loaded. Merge-request: IJ-MR-197397 Merged-by: Timur Malanin <timur.malanin@jetbrains.com> (cherry picked from commit 388c3fd09a46d8f66d9198c63a41615043eebb81) IJ-MR-197397 GitOrigin-RevId: 8e41421d01eeaa2aee6ac09f0a012792ca37fd43
Add `allDeclaredPackages()` to `PythonPackageManager`, implemented for UV (`uv tree --frozen`) and Poetry (`poetry show --tree`). Fixes all packages appearing grey in non-workspace UV projects where `extractDependencies` fails due to missing `--package` flag. (cherry picked from commit 0fbccda1831170f4fe4a49873556344d7e81d3e7) IJ-MR-197461 GitOrigin-RevId: 43dd6528b9f793a110fb13fd5c7cb02db11869b9
(cherry picked from commit a9f9cf79eb27ff9d0d475ba8daec0bfaaa09d982) IJ-MR-197500 GitOrigin-RevId: d1c000e07d5533abac894a0220b385916e5600dc
…ntext instead of RemDevContext in case of rem dev (cherry picked from commit 2eac4b82c824de3664ac7554006a15f01e7504f4) (cherry picked from commit 87af03428ebe72a85a271fc6517c69d8dfb49eb7) IJ-CR-197507 GitOrigin-RevId: 1d97b945b05684a26888fbd56b3c6c0f63fc5eea
https://buildserver.labs.intellij.net/build/909958672 GitOrigin-RevId: 148a3e1a0edc6a9c4420d4392b1c613f26d5b85b
https://buildserver.labs.intellij.net/build/910023046 GitOrigin-RevId: 18286a16b674bc404b04a12624a1170e73b1d04f
Current reports do not include class name due to overriden #toString (cherry picked from commit ce8a9120f53ff758039d562cccfbb9843a259749) IJ-CR-197496 GitOrigin-RevId: 3ec2e62542857923b5a2676ee47a680c79c4ca77
# Conflicts: # community-resources/resources/idea/IdeaApplicationInfo.xml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.