Disposable StatisticsFileEventLogger lifecycle was bound to Application and disposed only on application close. This does not allow plugins with own implementation of StatisticsEventLoggerProvider to reload without memory leak.
Created Application and Project level coroutine scopes for Statistics.
Hold coroutine scope in StatisticsEventLoggerProvider and provide ability to override it.
Handle lifecycle of disposable StatisticsFileEventLogger with coroutine instead of Disposer#register.
Subscribe to EventLogConfigOptionsService.TOPIC using coroutine scope.
Override coroutine scope in some implementations of implementation of StatisticsEventLoggerProvider.
GitOrigin-RevId: f4efe2f589602482ab8746d06ad67bc810f973ee
- update progress each 50ms instead of 200ms
- yield indexing coroutine on each file
(cherry picked from commit 4a09f64132c419b82b71d48704005b8169047d1f)
IJ-CR-148537
GitOrigin-RevId: 9a5622e892d52a33aac1ce81427700932b3293cc
Add util methods for creating or binding a disposable to a CoroutineScope.
(cherry picked from commit f03d5ae7601941ca59ddf483210d2426aabb4944)
GitOrigin-RevId: d39517066a3cd63c25b18c119f605e14b1b58d16
For example, `foo(z as (T & Any))`. `foo(z as T & Any)` wouldn't work
KTIJ-32081 CastExpressionModCommandAction fails with exception on casting parameter to definitely non-nullable
(cherry picked from commit 6a0e12503b9d7738305a27d40ecd12a2cdf0a6b4)
IJ-CR-149170
GitOrigin-RevId: 234038e18861ba2ae6269ec2e6295cd76fae1019
`directlyOverriddenSymbols` is a sequence, no sense to call `.toList()` on it if we just need to check that it's empty
KTIJ-30819
(cherry picked from commit 598b8bf4654b4bdc7fd0a5e11c6b2ef9aec1aa00)
IJ-CR-148612
GitOrigin-RevId: 5a5b972145a95c37639c2f34d494bddb0011b595
If a method overrides some Java method and that method is not overridden with anything else, it means that this method originates from Java.
In comparison to the previous wrong implementation, for the case `class ClassInheritingBoth: JavaName, KotlinName` the current implementation works regardless of the order of implemented interfaces `JavaName`, `KotlinName`.
^KTIJ-30819 Fixed
(cherry picked from commit eb262ccbf0c4c38248a260130d58316fa7a8bb65)
IJ-CR-148612
GitOrigin-RevId: 12a28f209e160b02d0e87e4af813c373a4f193a9
Test dontReplaceWhenReceiverIsSuper already covers this case
^KTIJ-31647 Fixed
(cherry picked from commit e732a8115a6bc376c9f4e3c82e78b1ea700fd0a8)
IJ-CR-148581
GitOrigin-RevId: 10fc651b4d2a1e38b0df05fb2c2e4e69f10ccd17
2. Add information about settings sync and tooltip to the JBA login procedure
(cherry picked from commit 6f4a8b0c4e405d90b6f41540c1c8d857f790d63c)
IJ-CR-148221
GitOrigin-RevId: 9b639ace2f95046cc0b265979137099abc26479b
Change ReformatQuickFix from LocalQuickFix to ModCommandQuickFix, so it can be applied without the batch mode.
(cherry picked from commit 5dacaf9f0c876fbdf72c295b607a22473df979e1)
IJ-MR-149433
GitOrigin-RevId: 2b3f10d295d1939c875990295f1a8a5f078786e9
The button points to our special Slack workspace
(cherry picked from commit f4d0287d609ee4d90b14319166cbb324950e5afa)
IJ-CR-148887
GitOrigin-RevId: 05dc103d1cd15dd085812dfa21a961322aad9228
When we added this key, we completely disabled all resizing logic
when Show Usages appears. This works fine for the size of the popup
itself, but the column sizes are now all wrong.
Adding this one line seems to fix the column sizes without affecting
the size of the popup.
(cherry picked from commit dd0659caa779f533770451a31ec3807394ab2c66)
IJ-CR-149328
GitOrigin-RevId: fd9ea59a1b841ba2ba23f782733c6d8dee574fec
If RPC is not followed, backend throws an error `No remote API found for InstanceId` in `RemoteApiRegistry.resolve`.
`RpcExecutor`, however, expects this method to return `null` if service was not found, not an exception.
Therefore, the exception is propagated upward which breaks the kernel and prevents further RPC calls from executing.
We should adhere to the API requirements and return `null` if service was not found instead of throwing an error.
GitOrigin-RevId: bbf70f1fe1cb0e7fb80bcc72ca0b161452a36f58
For RPC requests, it's not necessary to call `withKernel` - API can be resolved without that.
To avoid context switching and to simplify the code I remove `withKernel` from API calls.
GitOrigin-RevId: 9514260da113583e36f2979b0543310d27cd3db4
`withKernel` method attaches current coroutine to core `kernelCoroutineScope`
If current coroutine is finished with an exception, the cancellation is propagated to the parent job.
This cancels `kernelCoroutineScope` and prevents further usage of the scope. The scope is never recreated, so it becomes impossible to use Rhizome after that.
As a solution, `kernelCoroutineScope` should be a supervisor to avoid it being canceled by children.
We can do that by creating `childScope` under the root scope.
GitOrigin-RevId: fc38d086f4f5b51538ce1173a25d457e1935bb1d
- use first line description, preserve finally offset for mapping
(cherry picked from commit b404b8627b19c28b190c1600d4d2283098e44ac7)
IJ-CR-149177
GitOrigin-RevId: e4813fd394022fbcf365fffba4b858865dac5f09