There was a problem with detecting system-wide pythons, which relied on
binary not being a part of conda env or virtualenv. But it led to
unrelated Hatch and Poetry pythons automatically configured as
interpreters in new projects. Another problem is that free-threaded
python was chosen as default interpreter with highest priority because
of the newest version.
This change uses SystemPythonService to detect system pythons properly,
also free-threaded python used as a default interpreter only if it's the
only available option.
Merge-request: IJ-MR-179008
Merged-by: Alexey Katsman <alexey.katsman@jetbrains.com>
GitOrigin-RevId: 73bc98aed2918c44832b57f22b86c9c7d17a4301
There was a problem that we can detect uv environment as a virtualenv in
PyInterpreterInspection. The problem is that we don't use the knowledge
about the existing environment anyhow.
This change relies on SDK configurators to tell whether environment is
present or can be configured.
GitOrigin-RevId: 27f55c7d1b4712b0b8c3d39b1b8f7d8643680910
There is a second field for selected existing env because the lookup values are different and the UI component doesn't reflect changes if the selected env is not in the list.
(selection of non-existing env on the create new view and switching to the select existing view makes the UI inconsistent otherwise)
(cherry picked from commit a897842aa68753c7709553e979bb8610facc0bdf)
IJ-MR-179439
GitOrigin-RevId: 358246846fd4d6bea610b2bf41fd48f90cecb2ec
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
Add all debuggable configurations except for UvRunConfiguration
Fix an exception message in DjangoServerRunConfigProvider
Don't add an empty working directory
Fix modules’ dependencies
Move some providers to their configuration modules
Original merge-request: IJ-MR-178473
Merge-request: IJ-MR-179363
Merged-by: Egor Eliseev <Egor.Eliseev@jetbrains.com>
GitOrigin-RevId: 77818c6bd405cc0d5ad43166d2a351511ba1d6f3
Now that UIThemeLookAndFeelInfo has the nice isDark property,
we no longer need to hardcode exact themes here,
except for the high contrast one.
(cherry picked from commit 4d8f267d1b7d2c24a04093334a49ca6b5be32a9a)
IJ-CR-179276
GitOrigin-RevId: 58dea94f83569070d2961b1cc5c6325cc0f52437
+ rename ToolState -> PythonToolViewModel
+ rename all ViewModels
+ makeAvailableForAllProjects flag is available only for new plain venv, so should not affect others
(cherry picked from commit 83da5b7a52d0626360ffbf14ff62fbd358942107)
GitOrigin-RevId: 8c59f80b1576b9142f8081e758a5ae3bb84205c7
* move tool specific properties to tool sections
(cherry picked from commit 543c1f6ba44c564e31a956309bfaee44c6492b67)
GitOrigin-RevId: 84b1f2af49dffe7a5e1928b4362917c2a9194fb0
Originally the "Create" button on the Target Custom Tool Wizard (it is used only for Python now) was always active not depending on the tool internal state. registerStateChangedCallback was added to the CustomToolLanguageConfigurable interface to notify controls of changes inside the tool form.
CustomToolLanguageConfigurable was marked as Internal to align with TargetCustomToolPanel.
Merge-request: IJ-MR-179005
Merged-by: Vitaly Legchilkin <Vitaly.Legchilkin@jetbrains.com>
GitOrigin-RevId: ecbf55364bfcdd8dea9d05a154c548aae63da445
When registry key is enabled, we replace all other SDK configurations (done by inspection and open processors) with a new one.
We also have an action to start this process
GitOrigin-RevId: 425ae78b769c5b5d40974cee9f19227410f63d45
1. Obey registry key.
2. Use `readAction` to prevent race when file chaned from another thread.
3. Extract action title to the i18n
(cherry picked from commit eb9ca0841c13de06fb636d1e14f34d4a1b72b598)
GitOrigin-RevId: 8ccfd060f45e4da4f12492c0e3f9fbbf5f6c0ff4
* preferredHeight = 30 hack was removed because the python interpreter field was different from other fields.
* this line does the magic of correct width calculation
-> preferredSize = JBUI.size(preferredSize)
* isEditable = true <- this line make correct background color for the interpreter combobox (dark as on other fields)
GitOrigin-RevId: d21817e8c4d9140ff67f55f508890acd5d4c1e99
Add Attach to DAP enable by default
Add DAP implementation for PythonRunConfiguration
Add base part for test runners debugging via DAP
Add a Registry key for debugpy
Remove separate PythonDapRunConfiguration
Merge-request: IJ-MR-176444
Merged-by: Egor Eliseev <Egor.Eliseev@jetbrains.com>
GitOrigin-RevId: 6adabc9f7ac468f8a7eda74ba4a0663ead9ed91f