Wrap every logging Handler with a special implementation of ErrorReporter that skips redirecting messages to a logger in the case of the handler failure
GitOrigin-RevId: 58a401961934900cefca594e63e27ced7a3c08c8
...to avoid canceling the highlighting being in the process of restarting itself.
Restart event occurred, the highlighting process (1) is transferred to submitInBackground() in FJP, then something bad happened, DaemonListeners reacted and restarted the highlighting (2), then the currently running submitInBackground process (1) resumed and proceeded to execute stopProcess(), killing not only (1) but also (2), thus leaving the highlighting not restarted.
GitOrigin-RevId: 16a5f5dcafc5aa1e8d9853d7f865c814d345c4e4
solution: gave an Php External Formatter an "Optimize imports" feature -> QualityToolExternalFormatter will be selected as an optimize imports service in FormattingServiceUtil.findImportsOptimizingService if it properly configured and make QualityToolExternalFormatter.getImportOptimizers -> OptimizeImportsProcessor.collectOptimizers returning an empty list -> isOptimizeImportsAvailable will return false and check box will be disabled.
GitOrigin-RevId: 6d56639b6ee9521ca363b87ae33ab70b67237a91
To be safe, we should probably do this for all replacement functions (KTIJ-30849).
^KTIJ-30832 Fixed
GitOrigin-RevId: f3ce8ba845b63f668e4e327884b20e06bde1a001
`PyActiveSdkConfigurable` has `model` that must be in sync with the JDK table.
After SDK addition, `PyActiveSdkConfigurable.updateSdkListAndSelect` must be called to select the active SDK.
The user then clicks "apply," see `PyActiveSdkConfigurable.apply` to associate with a model.
`PythonAddLocalInterpreterDialog` delegates SDK creation to `PythonAddEnvironment` (so-called `currentManager`).
It then calls `PythonAddLocalInterpreterDialogPresenter` that acts as presenter to persistent SDK using `PySdkService` and reports SDK using flow which is connected to `PyActiveSdkConfigurable.updateSdkListAndSelect`.
GitOrigin-RevId: 4114fe3385f8b51f82d6465617c27fbe65e8ab04
We always convert values to nanoseconds and so we have to serialize them as nanoseconds as well. Otherwise the following happens, we read "duration", convert to nanoseconds, and then treat it as microseconds for old products.
GitOrigin-RevId: 050651f76bb6ad9b96c2a11a863005f087819dd9
Implemented JavaScript functions to play and pause videos in `WebAnimationUtils.kt`. Enhanced `FeatureWelcomePanel.kt` to handle mouse clicks, pausing the video and displaying a dialog with enlarged video playback and control options.
GitOrigin-RevId: d1391e48d62a1b40b0443221e3e43e67b26bf15f
...instead of passing `Unit` as the `elementContext` parameter to the `KotlinPsiUpdateModCommandAction.ElementBased` constructor.
^KTIJ-30834
GitOrigin-RevId: 900b4e6cb8f8b91bf1bd965a045982e8c64b7a42
* There's a hard limit for an *incoming* message in gRPC-Java. The new code doesn't send requests that lead to huge responses.
* Requests for huge data chunks lead to bigger memory consumption on the remote side.
GitOrigin-RevId: 376b2c20a1ea3a7ce65527ba4b7d979f9bc245af
* Some parts of `IjentTunnelsApi` already use `ByteBuffer`. It's better to use it everywhere for consistency.
* `ByteBuffer` reduce data copying.
GitOrigin-RevId: dff79acdcf2be3b2225c83d7e0f3ac538dd86528
* With `ByteBuffer` it's easier to avoid excessive data copying.
* It's easier to use `ChannelInputStream` with code that uses `ByteBuffer`.
GitOrigin-RevId: 6e3fad7b0c93deb6d2d3f869baab73c7ec7be376