+ 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
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
Existing teamcity builds use "Terminal Tests" configuration that relies on having tests in the `intellij.terminal` module.
This change will be reverted once we start using new run configuration in teamcity builds.
GitOrigin-RevId: a31d3f539b1b8eacd7b73ee3812db9c0e959e51b
We create tmp dir in tests in a temporary dir and want to drop it then.
However, some background python process (I blame package manager cache) keeps this directory which prevents it from being deleted on Windows.
We now drop it.
GitOrigin-RevId: 35b3e1b75c1e3be7df1dd4e3b3fd155a24baff41
We create tmp dir in tests in a temporary dir and want to drop it then.
However, some background python process (I blame package manager cache) keeps this directory which prevents it from being deleted on Windows.
We now drop it.
GitOrigin-RevId: cd79c06b248916f479174bb4f83db781f7397eda
We create SDK in tests in a temporary dir and want to drop it then.
However, some background python process (I blame package manager cache) keeps this directory which prevents it from being deleted on Windows.
We now drop it.
GitOrigin-RevId: 36e2045e57e6cfae2f31465ae6d6d8e505d5edac
The name `PtyOrStdErrSettings` is too specific. It literally contains all possible variants, so adding a new element would lead to confusion.
GitOrigin-RevId: ce5d4735b49d67e9b9f7900b9ee6e16268ad81a8
Initially, there was a common contract for Posix and Windows processes:
* kill: SIGKILL on Posix, TerminateProcess on Windows.
* interrupt: SIGINT on Posix, Ctrl+C on Windows.
* terminate: SIGTERM on Posix, a hack with ProcessExit on Windows.
The latter one is suspicious: it brings a non-existent feature to Windows processes, which, by the way, doesn't work reliably. Also, there was no demand for that feature: it was borrowed for granted from FSD.
Although java.lang.Process provide methods `destroy` and `destroyForcibly`, they do the same on Windows.
This commits removes the `terminate` method for Windows processes, to conform java.lang.Process abilities and to not provide unneeded functions.
GitOrigin-RevId: 3e0a9b90470e0110dd9afd2d90e0dc2f4e73ef0f
To activate conda on **nix, we provide a path to `active` script and a path to the env directory.
Terminal shell integration scripts then "source" `activate` providing an env path as an argument.
The latter is called `JEDITERM_SOURCE` env var, the former is `JEDITERM_SOURCE_ARGS`.
The problem is those integration scripts treat `JEDITERM_SOURCE_ARGS` as a list, so they use shell magic to break it into several arguments, so `/path/foo bar/` effectively presented as `['/path/foo', 'bar/']`.
To fix it, we introduce the ` JEDITERM_SOURCE_SINGLE_ARG ` key which means "do not explode argument."
(cherry picked from commit a0a7c7a7bc8789078dd6cf109f4fd4386c9b7da6)
IJ-MR-159065
GitOrigin-RevId: 0c44ce6c43b292f30a094ac79d5f5d7e8935935c
We used to use `Invoke-Expression` but then migrated to `&`.
However, a conda activation script is a command (code block), not a file, so we need to use `Invoke-Expression` as '&' doesn't support it.
We check if a file exists, and if it does -- we use '&' which is safe and fast. We use `Invoke-Expression` otherwise.
Merge-request: IJ-MR-158505
Merged-by: Ilya Kazakevich <ilya.kazakevich@jetbrains.com>
GitOrigin-RevId: ea0772b3f5f9641a85b542903c44c3b78aed0715
The meaning of parameters of `LocalShellIntegrationInjector.injectShellIntegration` was changed in the scope of IJPL-176934.
So, the test was running with the shell integration of the New Terminal (Gen1).
Update the values to run it with the Classic Terminal shell integration.
But maybe it is worth adding the same test that will run with Reworked Terminal (Gen2) shell integration.
GitOrigin-RevId: 0bd43d4e1f65c7e42600d18d3b99b4177ea2639d
See `powershell-integration.ps1`.
Call operator is space-proof and more reliable.
Quote from MSDN:
>>>
Call operator `&`
Runs a command, script, or script block. The call operator, also known as the invocation operator, lets you run commands that are stored in variables and represented by strings or script blocks.
>>>
https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_operators?view=powershell-7.4#call-operator-
We also add tests: as we do not have Windows tests in the platform, we use PyCharm infra.
Merge-request: KT-MR-19554
Merged-by: Ilya Kazakevich <ilya.kazakevich@jetbrains.com>
GitOrigin-RevId: 6de26e0d88cff45e30d9354a96b62e8b00c7547a
1. Delete `intellij.python.community.impl.xml` (move content to `PythonCore` plugin). It is necessary to fix incorrect dependencies: `PythonCore`, `Pythonid` include the same module.
2. Fixed dependencies: if some plugin/module needs Python core functionality, then it should depend on `PythonCore`.
Co-authored-by: Vladimir Koshelev <Vladimir.Koshelev@jetbrains.com>
Merge-request: IJ-MR-136158
Merged-by: Egor Eliseev <Egor.Eliseev@jetbrains.com>
GitOrigin-RevId: ce9ed4c17f601ee1ca2b6cf608f4e30fdac1d879