Argument array passed as vararg should be not-null
for Kotlin to compile the spread operator without errors.
GitOrigin-RevId: 8aee483563ac8a233e409a1c544b7ccfa388ff2b
The `set_global_debugger` invocation has been moved to a later point to ensure all debugger fields are initialized first. This addresses potential issues in multithreaded environments where the debugger is accessible, but access to its fields may fail.
GitOrigin-RevId: 55dd63585f8dae94c6527d51dca3c2562b30c4ce
The slow op was caused by copying UsageInfo, which meant
resolving PSI pointers and creating new ones. It doesn't seem
necessary in the current implementation, as UsageInfo objects
are immutable for the most part, and all mutations that do happen
do so before the object is published. Moreover, the copy()
implementation was incorrect: the class has over 400 subclasses,
and none of them overrides copy(), which means the actual type
is lost. It's probably not relevant at this point, but still, it seems wrong.
GitOrigin-RevId: a678bcce74eea1f8bc0ac3dd348a1a92263a2383
Not a perfect solution, as it's yet another NBRA seemingly for no reason,
but it's the best we can do without changing the API and enforcing
strong EDT/BGT contracts on it.
Existing getSelectorInFile() implementations seem to be safe to
call from a BGT, there's mainly PSI stuff there and also some access
to thread-safe editor models like the caret position.
GitOrigin-RevId: 92bb27afda5989e283bc98d6a577e11666b21579
It's pure UI code there, working with the tree and its model.
It should only be performed on the BGT.
GitOrigin-RevId: 5dc36ea12ada5def3912ee33156001a3bde4d95b
`AsyncPromise.onSuccess` captures the context.
If the context is empty, the wrapping into `ContextBiConsumer` was skipped
=> no `installThreadContext` is called
=> the effective context stays unchanged
=> the context of future.complete() call leaks into onSuccess lambda.
In the original issue the leaking context was `async` context, which had just completed:
```
async {
// <- context from here
}
.asCompletableFuture()
.asCancellablePromise()
.onSuccess {
// leaked here
}
```
This started to manifest itself after IJPL-445.
If the context is captured in a lambda, the context of the lambda caller should not be visible inside the lambda.
Capturing an empty context also counts as capturing, so skipping the wrapping was not correct.
The change makes sure that all capture functions install the captured context, even when it's empty.
GitOrigin-RevId: 463a5c4e22578969c5ea70ca8bb155d8cb17c12c
prepare for update grazie platform to 0.3.86 (migrate to new ai completion context collection api)
fixup! prepare for update grazie platform to 0.85 (migrate to new ai completion context collection api)
fixup! prepare for update grazie platform to 0.85 (migrate to new ai completion context collection api)
fixup! [ai-completion] separate fields `name` and `origin` for ContextItem
[ai-completion] separate fields `name` and `origin` for ContextItem
fixup! prepare for update grazie platform to 0.85 (migrate to new ai completion context collection api)
fixup! prepare for update grazie platform to 0.85 (migrate to new ai completion context collection api)
prepare for update grazie platform to 0.85 (migrate to new ai completion context collection api)
Co-authored-by: Semyon Proshev <Semyon.Proshev@jetbrains.com>
Merge-request: FLEET-MR-4026
Merged-by: Boris Pristupa <boris.pristupa@jetbrains.com>
GitOrigin-RevId: 956bb141729dbd6345e56a755d511d2b1b80d54a
In some configurations, there can be exponential amount of files when file system is traversed following symlinks. For example, dependencies under `node_modules` can be organized in such way.
GitOrigin-RevId: 8d85b2ae7fc6737040ed4d9e5f53bc0942bd22c4
before this patch, inlay hints were raised from the cache even though the corresponding provider was disabled
GitOrigin-RevId: 80f01b726a2c0747870f95b7754af269cf511dff
psiFile seems redundant for applying purposes. The only reason for getting it was providing psi mod stamp. But it is possible to calculate the stamp via a project. So we can avoid parsing psiFile under the read action
GitOrigin-RevId: 2213c276cbbdbe03c9dd59039ec571e90228162d
TracingFileSystemProvider wraps both the original WindowsFileSystemProvider and IjentNioFileSystemProvider. It allows controlling sudden performance degradations in benchmark tests.
Only WSL drives are supposed to be wrapped into TracingFileSystemProvider. Regular windows drives aren't wrapped.
GitOrigin-RevId: 988278e0e88a7d6c9e01422a0dd0713e883cb275
The feature is disabled by default. It is controlled by a registry flag `wsl.use.remote.agent.for.nio.filesystem`.
The new filesystem requires also setting specific system properties for the IDE.
GitOrigin-RevId: 6438e175b7272428b53f6bfba9988ccbc43f8287
Before this commit, if a relative path had passed to the filesystem, it would have thrown NPE, because `getRoot() == null`
GitOrigin-RevId: b5596addcb647337e57b64df047c00fc019ba213