GithubHelp home page GithubHelp logo

krasa / editorgroups Goto Github PK

View Code? Open in Web Editor NEW
22.0 22.0 3.0 4.64 MB

IntelliJ plugin prototype of https://youtrack.jetbrains.com/issue/IDEA-12130#comment=27-2838171

Home Page: https://plugins.jetbrains.com/plugin/10897-editor-groups

License: Apache License 2.0

Java 96.29% Kotlin 3.71%
intellij intellij-plugin java

editorgroups's People

Contributors

krasa avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

kool79 mallowigi

editorgroups's Issues

Exceptions 2.0.0

java.lang.IllegalArgumentException: Must pass FS root path, but got: 'D:///', which has a parent 'D:'. Use NewVirtualFileSystem.extractRootPath() for obtaining root path
	at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl.findRoot(PersistentFSImpl.java:1495)
	at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl.cacheRootsByUrls(PersistentFSImpl.java:1620)
	at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl.cacheSingleMissedRootFromPersistence(PersistentFSImpl.java:1602)
	at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl$ParentFinder.ascendUntilCachedParent(PersistentFSImpl.java:1685)
	at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl$ParentFinder.find(PersistentFSImpl.java:1806)
	at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl.findFileById(PersistentFSImpl.java:1567)
	at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl.findFileById(PersistentFSImpl.java:64)
	at com.intellij.util.indexing.FileBasedIndexImpl.findFileById(FileBasedIndexImpl.java:1184)
	at com.intellij.util.indexing.FileBasedIndexEx.lambda$processValuesInScope$9(FileBasedIndexEx.java:401)
	at com.intellij.util.indexing.FileBasedIndexEx.lambda$processValueIterator$10(FileBasedIndexEx.java:434)
	at com.intellij.util.indexing.FileBasedIndexEx.lambda$processExceptions$6(FileBasedIndexEx.java:324)
	at com.intellij.util.ConcurrencyUtil.withLock(ConcurrencyUtil.java:246)
	at com.intellij.util.indexing.FileBasedIndexEx.processExceptions(FileBasedIndexEx.java:324)
	at com.intellij.util.indexing.FileBasedIndexEx.processValueIterator(FileBasedIndexEx.java:436)
	at com.intellij.util.indexing.FileBasedIndexEx.processValuesInScope(FileBasedIndexEx.java:394)
	at com.intellij.util.indexing.FileBasedIndexImpl.processValuesInScope(FileBasedIndexImpl.java:1145)
	at com.intellij.util.indexing.FileBasedIndexEx.processValues(FileBasedIndexEx.java:297)
	at krasa.editorGroups.index.MyFileNameIndexService.getVirtualFilesByName(MyFileNameIndexService.java:193)
	at krasa.editorGroups.index.MyFileNameIndexService.getVirtualFilesByName(MyFileNameIndexService.java:55)
	at krasa.editorGroups.index.MyFileNameIndexService.getVirtualFilesByName(MyFileNameIndexService.java:62)
	at krasa.editorGroups.AutoGroupProvider.getSameNameGroup(AutoGroupProvider.java:54)
	at krasa.editorGroups.EditorGroupManager.getGroup(EditorGroupManager.java:224)
	at krasa.editorGroups.EditorGroupPanel.lambda$getGroupInReadActionWithRetries$5(EditorGroupPanel.java:827)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$OTelMonitor.callWrapped(NonBlockingReadActionImpl.java:832)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$OTelMonitor$MonitoredComputation.call(NonBlockingReadActionImpl.java:864)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.insideReadAction(NonBlockingReadActionImpl.java:602)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$attemptComputation$4(NonBlockingReadActionImpl.java:565)
	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1133)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runInReadActionWithWriteActionPriority$0(ProgressIndicatorUtils.java:76)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtilService.runActionAndCancelBeforeWrite(ProgressIndicatorUtilService.java:63)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:133)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runWithWriteActionPriority$1(ProgressIndicatorUtils.java:114)
	at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$0(ProgressManager.java:71)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:186)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:604)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:679)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:635)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:603)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:61)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:173)
	at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:71)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runWithWriteActionPriority(ProgressIndicatorUtils.java:111)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runInReadActionWithWriteActionPriority(ProgressIndicatorUtils.java:76)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.attemptComputation(NonBlockingReadActionImpl.java:565)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$transferToBgThread$1(NonBlockingReadActionImpl.java:466)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$transferToBgThread$2(NonBlockingReadActionImpl.java:481)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:702)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:699)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:699)
	at java.base/java.lang.Thread.run(Thread.java:833)

   gradle.properties
   
   java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: Must pass FS root path, but got: 'D:///', which has a parent 'D:'. Use NewVirtualFileSystem.extractRootPath() for obtaining root path
	at krasa.editorGroups.EditorGroupPanel.getGroupInReadActionWithRetries(EditorGroupPanel.java:845)
	at krasa.editorGroups.EditorGroupPanel._refresh3(EditorGroupPanel.java:727)
	at krasa.editorGroups.EditorGroupPanel.lambda$_refresh2$2(EditorGroupPanel.java:702)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at com.intellij.util.concurrency.ContextCallable.call(ContextCallable.java:29)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at com.intellij.util.concurrency.ContextRunnable.run(ContextRunnable.java:24)
	at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:249)
	at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:31)
	at com.intellij.util.concurrency.BoundedTaskExecutor$1.executeFirstTaskAndHelpQueue(BoundedTaskExecutor.java:227)
	at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:218)
	at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:215)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:702)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:699)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:699)
	at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: Must pass FS root path, but got: 'D:///', which has a parent 'D:'. Use NewVirtualFileSystem.extractRootPath() for obtaining root path
	at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:396)
	at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2073)
	at org.jetbrains.concurrency.AsyncPromise.get(AsyncPromise.kt:44)
	at krasa.editorGroups.EditorGroupPanel.getGroupInReadActionWithRetries(EditorGroupPanel.java:835)
	... 18 more
Caused by: java.lang.IllegalArgumentException: Must pass FS root path, but got: 'D:///', which has a parent 'D:'. Use NewVirtualFileSystem.extractRootPath() for obtaining root path
	at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl.findRoot(PersistentFSImpl.java:1495)
	at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl.cacheRootsByUrls(PersistentFSImpl.java:1620)
	at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl.cacheSingleMissedRootFromPersistence(PersistentFSImpl.java:1602)
	at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl$ParentFinder.ascendUntilCachedParent(PersistentFSImpl.java:1685)
	at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl$ParentFinder.find(PersistentFSImpl.java:1806)
	at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl.findFileById(PersistentFSImpl.java:1567)
	at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl.findFileById(PersistentFSImpl.java:64)
	at com.intellij.util.indexing.FileBasedIndexImpl.findFileById(FileBasedIndexImpl.java:1184)
	at com.intellij.util.indexing.FileBasedIndexEx.lambda$processValuesInScope$9(FileBasedIndexEx.java:401)
	at com.intellij.util.indexing.FileBasedIndexEx.lambda$processValueIterator$10(FileBasedIndexEx.java:434)
	at com.intellij.util.indexing.FileBasedIndexEx.lambda$processExceptions$6(FileBasedIndexEx.java:324)
	at com.intellij.util.ConcurrencyUtil.withLock(ConcurrencyUtil.java:246)
	at com.intellij.util.indexing.FileBasedIndexEx.processExceptions(FileBasedIndexEx.java:324)
	at com.intellij.util.indexing.FileBasedIndexEx.processValueIterator(FileBasedIndexEx.java:436)
	at com.intellij.util.indexing.FileBasedIndexEx.processValuesInScope(FileBasedIndexEx.java:394)
	at com.intellij.util.indexing.FileBasedIndexImpl.processValuesInScope(FileBasedIndexImpl.java:1145)
	at com.intellij.util.indexing.FileBasedIndexEx.processValues(FileBasedIndexEx.java:297)
	at krasa.editorGroups.index.MyFileNameIndexService.getVirtualFilesByName(MyFileNameIndexService.java:193)
	at krasa.editorGroups.index.MyFileNameIndexService.getVirtualFilesByName(MyFileNameIndexService.java:55)
	at krasa.editorGroups.index.MyFileNameIndexService.getVirtualFilesByName(MyFileNameIndexService.java:62)
	at krasa.editorGroups.AutoGroupProvider.getSameNameGroup(AutoGroupProvider.java:54)
	at krasa.editorGroups.EditorGroupManager.getGroup(EditorGroupManager.java:224)
	at krasa.editorGroups.EditorGroupPanel.lambda$getGroupInReadActionWithRetries$5(EditorGroupPanel.java:827)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$OTelMonitor.callWrapped(NonBlockingReadActionImpl.java:832)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$OTelMonitor$MonitoredComputation.call(NonBlockingReadActionImpl.java:864)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.insideReadAction(NonBlockingReadActionImpl.java:602)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$attemptComputation$4(NonBlockingReadActionImpl.java:565)
	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1133)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runInReadActionWithWriteActionPriority$0(ProgressIndicatorUtils.java:76)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtilService.runActionAndCancelBeforeWrite(ProgressIndicatorUtilService.java:63)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:133)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runWithWriteActionPriority$1(ProgressIndicatorUtils.java:114)
	at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$0(ProgressManager.java:71)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:186)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:604)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:679)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:635)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:603)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:61)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:173)
	at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:71)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runWithWriteActionPriority(ProgressIndicatorUtils.java:111)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runInReadActionWithWriteActionPriority(ProgressIndicatorUtils.java:76)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.attemptComputation(NonBlockingReadActionImpl.java:565)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$transferToBgThread$1(NonBlockingReadActionImpl.java:466)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$transferToBgThread$2(NonBlockingReadActionImpl.java:481)
	... 7 more

Pop-out editor group (suggestion)

I like to grab an editor tab and drag it off into its own window, then add the files i'm focusing on to that window. All the tool panes have a settings wheel with a 'view mode' that lets you dock/undock/float/window the tool pane.

Unfortunately, unlike all the tool panes, an editor pane does not have a settings wheel with a 'View Mode'. Open tabs must be dragged one at a time to the standalone editor window.

Would you be able to add a "pop-out" option for tabs? It would be nice to have a few options, like 'Pop out editor group', 'Pop out all tabs in this split', 'Pop out all tabs in this project', 'Pop out list of favorites', etc. Even if you could only pop out an editor group, you could still define specific groups, so it would be better than what is offered by default.

Deadlock


2020-08-16 21:53:49
Full thread dump OpenJDK 64-Bit Server VM (11.0.7+10-b944.20 mixed mode):

Threads class SMR info:
_java_thread_list=0x000000001c2c0eb0, length=30, elements={
0x0000000002982000, 0x0000000019d34800, 0x0000000019d36800, 0x000000001abc2800,
0x0000000019d4e800, 0x0000000019d4f800, 0x0000000019d7e800, 0x000000001ac06000,
0x000000001ace0000, 0x000000001aceb800, 0x000000001bfe5000, 0x000000001c255800,
0x000000001bf9e000, 0x000000001c069800, 0x000000001c2da000, 0x000000001c4f7800,
0x000000001c4f4000, 0x000000001c4f5800, 0x000000001c4f9000, 0x000000001c4f8000,
0x0000000023930800, 0x0000000023931800, 0x000000002392e000, 0x0000000023930000,
0x000000002392c800, 0x000000002392b800, 0x0000000023933000, 0x000000002392d800,
0x0000000023939000, 0x0000000023939800
}

"main" #1 prio=5 os_prio=0 cpu=546.88ms elapsed=828.85s tid=0x0000000002982000 nid=0x3580 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
        - None

"Reference Handler" #2 daemon prio=10 os_prio=2 cpu=0.00ms elapsed=828.79s tid=0x0000000019d34800 nid=0xafc waiting on condition  [0x000000001a87f000]
   java.lang.Thread.State: RUNNABLE
        at java.lang.ref.Reference.waitForReferencePendingList([email protected]/Native Method)
        at java.lang.ref.Reference.processPendingReferences([email protected]/Reference.java:241)
        at java.lang.ref.Reference$ReferenceHandler.run([email protected]/Reference.java:213)

   Locked ownable synchronizers:
        - None

"Finalizer" #3 daemon prio=8 os_prio=1 cpu=0.00ms elapsed=828.79s tid=0x0000000019d36800 nid=0x221c in Object.wait()  [0x000000001aa7f000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait([email protected]/Native Method)
        - waiting on <0x000000008cfd4eb0> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove([email protected]/ReferenceQueue.java:155)
        - waiting to re-lock in wait() <0x000000008cfd4eb0> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove([email protected]/ReferenceQueue.java:176)
        at java.lang.ref.Finalizer$FinalizerThread.run([email protected]/Finalizer.java:170)

   Locked ownable synchronizers:
        - None

"Signal Dispatcher" #4 daemon prio=9 os_prio=2 cpu=0.00ms elapsed=828.76s tid=0x000000001abc2800 nid=0x3c5c runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
        - None

"Attach Listener" #5 daemon prio=5 os_prio=2 cpu=93.75ms elapsed=828.76s tid=0x0000000019d4e800 nid=0x20 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
        - None

"C2 CompilerThread0" #6 daemon prio=9 os_prio=2 cpu=9312.50ms elapsed=828.76s tid=0x0000000019d4f800 nid=0x1de8 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   No compile task

   Locked ownable synchronizers:
        - None

"C1 CompilerThread0" #7 daemon prio=9 os_prio=2 cpu=2281.25ms elapsed=828.76s tid=0x0000000019d7e800 nid=0x3ed4 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   No compile task

   Locked ownable synchronizers:
        - None

"Sweeper thread" #8 daemon prio=9 os_prio=2 cpu=343.75ms elapsed=828.76s tid=0x000000001ac06000 nid=0x1a1c runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
        - None

"Service Thread" #9 daemon prio=9 os_prio=0 cpu=0.00ms elapsed=828.70s tid=0x000000001ace0000 nid=0xecc runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
        - None

"Common-Cleaner" #10 daemon prio=8 os_prio=1 cpu=15.63ms elapsed=828.69s tid=0x000000001aceb800 nid=0x4ce8 in Object.wait()  [0x000000001bd7f000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait([email protected]/Native Method)
        - waiting on <0x000000008cfd4ee0> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove([email protected]/ReferenceQueue.java:155)
        - waiting to re-lock in wait() <0x000000008cfd4ee0> (a java.lang.ref.ReferenceQueue$Lock)
        at jdk.internal.ref.CleanerImpl.run([email protected]/CleanerImpl.java:148)
        at java.lang.Thread.run([email protected]/Thread.java:834)
        at jdk.internal.misc.InnocuousThread.run([email protected]/InnocuousThread.java:134)

   Locked ownable synchronizers:
        - None

"Periodic tasks thread" #12 daemon prio=5 os_prio=0 cpu=203.13ms elapsed=828.08s tid=0x000000001bfe5000 nid=0x58c waiting on condition  [0x000000001cb7f000]
   java.lang.Thread.State: TIMED_WAITING (parking)
        at jdk.internal.misc.Unsafe.park([email protected]/Native Method)
        - parking to wait for  <0x000000008b432998> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.parkNanos([email protected]/LockSupport.java:234)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos([email protected]/AbstractQueuedSynchronizer.java:2123)
        at java.util.concurrent.DelayQueue.take([email protected]/DelayQueue.java:229)
        at com.intellij.util.concurrency.AppDelayQueue.lambda$new$0(AppDelayQueue.java:26)
        at com.intellij.util.concurrency.AppDelayQueue$$Lambda$32/0x00000001000aa440.run(Unknown Source)
        at java.lang.Thread.run([email protected]/Thread.java:834)

   Locked ownable synchronizers:
        - None

"IndexInfrastructure Pool[ApplicationImpl pooled thread 1]" #13 prio=4 os_prio=-1 cpu=687.50ms elapsed=828.05s tid=0x000000001c255800 nid=0x23fc runnable  [0x000000001cd7b000]
   java.lang.Thread.State: TIMED_WAITING (parking)
        at jdk.internal.misc.Unsafe.park([email protected]/Native Method)
        - parking to wait for  <0x000000008f91c780> (a com.intellij.openapi.application.impl.ReadMostlyRWLock)
        at java.util.concurrent.locks.LockSupport.parkNanos([email protected]/LockSupport.java:234)
        at com.intellij.openapi.application.impl.ReadMostlyRWLock.waitABit(ReadMostlyRWLock.java:136)
        at com.intellij.openapi.application.impl.ReadMostlyRWLock.readLock(ReadMostlyRWLock.java:127)
        at com.intellij.openapi.application.impl.ApplicationImpl.acquireReadLock(ApplicationImpl.java:877)
        at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:867)
        at com.intellij.openapi.application.ReadAction.compute(ReadAction.java:61)
        at com.intellij.find.impl.FindInProjectUtil.extractStringToFind(FindInProjectUtil.java:435)
        at com.intellij.psi.search.IndexPatternOptimizerImpl.extractStringsToFind(IndexPatternOptimizerImpl.java:31)
        at com.intellij.psi.search.IndexPattern.compilePattern(IndexPattern.java:97)
        at com.intellij.psi.search.IndexPattern.<init>(IndexPattern.java:49)
        at krasa.editorGroups.index.EditorGroupIndexer.<clinit>(EditorGroupIndexer.java:31)
        at krasa.editorGroups.index.EditorGroupIndex.<init>(EditorGroupIndex.java:62)
        at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0([email protected]/Native Method)
        at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance([email protected]/NativeConstructorAccessorImpl.java:62)
        at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance([email protected]/DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance([email protected]/Constructor.java:490)
        at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClass(ComponentManagerImpl.kt:613)
        at com.intellij.openapi.extensions.impl.ExtensionComponentAdapter.instantiateClass(ExtensionComponentAdapter.java:50)
        at com.intellij.openapi.extensions.impl.XmlExtensionAdapter$SimpleConstructorInjectionAdapter.instantiateClass(XmlExtensionAdapter.java:133)
        at com.intellij.openapi.extensions.impl.ExtensionComponentAdapter.createInstance(ExtensionComponentAdapter.java:42)
        at com.intellij.openapi.extensions.impl.XmlExtensionAdapter.createInstance(XmlExtensionAdapter.java:69)
        - locked <0x000000008f8de858> (a com.intellij.openapi.extensions.impl.XmlExtensionAdapter$SimpleConstructorInjectionAdapter)
        at com.intellij.openapi.extensions.impl.ExtensionPointImpl.processAdapter(ExtensionPointImpl.java:455)
        - locked <0x000000008caad098> (a com.intellij.openapi.extensions.impl.InterfaceExtensionPoint)
        at com.intellij.openapi.extensions.impl.ExtensionPointImpl.access$200(ExtensionPointImpl.java:39)
        at com.intellij.openapi.extensions.impl.ExtensionPointImpl$1.next(ExtensionPointImpl.java:353)
        at com.intellij.util.indexing.FileBasedIndexDataInitialization.initAssociatedDataForExtensions(FileBasedIndexDataInitialization.java:60)
        at com.intellij.util.indexing.FileBasedIndexDataInitialization.prepare(FileBasedIndexDataInitialization.java:96)
        at com.intellij.util.indexing.IndexInfrastructure$DataInitialization.call(IndexInfrastructure.java:127)
        at java.util.concurrent.FutureTask.run([email protected]/FutureTask.java:264)
        at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:215)
        at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:26)
        at com.intellij.util.concurrency.BoundedTaskExecutor$1.execute(BoundedTaskExecutor.java:194)
        at com.intellij.util.concurrency.BoundedTaskExecutor$1$$Lambda$464/0x0000000100633040.run(Unknown Source)
        at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:207)
        at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:183)
        at java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1128)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:628)
        at java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run([email protected]/Executors.java:668)
        at java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run([email protected]/Executors.java:665)
        at java.security.AccessController.doPrivileged([email protected]/Native Method)
        at java.util.concurrent.Executors$PrivilegedThreadFactory$1.run([email protected]/Executors.java:665)
        at java.lang.Thread.run([email protected]/Thread.java:834)

   Locked ownable synchronizers:
        - <0x000000008b17b5b8> (a java.util.concurrent.ThreadPoolExecutor$Worker)

"ApplicationImpl pooled thread 2" #14 prio=4 os_prio=-1 cpu=2546.88ms elapsed=828.05s tid=0x000000001bf9e000 nid=0x301c waiting on condition  [0x000000001cf7d000]
   java.lang.Thread.State: TIMED_WAITING (parking)
        at jdk.internal.misc.Unsafe.park([email protected]/Native Method)
        - parking to wait for  <0x000000008b4bb7f8> (a java.util.concurrent.SynchronousQueue$TransferStack)
        at java.util.concurrent.locks.LockSupport.parkNanos([email protected]/LockSupport.java:234)
        at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill([email protected]/SynchronousQueue.java:462)
        at java.util.concurrent.SynchronousQueue$TransferStack.transfer([email protected]/SynchronousQueue.java:361)
        at java.util.concurrent.SynchronousQueue.poll([email protected]/SynchronousQueue.java:937)
        at java.util.concurrent.ThreadPoolExecutor.getTask([email protected]/ThreadPoolExecutor.java:1053)
        at java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1114)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:628)
        at java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run([email protected]/Executors.java:668)
        at java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run([email protected]/Executors.java:665)
        at java.security.AccessController.doPrivileged([email protected]/Native Method)
        at java.util.concurrent.Executors$PrivilegedThreadFactory$1.run([email protected]/Executors.java:665)
        at java.lang.Thread.run([email protected]/Thread.java:834)

   Locked ownable synchronizers:
        - None

"ApplicationImpl pooled thread 6" #19 prio=4 os_prio=-1 cpu=421.88ms elapsed=827.80s tid=0x000000001c069800 nid=0x4c7c waiting on condition  [0x000000001dedc000]
   java.lang.Thread.State: WAITING (parking)
        at jdk.internal.misc.Unsafe.park([email protected]/Native Method)
        - parking to wait for  <0x000000008ccecf18> (a com.intellij.util.concurrency.Semaphore$Sync)
        at java.util.concurrent.locks.LockSupport.park([email protected]/LockSupport.java:194)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt([email protected]/AbstractQueuedSynchronizer.java:885)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly([email protected]/AbstractQueuedSynchronizer.java:1039)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly([email protected]/AbstractQueuedSynchronizer.java:1345)
        at com.intellij.util.concurrency.Semaphore.waitForUnsafe(Semaphore.java:81)
        at com.intellij.util.concurrency.Semaphore.waitFor(Semaphore.java:73)
        at com.intellij.openapi.application.impl.LaterInvocator.invokeAndWait(LaterInvocator.java:143)
        at com.intellij.openapi.application.impl.ApplicationImpl.invokeAndWait(ApplicationImpl.java:475)
        at com.intellij.openapi.application.impl.ApplicationImpl.invokeAndWait(ApplicationImpl.java:480)
        at com.intellij.openapi.project.impl.ProjectUiFrameAllocator.run(ProjectFrameAllocator.kt:68)
        at com.intellij.openapi.project.impl.ProjectManagerExImpl.openProject(ProjectManagerExImpl.kt:98)
        at com.intellij.ide.RecentProjectsManagerBase.openProject(RecentProjectsManagerBase.kt:305)
        at com.intellij.ide.RecentProjectsManagerBase.reopenLastProjectsOnStart(RecentProjectsManagerBase.kt:401)
        at com.intellij.idea.IdeStarter.main(IdeStarter.kt:137)
        at com.intellij.idea.ApplicationLoader$startApp$8.run(ApplicationLoader.kt:231)
        at java.util.concurrent.CompletableFuture$UniRun.tryFire([email protected]/CompletableFuture.java:783)
        at java.util.concurrent.CompletableFuture.postComplete([email protected]/CompletableFuture.java:506)
        at java.util.concurrent.CompletableFuture.postFire([email protected]/CompletableFuture.java:610)
        at java.util.concurrent.CompletableFuture$UniCompose.tryFire([email protected]/CompletableFuture.java:1085)
        at java.util.concurrent.CompletableFuture$Completion.run([email protected]/CompletableFuture.java:478)
        at com.intellij.idea.ApplicationLoader$startApp$nonEdtExecutor$1.execute(ApplicationLoader.kt:131)
        at java.util.concurrent.CompletableFuture$UniCompletion.claim([email protected]/CompletableFuture.java:568)
        at java.util.concurrent.CompletableFuture$UniCompose.tryFire([email protected]/CompletableFuture.java:1069)
        at java.util.concurrent.CompletableFuture.postComplete([email protected]/CompletableFuture.java:506)
        at java.util.concurrent.CompletableFuture$AsyncRun.run([email protected]/CompletableFuture.java:1742)
        at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:215)
        at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:26)
        at com.intellij.util.concurrency.BoundedTaskExecutor$1.execute(BoundedTaskExecutor.java:194)
        at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:186)
        at java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1128)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:628)
        at java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run([email protected]/Executors.java:668)
        at java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run([email protected]/Executors.java:665)
        at java.security.AccessController.doPrivileged([email protected]/Native Method)
        at java.util.concurrent.Executors$PrivilegedThreadFactory$1.run([email protected]/Executors.java:665)
        at java.lang.Thread.run([email protected]/Thread.java:834)

   Locked ownable synchronizers:
        - <0x000000008b17b678> (a java.util.concurrent.ThreadPoolExecutor$Worker)

"Java2D Disposer" #21 daemon prio=10 os_prio=2 cpu=0.00ms elapsed=827.50s tid=0x000000001c2da000 nid=0x32a4 in Object.wait()  [0x000000001e61f000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait([email protected]/Native Method)
        - waiting on <0x000000008b9ba9b8> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove([email protected]/ReferenceQueue.java:155)
        - waiting to re-lock in wait() <0x000000008b9ba9b8> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove([email protected]/ReferenceQueue.java:176)
        at sun.java2d.Disposer.run([email protected]/Disposer.java:144)
        at java.lang.Thread.run([email protected]/Thread.java:834)

   Locked ownable synchronizers:
        - None

"AWT-Shutdown" #22 prio=4 os_prio=-1 cpu=0.00ms elapsed=827.49s tid=0x000000001c4f7800 nid=0x2e24 in Object.wait()  [0x000000001e81f000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait([email protected]/Native Method)
        - waiting on <0x000000008b4bb870> (a java.lang.Object)
        at java.lang.Object.wait([email protected]/Object.java:328)
        at sun.awt.AWTAutoShutdown.run([email protected]/AWTAutoShutdown.java:291)
        - waiting to re-lock in wait() <0x000000008b4bb870> (a java.lang.Object)
        at java.lang.Thread.run([email protected]/Thread.java:834)

   Locked ownable synchronizers:
        - None

"AWT-Windows" #23 daemon prio=6 os_prio=0 cpu=15.63ms elapsed=827.47s tid=0x000000001c4f4000 nid=0x280c runnable  [0x000000001f9ef000]
   java.lang.Thread.State: RUNNABLE
        at sun.awt.windows.WToolkit.eventLoop([email protected]/Native Method)
        at sun.awt.windows.WToolkit.run([email protected]/WToolkit.java:305)
        at java.lang.Thread.run([email protected]/Thread.java:834)

   Locked ownable synchronizers:
        - None

"AWT-EventQueue-0" #25 prio=6 os_prio=0 cpu=812.50ms elapsed=827.42s tid=0x000000001c4f5800 nid=0x48bc waiting for monitor entry  [0x000000001fdeb000]
   java.lang.Thread.State: BLOCKED (on object monitor)
        at com.intellij.openapi.extensions.impl.ExtensionPointImpl.calcExtensionList(ExtensionPointImpl.java:246)
        - waiting to lock <0x000000008caad098> (a com.intellij.openapi.extensions.impl.InterfaceExtensionPoint)
        at com.intellij.openapi.extensions.impl.ExtensionPointImpl.getExtensionList(ExtensionPointImpl.java:242)
        at com.intellij.openapi.extensions.ExtensionPointName.getExtensionList(ExtensionPointName.java:42)
        at com.intellij.util.indexing.FileBasedIndexFileTypeListener.fileTypesChanged(FileBasedIndexFileTypeListener.java:15)
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0([email protected]/Native Method)
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke([email protected]/NativeMethodAccessorImpl.java:62)
        at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke([email protected]/DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke([email protected]/Method.java:566)
        at com.intellij.util.messages.impl.MessageBusImpl.invokeListener(MessageBusImpl.java:636)
        at com.intellij.util.messages.impl.MessageBusImpl.deliverMessage(MessageBusImpl.java:406)
        at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:384)
        at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:366)
        at com.intellij.util.messages.impl.MessageBusImpl.access$100(MessageBusImpl.java:32)
        at com.intellij.util.messages.impl.MessageBusImpl$MessagePublisher.invoke(MessageBusImpl.java:187)
        at com.sun.proxy.$Proxy40.fileTypesChanged(Unknown Source)
        at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.fireFileTypesChanged(FileTypeManagerImpl.java:815)
        at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.fireFileTypesChanged(FileTypeManagerImpl.java:810)
        at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.associate(FileTypeManagerImpl.java:1288)
        at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.associate(FileTypeManagerImpl.java:793)
        at com.intellij.openapi.fileTypes.FileTypeManager.associateExtension(FileTypeManager.java:147)
        at com.vladsch.clionarduinoplugin.components.ArduinoApplicationComponent.lambda$initComponent$0(ArduinoApplicationComponent.java:17)
        at com.vladsch.clionarduinoplugin.components.ArduinoApplicationComponent$$Lambda$573/0x0000000100701040.run(Unknown Source)
        at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:980)
        at com.vladsch.clionarduinoplugin.components.ArduinoApplicationComponent.lambda$initComponent$1(ArduinoApplicationComponent.java:14)
        at com.vladsch.clionarduinoplugin.components.ArduinoApplicationComponent$$Lambda$568/0x0000000100703c40.run(Unknown Source)
        at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:201)
        at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:802)
        at com.intellij.openapi.application.impl.ApplicationImpl.lambda$invokeLater$4(ApplicationImpl.java:322)
        at com.intellij.openapi.application.impl.ApplicationImpl$$Lambda$317/0x00000001004bc440.run(Unknown Source)
        at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:84)
        at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:132)
        at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:47)
        at com.intellij.openapi.application.impl.FlushQueue$FlushNow.run(FlushQueue.java:188)
        at java.awt.event.InvocationEvent.dispatch([email protected]/InvocationEvent.java:313)
        at java.awt.EventQueue.dispatchEventImpl([email protected]/EventQueue.java:776)
        at java.awt.EventQueue$4.run([email protected]/EventQueue.java:727)
        at java.awt.EventQueue$4.run([email protected]/EventQueue.java:721)
        at java.security.AccessController.doPrivileged([email protected]/Native Method)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege([email protected]/ProtectionDomain.java:85)
        at java.awt.EventQueue.dispatchEvent([email protected]/EventQueue.java:746)
        at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:967)
        at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:839)
        at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:450)
        at com.intellij.ide.IdeEventQueue$$Lambda$572/0x0000000100701c40.compute(Unknown Source)
        at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:744)
        at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$9(IdeEventQueue.java:449)
        at com.intellij.ide.IdeEventQueue$$Lambda$571/0x0000000100702c40.run(Unknown Source)
        at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:802)
        at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:497)
        at java.awt.EventDispatchThread.pumpOneEventForFilters([email protected]/EventDispatchThread.java:203)
        at java.awt.EventDispatchThread.pumpEventsForFilter([email protected]/EventDispatchThread.java:124)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy([email protected]/EventDispatchThread.java:113)
        at java.awt.EventDispatchThread.pumpEvents([email protected]/EventDispatchThread.java:109)
        at java.awt.EventDispatchThread.pumpEvents([email protected]/EventDispatchThread.java:101)
        at java.awt.EventDispatchThread.run([email protected]/EventDispatchThread.java:90)

   Locked ownable synchronizers:
        - None

"Netty Builtin Server 1" #28 prio=4 os_prio=-1 cpu=0.00ms elapsed=826.09s tid=0x000000001c4f9000 nid=0xf28 runnable  [0x000000002165f000]
   java.lang.Thread.State: RUNNABLE
        at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0([email protected]/Native Method)
        at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll([email protected]/WindowsSelectorImpl.java:357)
        at sun.nio.ch.WindowsSelectorImpl.doSelect([email protected]/WindowsSelectorImpl.java:182)
        at sun.nio.ch.SelectorImpl.lockAndDoSelect([email protected]/SelectorImpl.java:124)
        - locked <0x000000008b372248> (a io.netty.channel.nio.SelectedSelectionKeySet)
        - locked <0x000000008d992568> (a sun.nio.ch.WindowsSelectorImpl)
        at sun.nio.ch.SelectorImpl.select([email protected]/SelectorImpl.java:141)
        at io.netty.channel.nio.SelectedSelectionKeySetSelector.select(SelectedSelectionKeySetSelector.java:68)
        at io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:803)
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:457)
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at java.lang.Thread.run([email protected]/Thread.java:834)

   Locked ownable synchronizers:
        - None

"Netty Builtin Server 2" #29 prio=4 os_prio=-1 cpu=171.88ms elapsed=826.07s tid=0x000000001c4f8000 nid=0x2fb0 runnable  [0x000000002185e000]
   java.lang.Thread.State: RUNNABLE
        at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0([email protected]/Native Method)
        at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll([email protected]/WindowsSelectorImpl.java:357)
        at sun.nio.ch.WindowsSelectorImpl.doSelect([email protected]/WindowsSelectorImpl.java:182)
        at sun.nio.ch.SelectorImpl.lockAndDoSelect([email protected]/SelectorImpl.java:124)
        - locked <0x000000008b6be148> (a io.netty.channel.nio.SelectedSelectionKeySet)
        - locked <0x000000008d9925f0> (a sun.nio.ch.WindowsSelectorImpl)
        at sun.nio.ch.SelectorImpl.select([email protected]/SelectorImpl.java:136)
        at io.netty.channel.nio.SelectedSelectionKeySetSelector.select(SelectedSelectionKeySetSelector.java:62)
        at io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:807)
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:457)
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at java.lang.Thread.run([email protected]/Thread.java:834)

   Locked ownable synchronizers:
        - None

"Netty Builtin Server 3" #35 prio=4 os_prio=-1 cpu=0.00ms elapsed=822.13s tid=0x0000000023930800 nid=0x4034 runnable  [0x0000000025b4f000]
   java.lang.Thread.State: RUNNABLE
        at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0([email protected]/Native Method)
        at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll([email protected]/WindowsSelectorImpl.java:357)
        at sun.nio.ch.WindowsSelectorImpl.doSelect([email protected]/WindowsSelectorImpl.java:182)
        at sun.nio.ch.SelectorImpl.lockAndDoSelect([email protected]/SelectorImpl.java:124)
        - locked <0x000000008b6c3398> (a io.netty.channel.nio.SelectedSelectionKeySet)
        - locked <0x000000008d992700> (a sun.nio.ch.WindowsSelectorImpl)
        at sun.nio.ch.SelectorImpl.select([email protected]/SelectorImpl.java:141)
        at io.netty.channel.nio.SelectedSelectionKeySetSelector.select(SelectedSelectionKeySetSelector.java:68)
        at io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:803)
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:457)
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at java.lang.Thread.run([email protected]/Thread.java:834)

   Locked ownable synchronizers:
        - None

"fsnotifier64.exe" #36 prio=4 os_prio=-1 cpu=0.00ms elapsed=822.13s tid=0x0000000023931800 nid=0x422c runnable  [0x0000000025d4d000]
   java.lang.Thread.State: RUNNABLE
        at java.lang.ProcessImpl.waitForInterruptibly([email protected]/Native Method)
        at java.lang.ProcessImpl.waitFor([email protected]/ProcessImpl.java:542)
        at com.intellij.execution.process.ProcessWaitFor.lambda$new$0(ProcessWaitFor.java:38)
        at com.intellij.execution.process.ProcessWaitFor$$Lambda$541/0x00000001006acc40.run(Unknown Source)
        at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:207)
        at com.intellij.execution.process.ProcessWaitFor.lambda$new$1(ProcessWaitFor.java:33)
        at com.intellij.execution.process.ProcessWaitFor$$Lambda$533/0x00000001006a8440.run(Unknown Source)
        at java.util.concurrent.Executors$RunnableAdapter.call([email protected]/Executors.java:515)
        at java.util.concurrent.FutureTask.run([email protected]/FutureTask.java:264)
        at java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1128)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:628)
        at java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run([email protected]/Executors.java:668)
        at java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run([email protected]/Executors.java:665)
        at java.security.AccessController.doPrivileged([email protected]/Native Method)
        at java.util.concurrent.Executors$PrivilegedThreadFactory$1.run([email protected]/Executors.java:665)
        at java.lang.Thread.run([email protected]/Thread.java:834)

   Locked ownable synchronizers:
        - <0x000000008f8f7240> (a java.util.concurrent.ThreadPoolExecutor$Worker)

"BaseDataReader: output stream of fsnotifier64.exe" #37 prio=4 os_prio=-1 cpu=0.00ms elapsed=822.13s tid=0x000000002392e000 nid=0x315c runnable  [0x0000000025f4d000]
   java.lang.Thread.State: RUNNABLE
        at java.io.FileInputStream.readBytes([email protected]/Native Method)
        at java.io.FileInputStream.read([email protected]/FileInputStream.java:279)
        at java.io.BufferedInputStream.read1([email protected]/BufferedInputStream.java:290)
        at java.io.BufferedInputStream.read([email protected]/BufferedInputStream.java:351)
        - locked <0x000000008c3121a8> (a java.io.BufferedInputStream)
        at sun.nio.cs.StreamDecoder.readBytes([email protected]/StreamDecoder.java:284)
        at sun.nio.cs.StreamDecoder.implRead([email protected]/StreamDecoder.java:326)
        at sun.nio.cs.StreamDecoder.read([email protected]/StreamDecoder.java:178)
        - locked <0x000000008f1158e0> (a com.intellij.util.io.BaseInputStreamReader)
        at java.io.InputStreamReader.read([email protected]/InputStreamReader.java:185)
        at java.io.Reader.read([email protected]/Reader.java:229)
        at com.intellij.util.io.BaseOutputReader.readAvailableBlocking(BaseOutputReader.java:134)
        at com.intellij.util.io.BaseDataReader.readAvailable(BaseDataReader.java:67)
        at com.intellij.util.io.BaseDataReader.doRun(BaseDataReader.java:160)
        at com.intellij.util.io.BaseDataReader$$Lambda$540/0x00000001006ac840.run(Unknown Source)
        at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:207)
        at com.intellij.util.io.BaseDataReader.lambda$start$0(BaseDataReader.java:50)
        at com.intellij.util.io.BaseDataReader$$Lambda$538/0x00000001006adc40.run(Unknown Source)
        at java.util.concurrent.Executors$RunnableAdapter.call([email protected]/Executors.java:515)
        at java.util.concurrent.FutureTask.run([email protected]/FutureTask.java:264)
        at java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1128)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:628)
        at java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run([email protected]/Executors.java:668)
        at java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run([email protected]/Executors.java:665)
        at java.security.AccessController.doPrivileged([email protected]/Native Method)
        at java.util.concurrent.Executors$PrivilegedThreadFactory$1.run([email protected]/Executors.java:665)
        at java.lang.Thread.run([email protected]/Thread.java:834)

   Locked ownable synchronizers:
        - <0x000000008f64e528> (a java.util.concurrent.ThreadPoolExecutor$Worker)

"BaseDataReader: error stream of fsnotifier64.exe" #38 prio=4 os_prio=-1 cpu=0.00ms elapsed=822.13s tid=0x0000000023930000 nid=0x2618 runnable  [0x000000002614d000]
   java.lang.Thread.State: RUNNABLE
        at java.io.FileInputStream.readBytes([email protected]/Native Method)
        at java.io.FileInputStream.read([email protected]/FileInputStream.java:279)
        at sun.nio.cs.StreamDecoder.readBytes([email protected]/StreamDecoder.java:284)
        at sun.nio.cs.StreamDecoder.implRead([email protected]/StreamDecoder.java:326)
        at sun.nio.cs.StreamDecoder.read([email protected]/StreamDecoder.java:178)
        - locked <0x000000008f115a00> (a com.intellij.util.io.BaseInputStreamReader)
        at java.io.InputStreamReader.read([email protected]/InputStreamReader.java:185)
        at java.io.Reader.read([email protected]/Reader.java:229)
        at com.intellij.util.io.BaseOutputReader.readAvailableBlocking(BaseOutputReader.java:134)
        at com.intellij.util.io.BaseDataReader.readAvailable(BaseDataReader.java:67)
        at com.intellij.util.io.BaseDataReader.doRun(BaseDataReader.java:160)
        at com.intellij.util.io.BaseDataReader$$Lambda$540/0x00000001006ac840.run(Unknown Source)
        at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:207)
        at com.intellij.util.io.BaseDataReader.lambda$start$0(BaseDataReader.java:50)
        at com.intellij.util.io.BaseDataReader$$Lambda$538/0x00000001006adc40.run(Unknown Source)
        at java.util.concurrent.Executors$RunnableAdapter.call([email protected]/Executors.java:515)
        at java.util.concurrent.FutureTask.run([email protected]/FutureTask.java:264)
        at java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1128)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:628)
        at java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run([email protected]/Executors.java:668)
        at java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run([email protected]/Executors.java:665)
        at java.security.AccessController.doPrivileged([email protected]/Native Method)
        at java.util.concurrent.Executors$PrivilegedThreadFactory$1.run([email protected]/Executors.java:665)
        at java.lang.Thread.run([email protected]/Thread.java:834)

   Locked ownable synchronizers:
        - <0x000000008f64e558> (a java.util.concurrent.ThreadPoolExecutor$Worker)

"ApplicationImpl pooled thread 13" #43 prio=4 os_prio=-1 cpu=218.75ms elapsed=648.63s tid=0x000000002392c800 nid=0x2264 waiting on condition  [0x000000000086d000]
   java.lang.Thread.State: TIMED_WAITING (parking)
        at jdk.internal.misc.Unsafe.park([email protected]/Native Method)
        - parking to wait for  <0x000000008b4bb7f8> (a java.util.concurrent.SynchronousQueue$TransferStack)
        at java.util.concurrent.locks.LockSupport.parkNanos([email protected]/LockSupport.java:234)
        at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill([email protected]/SynchronousQueue.java:462)
        at java.util.concurrent.SynchronousQueue$TransferStack.transfer([email protected]/SynchronousQueue.java:361)
        at java.util.concurrent.SynchronousQueue.poll([email protected]/SynchronousQueue.java:937)
        at java.util.concurrent.ThreadPoolExecutor.getTask([email protected]/ThreadPoolExecutor.java:1053)
        at java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1114)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:628)
        at java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run([email protected]/Executors.java:668)
        at java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run([email protected]/Executors.java:665)
        at java.security.AccessController.doPrivileged([email protected]/Native Method)
        at java.util.concurrent.Executors$PrivilegedThreadFactory$1.run([email protected]/Executors.java:665)
        at java.lang.Thread.run([email protected]/Thread.java:834)

   Locked ownable synchronizers:
        - None

"ApplicationImpl pooled thread 14" #48 prio=4 os_prio=-1 cpu=15.63ms elapsed=75.23s tid=0x000000002392b800 nid=0x3954 waiting on condition  [0x000000001d17d000]
   java.lang.Thread.State: TIMED_WAITING (parking)
        at jdk.internal.misc.Unsafe.park([email protected]/Native Method)
        - parking to wait for  <0x000000008b4bb7f8> (a java.util.concurrent.SynchronousQueue$TransferStack)
        at java.util.concurrent.locks.LockSupport.parkNanos([email protected]/LockSupport.java:234)
        at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill([email protected]/SynchronousQueue.java:462)
        at java.util.concurrent.SynchronousQueue$TransferStack.transfer([email protected]/SynchronousQueue.java:361)
        at java.util.concurrent.SynchronousQueue.poll([email protected]/SynchronousQueue.java:937)
        at java.util.concurrent.ThreadPoolExecutor.getTask([email protected]/ThreadPoolExecutor.java:1053)
        at java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1114)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:628)
        at java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run([email protected]/Executors.java:668)
        at java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run([email protected]/Executors.java:665)
        at java.security.AccessController.doPrivileged([email protected]/Native Method)
        at java.util.concurrent.Executors$PrivilegedThreadFactory$1.run([email protected]/Executors.java:665)
        at java.lang.Thread.run([email protected]/Thread.java:834)

   Locked ownable synchronizers:
        - None

"RMI TCP Accept-0" #51 daemon prio=5 os_prio=0 cpu=46.88ms elapsed=9.98s tid=0x0000000023933000 nid=0x17d4 runnable  [0x000000001e21f000]
   java.lang.Thread.State: RUNNABLE
        at java.net.PlainSocketImpl.accept0([email protected]/Native Method)
        at java.net.PlainSocketImpl.socketAccept([email protected]/PlainSocketImpl.java:159)
        at java.net.AbstractPlainSocketImpl.accept([email protected]/AbstractPlainSocketImpl.java:458)
        at java.net.ServerSocket.implAccept([email protected]/ServerSocket.java:565)
        at java.net.ServerSocket.accept([email protected]/ServerSocket.java:533)
        at sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept([email protected]/LocalRMIServerSocketFactory.java:52)
        at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop([email protected]/TCPTransport.java:394)
        at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run([email protected]/TCPTransport.java:366)
        at java.lang.Thread.run([email protected]/Thread.java:834)

   Locked ownable synchronizers:
        - None

"RMI TCP Connection(1)-192.168.2.97" #52 daemon prio=5 os_prio=0 cpu=62.50ms elapsed=7.56s tid=0x000000002392d800 nid=0x3030 runnable  [0x000000001ffed000]
   java.lang.Thread.State: RUNNABLE
        at java.net.SocketInputStream.socketRead0([email protected]/Native Method)
        at java.net.SocketInputStream.socketRead([email protected]/SocketInputStream.java:115)
        at java.net.SocketInputStream.read([email protected]/SocketInputStream.java:168)
        at java.net.SocketInputStream.read([email protected]/SocketInputStream.java:140)
        at java.io.BufferedInputStream.fill([email protected]/BufferedInputStream.java:252)
        at java.io.BufferedInputStream.read([email protected]/BufferedInputStream.java:271)
        - locked <0x0000000084d94e58> (a java.io.BufferedInputStream)
        at java.io.FilterInputStream.read([email protected]/FilterInputStream.java:83)
        at sun.rmi.transport.tcp.TCPTransport.handleMessages([email protected]/TCPTransport.java:544)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0([email protected]/TCPTransport.java:796)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0([email protected]/TCPTransport.java:677)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$$Lambda$1007/0x0000000100165040.run([email protected]/Unknown Source)
        at java.security.AccessController.doPrivileged([email protected]/Native Method)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run([email protected]/TCPTransport.java:676)
        at java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1128)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:628)
        at java.lang.Thread.run([email protected]/Thread.java:834)

   Locked ownable synchronizers:
        - <0x0000000084d0a670> (a java.util.concurrent.ThreadPoolExecutor$Worker)

"RMI Scheduler(0)" #53 daemon prio=5 os_prio=0 cpu=0.00ms elapsed=7.46s tid=0x0000000023939000 nid=0x4988 waiting on condition  [0x00000000201ef000]
   java.lang.Thread.State: TIMED_WAITING (parking)
        at jdk.internal.misc.Unsafe.park([email protected]/Native Method)
        - parking to wait for  <0x0000000084be9000> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.parkNanos([email protected]/LockSupport.java:234)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos([email protected]/AbstractQueuedSynchronizer.java:2123)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take([email protected]/ScheduledThreadPoolExecutor.java:1182)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take([email protected]/ScheduledThreadPoolExecutor.java:899)
        at java.util.concurrent.ThreadPoolExecutor.getTask([email protected]/ThreadPoolExecutor.java:1054)
        at java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1114)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:628)
        at java.lang.Thread.run([email protected]/Thread.java:834)

   Locked ownable synchronizers:
        - None

"JMX server connection timeout 54" #54 daemon prio=5 os_prio=0 cpu=0.00ms elapsed=7.43s tid=0x0000000023939800 nid=0x1ed8 in Object.wait()  [0x0000000020fdf000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait([email protected]/Native Method)
        - waiting on <0x0000000084df5118> (a [I)
        at com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout.run([email protected]/ServerCommunicatorAdmin.java:171)
        - waiting to re-lock in wait() <0x0000000084df5118> (a [I)
        at java.lang.Thread.run([email protected]/Thread.java:834)

   Locked ownable synchronizers:
        - None

"VM Thread" os_prio=2 cpu=906.25ms elapsed=828.80s tid=0x0000000019d0d000 nid=0x2294 runnable  

"GC Thread#0" os_prio=2 cpu=343.75ms elapsed=828.85s tid=0x0000000002996000 nid=0x13f0 runnable  

"GC Thread#1" os_prio=2 cpu=328.13ms elapsed=827.15s tid=0x000000001e98f000 nid=0x3048 runnable  

"GC Thread#2" os_prio=2 cpu=328.13ms elapsed=827.15s tid=0x000000001c148800 nid=0x2044 runnable  

"GC Thread#3" os_prio=2 cpu=265.63ms elapsed=827.15s tid=0x000000001ead7000 nid=0x9b0 runnable  

"CMS Main Thread" os_prio=2 cpu=28531.25ms elapsed=828.84s tid=0x00000000029d8800 nid=0x20e4 runnable  

"VM Periodic Task Thread" os_prio=2 cpu=46.88ms elapsed=828.70s tid=0x000000001ace5000 nid=0x1750 waiting on condition  

JNI global refs: 107, weak refs: 84


Configured in only one file

Configured in only one file, there are groups in the file.

example:

@group-one.related ./*
@group-two.related *.txt
@group-two.related file.*

or

[group-one]
related ./*
related *.txt

[group-two]
related file.*

or use yaml

Erro in log on IDEA 2022.3

Apparently the functionality is not lost. Haven't detected nothing broken yet.
But this error keeps popping up.

Access is allowed from event dispatch thread only

com.intellij.openapi.diagnostic.RuntimeExceptionWithAttachments: EventQueue.isDispatchThread()=false
Current thread: Thread[DefaultDispatcher-worker-35,5,main] 794947590
SystemEventQueueThread: Thread[AWT-EventQueue-0,6,main] 1805147855
at com.intellij.openapi.application.impl.ApplicationImpl.throwThreadAccessException(ApplicationImpl.java:1042)
at com.intellij.openapi.application.impl.ApplicationImpl.assertIsDispatchThread(ApplicationImpl.java:1025)
at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.getSelectedEditorWithProvider(FileEditorManagerImpl.java:1580)
at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.getSelectedEditor(FileEditorManagerImpl.java:1573)
at krasa.editorGroups.MyEditorTabColorProvider.getEditorTabColor(MyEditorTabColorProvider.java:35)
at com.intellij.openapi.fileEditor.impl.EditorTabPresentationUtil.getEditorTabBackgroundColor(EditorTabPresentationUtil.java:55)
at com.intellij.openapi.fileEditor.impl.EditorsSplitters$updateFileBackgroundColorAsync$1$color$1.invoke(EditorsSplitters.kt:509)
at com.intellij.openapi.fileEditor.impl.EditorsSplitters$updateFileBackgroundColorAsync$1$color$1.invoke(EditorsSplitters.kt:508)
at com.intellij.openapi.application.rw.InternalReadAction.insideReadAction(InternalReadAction.kt:90)
at com.intellij.openapi.application.rw.InternalReadAction.access$insideReadAction(InternalReadAction.kt:15)
at com.intellij.openapi.application.rw.InternalReadAction$tryReadCancellable$1.invoke(InternalReadAction.kt:74)
at com.intellij.openapi.application.rw.InternalReadAction$tryReadCancellable$1.invoke(InternalReadAction.kt:73)
at com.intellij.openapi.progress.CancellationKt.withCurrentJob$lambda-0(cancellation.kt:17)
at com.intellij.openapi.progress.Cancellation.withCurrentJob(Cancellation.java:60)
at com.intellij.openapi.progress.CancellationKt.withCurrentJob(cancellation.kt:17)
at com.intellij.openapi.progress.CancellationKt.executeWithJobAndCompleteIt(cancellation.kt:125)
at com.intellij.openapi.application.rw.CancellableReadActionKt.cancellableReadActionInternal$lambda-1$lambda-0(cancellableReadAction.kt:49)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1086)
at com.intellij.openapi.application.rw.CancellableReadActionKt.cancellableReadActionInternal$lambda-1(cancellableReadAction.kt:47)
at com.intellij.openapi.progress.util.ProgressIndicatorUtilService.runActionAndCancelBeforeWrite(ProgressIndicatorUtilService.java:63)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:128)
at com.intellij.openapi.application.rw.CancellableReadActionKt.cancellableReadActionInternal(cancellableReadAction.kt:45)
at com.intellij.openapi.application.rw.InternalReadAction.tryReadCancellable(InternalReadAction.kt:73)
at com.intellij.openapi.application.rw.InternalReadAction.access$tryReadCancellable(InternalReadAction.kt:15)
at com.intellij.openapi.application.rw.InternalReadAction$tryReadAction$2.invoke(InternalReadAction.kt:59)
at com.intellij.openapi.application.rw.InternalReadAction$tryReadAction$2.invoke(InternalReadAction.kt:54)
at com.intellij.openapi.progress.CancellationKt.withCurrentJob$lambda-0(cancellation.kt:17)
at com.intellij.openapi.progress.Cancellation.withCurrentJob(Cancellation.java:60)
at com.intellij.openapi.progress.CancellationKt.withCurrentJob(cancellation.kt:17)
at com.intellij.openapi.progress.CoroutinesKt.blockingContext(coroutines.kt:142)
at com.intellij.openapi.application.rw.InternalReadAction.tryReadAction(InternalReadAction.kt:54)
at com.intellij.openapi.application.rw.InternalReadAction.readLoop(InternalReadAction.kt:46)
at com.intellij.openapi.application.rw.InternalReadAction.access$readLoop(InternalReadAction.kt:15)
at com.intellij.openapi.application.rw.InternalReadAction$runReadAction$2.invokeSuspend(InternalReadAction.kt:27)
at com.intellij.openapi.application.rw.InternalReadAction$runReadAction$2.invoke(InternalReadAction.kt)
at com.intellij.openapi.application.rw.InternalReadAction$runReadAction$2.invoke(InternalReadAction.kt)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:89)
at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:169)
at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
at com.intellij.openapi.application.rw.InternalReadAction.runReadAction(InternalReadAction.kt:23)
at com.intellij.openapi.application.rw.PlatformReadActionSupport.executeReadAction(PlatformReadActionSupport.kt:24)
at com.intellij.openapi.application.CoroutinesKt.constrainedReadAction(coroutines.kt:51)
at com.intellij.openapi.application.CoroutinesKt.readAction(coroutines.kt:19)
at com.intellij.openapi.fileEditor.impl.EditorsSplitters$updateFileBackgroundColorAsync$1.invokeSuspend(EditorsSplitters.kt:508)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)
Suppressed: kotlinx.coroutines.DiagnosticCoroutineContextException: [no parent and no name, StandaloneCoroutine{Cancelled}@12475b7d, Dispatchers.Default]

Can we have autogroups by regex?

Plugin is excelent!!
But can we have autogroups by regex?
For example I have several files inside one package:

  • MySomePage
  • MySomePageUI
  • MySomePageGB

I want to see all those files inside one auto-group and ignore other files (like MySomeOtherPage.java) from the same package. Dont know how to implement it. One of the idea: User should define ordered list of regexps. Regexp which matches to currently selected tab should be used to select all other files into auto-group. If this regexp contains named group then all other files must have the same values for those groups.
Example: regexp: ^(?<prefix>My.*)(?<middle>Page).*\.java
When file MySomePage.java is opened then current regexp matches and has 2 named groups: prefix (with value = 'MySome') and middle (with value='Page')
So all other files which match to this regexp must also contains the same values for 'prefix' and 'middle' (files: MySomePageUI.java, MySomePageGB.java) But, for example, file 'MySomeOtherPage.java' must not be included because value for prefix = MySomeOther is not 'MySome'.

Also it will be good to define 'scope' for the regexp:

  • single package (so regexp will work for filenames only from current package)
  • current and all "nested" packages. For example, if I open file qa.com.mypackage.MyClass.java then it should match files in the curent package and all subpackages like qa.com.mypackage.subpackage, qa.com.mypackage.subpackage.subsubpackage

Option to use Apache Velocity in egroups files

It would be great to have the Velocity Template Language from Apache Velocity available to us in egroups files.

The syntax would be left as is but simply parsed first by Apache Velocity. This would mean that macro's as implemented now can be removed and replaced with a variable in the template. This would allow you to manipulate the output of a macro (say current file name or project directory), for example stripping the extension (or compound extension .component.scss) yourself.

Templates would be much more flexible and VTL seems to be easy enough to implement.

Suggestion: Allow positioning at bottom of editor

Regular Editor Tabs can be positioned on all sides of the editor window, i think it would be handy to be able to move the toolbar of this plugin to the bottom of the editor, or even allow positioning it on the sides or as freely movable tool window.

Can't Delete TranslationEditor

image

I added it but I can't remove it or open it.

Also, it would be nice to be able to delete a favorite list. (uninstalling and reinstalling doesn't work and I don't know where the files are)

Thank you!

Crashes

Windows 10,
PhpStorm 2021.2 Build #PS-212.4746.100
Runtime version: 11.0.11+9-b1504.13 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
EditorGroups (0.38)

It seems to happen when I use //@idea.title but I'm not entirely sure that this is related. The resources it accesses are also on WSL2 but I also doubt that is a problem either. Just thought I should mention it.

java.lang.NullPointerException at krasa.editorGroups.model.Link.getName(Link.java:77) at krasa.editorGroups.UniqueTabNameBuilder.put(UniqueTabNameBuilder.java:57) at krasa.editorGroups.UniqueTabNameBuilder.getNamesByPath(UniqueTabNameBuilder.java:33) at krasa.editorGroups.EditorGroupPanel.reloadTabs(EditorGroupPanel.java:342) at krasa.editorGroups.EditorGroupPanel._render2(EditorGroupPanel.java:954) at krasa.editorGroups.EditorGroupPanel.postConstruct(EditorGroupPanel.java:284) at krasa.editorGroups.ProjectComponent$1.createPanel(ProjectComponent.java:71) at krasa.editorGroups.ProjectComponent$1.fileOpenedSync(ProjectComponent.java:54) at com.intellij.util.messages.impl.MessageBusImpl.invokeMethod(MessageBusImpl.java:645) at com.intellij.util.messages.impl.MessageBusImpl.invokeListener(MessageBusImpl.java:620) at com.intellij.util.messages.impl.MessageBusImpl.deliverMessage(MessageBusImpl.java:417) at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:390) at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:372) at com.intellij.util.messages.impl.MessageBusImpl.access$200(MessageBusImpl.java:33) at com.intellij.util.messages.impl.MessageBusImpl$MessagePublisher.invoke(MessageBusImpl.java:179) at com.sun.proxy.$Proxy88.fileOpenedSync(Unknown Source) at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileImpl4Edt(FileEditorManagerImpl.java:1105) at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.lambda$openFileImpl4$17(FileEditorManagerImpl.java:969) at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.runBulkTabChange(FileEditorManagerImpl.java:1786) at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.lambda$openFileImpl4$18(FileEditorManagerImpl.java:968) at com.intellij.openapi.application.impl.ApplicationImpl.invokeAndWait(ApplicationImpl.java:438) at com.intellij.openapi.application.impl.ApplicationImpl.invokeAndWait(ApplicationImpl.java:456) at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileImpl4(FileEditorManagerImpl.java:965) at com.jetbrains.rdserver.editors.BackendServerFileEditorManager.openFileImpl4(BackendServerFileEditorManager.kt:63) at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.lambda$openFileImpl2$14(FileEditorManagerImpl.java:891) at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:207) at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:172) at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:162) at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:148) at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileImpl2(FileEditorManagerImpl.java:890) at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileWithProviders(FileEditorManagerImpl.java:764) at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileWithProviders(FileEditorManagerImpl.java:731) at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.lambda$openEditorImpl$22(FileEditorManagerImpl.java:1269) at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:216) at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:172) at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:162) at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:148) at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openEditorImpl(FileEditorManagerImpl.java:1263) at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileEditor(FileEditorManagerImpl.java:1239) at com.intellij.openapi.fileEditor.FileEditorManager.openEditor(FileEditorManager.java:222) at com.intellij.openapi.fileEditor.FileNavigatorImpl.navigateInAnyFileEditor(FileNavigatorImpl.java:81) at com.intellij.openapi.fileEditor.FileNavigatorImpl.navigateInEditor(FileNavigatorImpl.java:62) at com.intellij.openapi.fileEditor.FileNavigatorImpl.navigateInEditorOrNativeApp(FileNavigatorImpl.java:47) at com.intellij.openapi.fileEditor.FileNavigatorImpl.navigate(FileNavigatorImpl.java:30) at com.intellij.openapi.fileEditor.OpenFileDescriptor.navigate(OpenFileDescriptor.java:91) at com.intellij.ide.actions.searcheverywhere.FileSearchEverywhereContributor.processSelectedItem(FileSearchEverywhereContributor.java:108) at com.intellij.ide.actions.searcheverywhere.PSIPresentationBgRendererWrapper.processSelectedItem(PSIPresentationBgRendererWrapper.java:294) at com.intellij.ide.actions.searcheverywhere.SearchEverywhereUI.elementsSelected(SearchEverywhereUI.java:794) at com.intellij.ide.actions.searcheverywhere.SearchEverywhereUI.lambda$registerSelectItemAction$35(SearchEverywhereUI.java:684) at com.intellij.openapi.project.DumbAwareAction$SimpleDumbAwareAction.actionPerformed(DumbAwareAction.java:80) at com.intellij.openapi.keymap.impl.ActionProcessor.performAction(ActionProcessor.java:65) at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher$1.performAction(IdeKeyEventDispatcher.java:563) at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.lambda$doPerformActionInner$8(IdeKeyEventDispatcher.java:677) at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareWithCallbacks(ActionUtil.java:261) at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.doPerformActionInner(IdeKeyEventDispatcher.java:670) at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processAction(IdeKeyEventDispatcher.java:603) at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processAction(IdeKeyEventDispatcher.java:574) at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processActionOrWaitSecondStroke(IdeKeyEventDispatcher.java:457) at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.inInitState(IdeKeyEventDispatcher.java:450) at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.dispatchKeyEvent(IdeKeyEventDispatcher.java:218) at com.intellij.ide.IdeEventQueue.dispatchKeyEvent(IdeEventQueue.java:799) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:749) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:442) at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:825) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:441) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:794) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:493) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Help me Vojtฤ›ch Kenobi, you are my only hope.

Suggestion: Option to hide Buttons in Toolbar

I prefer to customize my IDE to only show buttons that are really relevant to me. I would like to hide the "Refresh" and "Switch Editor Group" Buttons, as these options are already available in the right-click context menu of the toolbar.

Incompatible with Intellij's "sort tabs" setting

If you enable Intellij's "Sort Tabs" setting (under Editor > General > Editor Tabs) then selecting a tab from editor groups will sometimes lead it to select the wrong tab.

It seems that EditorGroups is determining indexes prior to the sort.

image

Sub-group tab colours

It would be nice if you could set a sub-tab to a specific colour. I'm thinking in terms of if you have a testfile in the list it would be set to the test colour (green). Maybe allow customization but at least to use the default colour it would adopt if it was top level.

Bug: current tab lost if clicked file is already open in a different tab

If you have a file open already but you are viewing a different file/tab, when you click the file in the group tabs, your current tab is replaced by the one that you clicked on despite it already being open. The end result is that the file that you were viewing is closed and you lose a tab.

That sounds like gibberish, so I'll explain this better with an example:

disappearing-tab

  1. I had 3 tabs open: ProductListingTemplate.php, ProductType.php, and Product.php
  2. My current/active tab was ProductListingTemplate.php
  3. I clicked Product.php in the group tabs
  4. I then had 2 tabs open: ProductType.php and Product.php

ProductListingTemplate.php was closed instead of just switching to the open Product.php tab

Thanks!

Suggestion: Friendly name for regex groups

First off, thank you for putting together this plugin. I'm loving it!

It would be useful to be able to assign a "friendly name" to regex groups and have that be displayed in the "Switch Editor Group" popup. This would be an optional field, and if it's not set then it would be displayed how it currently is.

For example, I have these groups set up:
image
I would love to be able to name group 5 "Controllers", group 6 "Form Requests", and group 7 "Services". These are simple regex patterns so they're easy to recognize at a glance, of course. When you get more complex regex patterns though, a friendly name would be much easier to quickly identify.

Thanks again!

ProcessCanceledException

java.lang.Throwable: Control-flow exceptions (like ProcessCanceledException) should never be logged
	at com.intellij.openapi.diagnostic.Logger.checkException(Logger.java:198)
	at com.intellij.idea.IdeaLogger.error(IdeaLogger.java:88)
	at com.intellij.openapi.diagnostic.Logger.error(Logger.java:172)
	at krasa.editorGroups.index.EditorGroupIndexer.add(EditorGroupIndexer.java:116)
	at krasa.editorGroups.index.EditorGroupIndexer.map(EditorGroupIndexer.java:82)
	at krasa.editorGroups.index.EditorGroupIndexer.map(EditorGroupIndexer.java:28)
	at com.intellij.util.indexing.impl.MapReduceIndex.mapByIndexer(MapReduceIndex.java:317)
	at com.intellij.util.indexing.impl.MapReduceIndex.mapInput(MapReduceIndex.java:309)
	at com.intellij.util.indexing.VfsAwareMapReduceIndex.mapInput(VfsAwareMapReduceIndex.java:150)
	at com.intellij.util.indexing.VfsAwareMapReduceIndex.mapInput(VfsAwareMapReduceIndex.java:40)
	at com.intellij.util.indexing.impl.MapReduceIndex.calculateUpdateData(MapReduceIndex.java:267)
	at com.intellij.util.indexing.impl.MapReduceIndex.update(MapReduceIndex.java:239)
	at com.intellij.util.indexing.FileBasedIndexImpl.updateSingleIndex(FileBasedIndexImpl.java:1253)
	at com.intellij.util.indexing.FileBasedIndexImpl.lambda$doIndexFileContent$20(FileBasedIndexImpl.java:1181)
	at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.freezeFileTypeTemporarilyIn(FileTypeManagerImpl.java:722)
	at com.intellij.util.indexing.FileBasedIndexImpl.doIndexFileContent(FileBasedIndexImpl.java:1161)
	at com.intellij.util.indexing.FileBasedIndexImpl.indexFileContent(FileBasedIndexImpl.java:1147)
	at com.intellij.util.indexing.UnindexedFilesUpdater.lambda$indexFiles$2(UnindexedFilesUpdater.java:130)
	at com.intellij.openapi.project.CacheUpdateRunner.lambda$null$1(CacheUpdateRunner.java:224)
	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1106)
	at com.intellij.openapi.project.CacheUpdateRunner.lambda$null$2(CacheUpdateRunner.java:240)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:166)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:627)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:572)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:61)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:153)
	at com.intellij.openapi.project.CacheUpdateRunner.lambda$createRunnable$3(CacheUpdateRunner.java:237)
	at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:210)
	at com.intellij.util.ConcurrencyUtil.lambda$underThreadNameRunnable$3(ConcurrencyUtil.java:198)
	at com.intellij.util.RunnableCallable.call(RunnableCallable.java:20)
	at com.intellij.util.RunnableCallable.call(RunnableCallable.java:11)
	at com.intellij.openapi.application.impl.ApplicationImpl$1.call(ApplicationImpl.java:255)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: com.intellij.openapi.progress.ProcessCanceledException
	at com.intellij.openapi.progress.util.AbstractProgressIndicatorBase.throwIfCanceled(AbstractProgressIndicatorBase.java:135)
	at com.intellij.openapi.progress.util.AbstractProgressIndicatorBase.checkCanceled(AbstractProgressIndicatorBase.java:126)
	at com.intellij.openapi.progress.util.AbstractProgressIndicatorExBase.checkCanceled(AbstractProgressIndicatorExBase.java:101)
	at com.intellij.openapi.progress.util.ProgressWrapper.checkCanceled(ProgressWrapper.java:96)
	at com.intellij.openapi.progress.impl.CoreProgressManager.doCheckCanceled(CoreProgressManager.java:124)
	at com.intellij.openapi.progress.ProgressManager.checkCanceled(ProgressManager.java:225)
	at krasa.editorGroups.support.FileResolver.resolve2(FileResolver.java:122)
	at krasa.editorGroups.support.FileResolver.resolve(FileResolver.java:100)
	at krasa.editorGroups.support.FileResolver.resolveLinks(FileResolver.java:65)
	at krasa.editorGroups.support.FileResolver.resolveLinks(FileResolver.java:60)
	at krasa.editorGroups.IndexCache.initGroup(IndexCache.java:158)
	at krasa.editorGroups.IndexCache.onIndexingDone(IndexCache.java:149)
	at krasa.editorGroups.PanelRefresher.onIndexingDone(PanelRefresher.java:201)
	at krasa.editorGroups.index.EditorGroupIndexer.add(EditorGroupIndexer.java:114)
	... 32 more

Exception: Why no corresponding open request?

Exception in CLion 2020.1 EAP (Editor Groups 0.29):
(Please make it possible to submit this from CLion directly)

java.lang.AssertionError: Why no corresponding open request?
	at com.jetbrains.cidr.lang.daemon.clang.clangd.lsp.ClangdLanguageService.a(ClangdLanguageService.java:541)
	at com.jetbrains.cidr.lang.daemon.clang.clangd.lsp.ClangdLanguageService.b(ClangdLanguageService.java:525)
	at com.jetbrains.cidr.lang.daemon.clang.clangd.registry.AbstractClangWorkspace.a(AbstractClangWorkspace.java:48)
	at com.jetbrains.cidr.lang.daemon.clang.clangd.registry.AbstractClangWorkspace.applyImpl(AbstractClangWorkspace.java:70)
	at com.jetbrains.cidr.lang.daemon.clang.clangd.registry.AbstractClangWorkspace.b(AbstractClangWorkspace.java:47)
	at com.jetbrains.cidr.lang.daemon.clang.clangd.registry.AbstractClangWorkspace.a(AbstractClangWorkspace.java:43)
	at com.intellij.openapi.application.ReadAction.lambda$run$1(ReadAction.java:52)
	at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:801)
	at com.intellij.openapi.application.ReadAction.compute(ReadAction.java:61)
	at com.intellij.openapi.application.ReadAction.run(ReadAction.java:51)
	at com.jetbrains.cidr.lang.daemon.clang.clangd.registry.AbstractClangWorkspace.modifyWithRead(AbstractClangWorkspace.java:43)
	at com.jetbrains.cidr.lang.daemon.clang.clangd.lsp.ClangdLanguageService.notifyDocumentClosed(ClangdLanguageService.java:514)
	at com.jetbrains.cidr.lang.daemon.clang.clangd.startup.ClangLanguageServiceStartupActivity$2.editorReleased(ClangLanguageServiceStartupActivity.java:109)
	at jdk.internal.reflect.GeneratedMethodAccessor381.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at com.intellij.util.EventDispatcher.dispatchVoidMethod(EventDispatcher.java:127)
	at com.intellij.util.EventDispatcher.access$000(EventDispatcher.java:21)
	at com.intellij.util.EventDispatcher$1.invoke(EventDispatcher.java:85)
	at com.sun.proxy.$Proxy90.editorReleased(Unknown Source)
	at com.intellij.openapi.editor.impl.EditorFactoryImpl.releaseEditor(EditorFactoryImpl.java:219)
	at com.intellij.openapi.fileEditor.impl.text.TextEditorComponent.disposeEditor(TextEditorComponent.java:158)
	at com.intellij.openapi.fileEditor.impl.text.TextEditorComponent.dispose(TextEditorComponent.java:105)
	at com.intellij.openapi.fileEditor.impl.text.PsiAwareTextEditorImpl$PsiAwareTextEditorComponent.dispose(PsiAwareTextEditorImpl.java:117)
	at com.intellij.openapi.util.ObjectNode.lambda$execute$0(ObjectNode.java:111)
	at com.intellij.openapi.util.ObjectTree.executeActionWithRecursiveGuard(ObjectTree.java:184)
	at com.intellij.openapi.util.ObjectNode.execute(ObjectNode.java:71)
	at com.intellij.openapi.util.ObjectNode.lambda$execute$0(ObjectNode.java:95)
	at com.intellij.openapi.util.ObjectTree.executeActionWithRecursiveGuard(ObjectTree.java:184)
	at com.intellij.openapi.util.ObjectNode.execute(ObjectNode.java:71)
	at com.intellij.openapi.util.ObjectTree.executeAll(ObjectTree.java:134)
	at com.intellij.openapi.util.Disposer.dispose(Disposer.java:116)
	at com.intellij.openapi.util.Disposer.dispose(Disposer.java:106)
	at com.intellij.openapi.fileEditor.FileEditorProvider.disposeEditor(FileEditorProvider.java:52)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.disposeComposite(FileEditorManagerImpl.java:1600)
	at com.intellij.openapi.fileEditor.impl.EditorWindow.lambda$closeFile$3(EditorWindow.java:185)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.runBulkTabChange(FileEditorManagerImpl.java:1639)
	at com.intellij.openapi.fileEditor.impl.EditorWindow.closeFile(EditorWindow.java:166)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.lambda$closeFile$1(FileEditorManagerImpl.java:572)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:212)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:178)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:168)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:154)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.closeFile(FileEditorManagerImpl.java:570)
	at krasa.editorGroups.EditorGroupManager.lambda$open2$2(EditorGroupManager.java:421)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:220)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:178)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:168)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:154)
	at krasa.editorGroups.EditorGroupManager.open2(EditorGroupManager.java:340)
	at krasa.editorGroups.EditorGroupManager.open(EditorGroupManager.java:309)
	at krasa.editorGroups.EditorGroupPanel.openFile(EditorGroupPanel.java:601)
	at krasa.editorGroups.EditorGroupPanel.access$200(EditorGroupPanel.java:65)
	at krasa.editorGroups.EditorGroupPanel$5.execute(EditorGroupPanel.java:220)
	at krasa.editorGroups.tabs2.impl.JBTabsImpl._setSelected(JBTabsImpl.java:979)
	at krasa.editorGroups.tabs2.impl.JBTabsImpl.select(JBTabsImpl.java:969)
	at krasa.editorGroups.tabs2.impl.TabLabel$1.mousePressed(TabLabel.java:78)
	at krasa.editorGroups.tabs2.my.MyJBEditorTabs$MyMouseAdapter.mousePressed(MyJBEditorTabs.java:222)
	at java.desktop/java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:287)
	at java.desktop/java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:287)
	at java.desktop/java.awt.Component.processMouseEvent(Component.java:6648)
	at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
	at java.desktop/java.awt.Component.processEvent(Component.java:6416)
	at java.desktop/java.awt.Container.processEvent(Container.java:2263)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5026)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4858)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
	at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4544)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
	at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2773)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4858)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:778)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:751)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:749)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:748)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:933)
	at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:871)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:803)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:433)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:713)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:432)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

IJ 2020 IndexNotReadyException

krasa.editorGroups.IndexNotReady: >getGroup project = [EditorGroups], fileEditor = [Editor: file://F:/workspace/_projekty/Github/EditorGroups/src/krasa/editorGroups/AutoGroupProvider.java], displayedGroup = [EditorGroupIndexValue{id='NOT_EXISTS', ownerFile='', root='', title='NOT_EXISTS', backgroundColor='', foregroundColor='', relatedPaths=[], valid=false}], requestedGroup = [EditorGroupIndexValue{id='NOT_EXISTS', ownerFile='', root='', title='NOT_EXISTS', backgroundColor='', foregroundColor='', relatedPaths=[], valid=false}], force = [false]
	at krasa.editorGroups.EditorGroupManager.getGroup(EditorGroupManager.java:188)
	at krasa.editorGroups.EditorGroupPanel$9.call(EditorGroupPanel.java:837)
	at krasa.editorGroups.EditorGroupPanel$9.call(EditorGroupPanel.java:833)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.insideReadAction(NonBlockingReadActionImpl.java:471)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$attemptComputation$2(NonBlockingReadActionImpl.java:428)
	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:971)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runInReadActionWithWriteActionPriority$0(ProgressIndicatorUtils.java:75)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runWithWriteActionPriority$1(ProgressIndicatorUtils.java:129)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:162)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:577)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:523)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:59)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:149)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runWithWriteActionPriority(ProgressIndicatorUtils.java:118)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runInReadActionWithWriteActionPriority(ProgressIndicatorUtils.java:75)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.attemptComputation(NonBlockingReadActionImpl.java:436)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$transferToBgThread$0(NonBlockingReadActionImpl.java:377)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: com.intellij.openapi.project.IndexNotReadyException: Please change caller according to com.intellij.openapi.project.IndexNotReadyException documentation
	at com.intellij.openapi.project.IndexNotReadyException.create(IndexNotReadyException.java:81)
	at com.intellij.util.indexing.FileBasedIndexImpl.handleDumbMode(FileBasedIndexImpl.java:746)
	at com.intellij.util.indexing.FileBasedIndexImpl.ensureUpToDate(FileBasedIndexImpl.java:702)
	at com.intellij.util.indexing.FileBasedIndexEx.processExceptions(FileBasedIndexEx.java:194)
	at com.intellij.util.indexing.FileBasedIndexEx.processValueIterator(FileBasedIndexEx.java:274)
	at com.intellij.util.indexing.FileBasedIndexEx.processValuesInScope(FileBasedIndexEx.java:245)
	at com.intellij.util.indexing.FileBasedIndexEx.getValues(FileBasedIndexEx.java:81)
	at krasa.editorGroups.IndexCache.getGroupFromIndexById(IndexCache.java:107)
	at krasa.editorGroups.IndexCache.getById(IndexCache.java:71)
	at krasa.editorGroups.IndexCache.getLastEditorGroup(IndexCache.java:195)
	at krasa.editorGroups.EditorGroupManager.getGroup(EditorGroupManager.java:129)
	... 19 more

Open Issues

Missing Features:

  • indexing
  • toolwindow
  • switching between groups for a single file
  • update caches on file system changes
  • language support
    • grammar + PSI / YAML?
    • refactoring support
    • remove from group, add to group actions

Broken things:

  • panel scrollling
  • using it in multiple editor windows (floating, splitted)
  • tab title needs to get updated after switching groups
  • nicer tab reusing - for some reason some specific files move the tab
  • EditorTabTitleProvider has bad design, two identical files in two windows, in two groups rewrite each others title - https://youtrack.jetbrains.com/issue/IDEA-192305
  • cache concurrency

Nice to have:

  • get JetBrains to fix the flickering when switching files - the panel is created too late
  • pattern support for @idea.related including Project and Module macro
  • include all when extension is not defined
  • include by name from the whole project
  • custom rendering for file buttons
  • autogroup by current folder
  • autogroup by current filename
  • integrate Favourites groups
  • unique button file names

Exception

java.lang.NullPointerException
	at java.desktop/java.awt.BorderLayout.layoutContainer(BorderLayout.java:808)
	at krasa.editorGroups.EditorGroupPanel.postConstruct(EditorGroupPanel.java:279)
	at krasa.editorGroups.ProjectComponent$1.createPanel(ProjectComponent.java:71)
	at krasa.editorGroups.ProjectComponent$1.fileOpenedSync(ProjectComponent.java:54)
	at com.intellij.util.messages.impl.MessageBusImpl.invokeMethod(MessageBusImpl.java:674)
	at com.intellij.util.messages.impl.MessageBusImpl.invokeListener(MessageBusImpl.java:649)
	at com.intellij.util.messages.impl.MessageBusImpl.deliverMessage(MessageBusImpl.java:422)
	at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:397)
	at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:379)
	at com.intellij.util.messages.impl.MessageBusImpl.access$100(MessageBusImpl.java:33)
	at com.intellij.util.messages.impl.MessageBusImpl$MessagePublisher.invoke(MessageBusImpl.java:185)
	at com.sun.proxy.$Proxy96.fileOpenedSync(Unknown Source)
	at com.jetbrains.rdserver.editors.BackendServerFileEditorManager$openRemoteEditor$1.run(BackendServerFileEditorManager.kt:129)
	at com.intellij.openapi.application.impl.ApplicationImpl.invokeAndWait(ApplicationImpl.java:433)
	at com.intellij.openapi.application.impl.ApplicationImpl.invokeAndWait(ApplicationImpl.java:451)
	at com.jetbrains.rdserver.editors.BackendServerFileEditorManager.openRemoteEditor(BackendServerFileEditorManager.kt:85)
	at com.jetbrains.rdserver.editors.BackendServerFileEditorManager.openFileImpl4(BackendServerFileEditorManager.kt:68)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileImpl3(FileEditorManagerImpl.java:819)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.lambda$openFileImpl2$14(FileEditorManagerImpl.java:800)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:206)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:172)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:162)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:148)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileImpl2(FileEditorManagerImpl.java:800)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileWithProviders(FileEditorManagerImpl.java:686)
	at com.intellij.openapi.fileEditor.ex.FileEditorManagerEx.openFile(FileEditorManagerEx.java:126)
	at com.jetbrains.rdserver.editors.FollowMeSynchronizer.syncFollower(FollowMeSynchronizer.kt:48)
	at com.jetbrains.rdserver.editors.FollowMeSynchronizer.selectionChanged(FollowMeSynchronizer.kt:103)
	at com.intellij.util.messages.impl.MessageBusImpl.invokeMethod(MessageBusImpl.java:674)
	at com.intellij.util.messages.impl.MessageBusImpl.invokeListener(MessageBusImpl.java:649)
	at com.intellij.util.messages.impl.MessageBusImpl.deliverMessage(MessageBusImpl.java:422)
	at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:393)
	at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:379)
	at com.intellij.util.messages.impl.MessageBusImpl.access$100(MessageBusImpl.java:33)
	at com.intellij.util.messages.impl.MessageBusImpl$MessagePublisher.invoke(MessageBusImpl.java:178)
	at com.sun.proxy.$Proxy167.activeEditorsChanged(Unknown Source)
	at com.intellij.codeInsight.daemon.impl.EditorTracker.setActiveEditors(EditorTracker.java:207)
	at com.jetbrains.rdserver.daemon.RdServerEditorTracker.setActiveEditors(RdServerEditorTracker.kt:49)
	at com.intellij.codeInsight.daemon.impl.EditorTracker.setActiveWindow(EditorTracker.java:187)
	at com.intellij.codeInsight.daemon.impl.EditorTracker$1.selectionChanged(EditorTracker.java:56)
	at com.intellij.util.messages.impl.MessageBusImpl.invokeMethod(MessageBusImpl.java:674)
	at com.intellij.util.messages.impl.MessageBusImpl.invokeListener(MessageBusImpl.java:649)
	at com.intellij.util.messages.impl.MessageBusImpl.deliverMessage(MessageBusImpl.java:422)
	at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:397)
	at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:379)
	at com.intellij.util.messages.impl.MessageBusImpl.access$100(MessageBusImpl.java:33)
	at com.intellij.util.messages.impl.MessageBusImpl$MessagePublisher.invoke(MessageBusImpl.java:185)
	at com.sun.proxy.$Proxy96.selectionChanged(Unknown Source)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.lambda$fireSelectionChanged$29(FileEditorManagerImpl.java:1599)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl$6.lambda$run$0(FileEditorManagerImpl.java:1073)
	at com.intellij.openapi.util.ExpirableRunnable$1.run(ExpirableRunnable.java:17)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.lambda$doWhenFocusSettlesDown$3(FocusManagerImpl.java:182)
	at com.intellij.util.ui.EdtInvocationManager.invokeLaterIfNeeded(EdtInvocationManager.java:101)
	at com.intellij.ide.IdeEventQueue.ifFocusEventsInTheQueue(IdeEventQueue.java:187)
	at com.intellij.ide.IdeEventQueue.executeWhenAllFocusEventsLeftTheQueue(IdeEventQueue.java:139)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.doWhenFocusSettlesDown(FocusManagerImpl.java:173)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.doWhenFocusSettlesDown(FocusManagerImpl.java:179)
	at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.doWhenFocusSettlesDown(IdeFocusManagerImpl.java:41)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl$6.run(FileEditorManagerImpl.java:1072)
	at com.intellij.openapi.util.BusyObject$Impl$Simple.execute(BusyObject.java:105)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.notifyPublisher(FileEditorManagerImpl.java:1069)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.fireSelectionChanged(FileEditorManagerImpl.java:1599)
	at com.intellij.openapi.fileEditor.impl.EditorsSplitters.lambda$setCurrentWindow$9(EditorsSplitters.java:704)
	at com.intellij.openapi.fileEditor.impl.EditorsSplitters.setCurrentWindow(EditorsSplitters.java:713)
	at com.intellij.openapi.fileEditor.impl.EditorWindow.setEditor(EditorWindow.java:573)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileImpl4Edt(FileEditorManagerImpl.java:939)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.lambda$openFileImpl4$17(FileEditorManagerImpl.java:875)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.runBulkTabChange(FileEditorManagerImpl.java:1693)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.lambda$openFileImpl4$18(FileEditorManagerImpl.java:874)
	at com.intellij.openapi.application.impl.ApplicationImpl.invokeAndWait(ApplicationImpl.java:433)
	at com.intellij.openapi.application.impl.ApplicationImpl.invokeAndWait(ApplicationImpl.java:451)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileImpl4(FileEditorManagerImpl.java:873)
	at com.jetbrains.rdserver.editors.BackendServerFileEditorManager.openFileImpl4(BackendServerFileEditorManager.kt:65)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileImpl3(FileEditorManagerImpl.java:819)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.lambda$openFileImpl2$14(FileEditorManagerImpl.java:800)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:206)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:172)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:162)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:148)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileImpl2(FileEditorManagerImpl.java:800)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileWithProviders(FileEditorManagerImpl.java:686)
	at com.intellij.openapi.fileEditor.ex.FileEditorManagerEx.openFile(FileEditorManagerEx.java:131)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.lambda$openEditorImpl$21(FileEditorManagerImpl.java:1167)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:206)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:172)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:162)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:148)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openEditorImpl(FileEditorManagerImpl.java:1165)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.doOpenTextEditor(FileEditorManagerImpl.java:1234)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openTextEditor(FileEditorManagerImpl.java:1229)
	at com.intellij.codeInsight.daemon.impl.quickfix.CreateFromUsageBaseFix.positionCursor(CreateFromUsageBaseFix.java:126)
	at com.intellij.lang.java.actions.JavaMethodRenderer.startTemplate(CreateMethodAction.kt:136)
	at com.intellij.lang.java.actions.JavaMethodRenderer.doMagic(CreateMethodAction.kt:77)
	at com.intellij.lang.java.actions.CreateMethodAction.invoke(CreateMethodAction.kt:54)
	at com.intellij.codeInsight.intention.impl.IntentionActionWithTextCaching$MyIntentionAction.invoke(IntentionActionWithTextCaching.java:208)
	at com.intellij.codeInsight.intention.impl.ShowIntentionActionsHandler.lambda$invokeIntention$4(ShowIntentionActionsHandler.java:250)
	at com.intellij.openapi.application.WriteAction.lambda$run$1(WriteAction.java:105)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteActionWithClass(ApplicationImpl.java:965)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:991)
	at com.intellij.openapi.application.WriteAction.run(WriteAction.java:104)
	at com.intellij.codeInsight.intention.impl.ShowIntentionActionsHandler.invokeIntention(ShowIntentionActionsHandler.java:250)
	at com.intellij.codeInsight.intention.impl.ShowIntentionActionsHandler.lambda$chooseActionAndInvoke$3(ShowIntentionActionsHandler.java:226)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:215)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:172)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:162)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:148)
	at com.intellij.codeInsight.intention.impl.ShowIntentionActionsHandler.chooseActionAndInvoke(ShowIntentionActionsHandler.java:225)
	at com.intellij.codeInsight.intention.impl.IntentionListStep.lambda$applyAction$3(IntentionListStep.java:128)
	at com.intellij.util.ui.EdtInvocationManager.invokeLaterIfNeeded(EdtInvocationManager.java:101)
	at com.intellij.ide.IdeEventQueue.ifFocusEventsInTheQueue(IdeEventQueue.java:187)
	at com.intellij.ide.IdeEventQueue.executeWhenAllFocusEventsLeftTheQueue(IdeEventQueue.java:139)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.doWhenFocusSettlesDown(FocusManagerImpl.java:173)
	at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.doWhenFocusSettlesDown(IdeFocusManagerImpl.java:36)
	at com.intellij.codeInsight.intention.impl.IntentionListStep.lambda$applyAction$4(IntentionListStep.java:127)
	at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:221)
	at com.intellij.openapi.application.TransactionGuardImpl.access$200(TransactionGuardImpl.java:24)
	at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:203)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:799)
	at com.intellij.openapi.application.impl.ApplicationImpl.lambda$invokeLater$4(ApplicationImpl.java:322)
	at com.intellij.codeWithMe.ClientId$Companion.withClientId(ClientId.kt:106)
	at com.intellij.codeWithMe.ClientId.withClientId(ClientId.kt)
	at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:81)
	at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:133)
	at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:46)
	at com.intellij.openapi.application.impl.FlushQueue$FlushNow.run(FlushQueue.java:189)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:972)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:838)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:448)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:775)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$9(IdeEventQueue.java:447)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:799)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:495)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Group by same file name in custom group

Currently there is no way (as far as I know) to define your own group that matches files from one directory to files in another directory but only if they have the same filename. You can only match using a regex which when using a wildcard lists all files that match the regex, also the ones that don't match (part of) the current file name.

Example

+ layout
| - header.html
| - body.html
+ scss
| - header.scss
| - body.scss
+ docs
| - header.md
| - body.md

Just a random example from the top of my head to demonstrate. I would like to match files from layout to files in scss only. If I use the same file name group, It also groups files from the docs directory, which are unrelated.

Proposal

FILENAME Macro

Introduce a FILENAME macro that is replaced by the current file name without the extension. This would allow for a syntax like:

@group.id layout
@group.related layout/FILENAME.html
@group.related scss/FILENAME.scss

Or when placed in layout for example:

@group.id layout
@group.related ../scss/FILENAME.scss

If I'm correct, this would do what I want.

Add ability to use selected file name as input to Regex to auto-match files based on source file

I'm really enjoying the plugin so far. Honestly feels like something that should be baked into the editor.

One thing I tried myself was to make a regex group that matches MVVM files (*View|*ViewModel), but without a source file name to match against, I could only end up with every view and viewmodel file in the project.

I'm imagining this could be extended to other kinds of auto-related files, like *Tests matching Class.cs to ClassTests.cs, or *Service|*Repository|*Check matching MyClass.cs to MyClassService.cs, MyClassRepository.cs, and MyClassCheck.cs.

I think there would have to be some kind of partial name matching (i.e. extracting MyClass from MyClassService.cs), but since many files are named with this convention, it could be another very fast way to group related files.

Let me know your thoughts on this, if I need to explain my idea more or if it's possible but not quite as I've laid out.
Thanks, and keep up the great work!

Plugin is crashed in Rider version 19.2.2

StackTrace:
ExternalExportService.cs

java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.NoClassDefFoundError: com/intellij/mock/MockVirtualFile
at krasa.editorGroups.EditorGroupPanel.getGroupInReadActionWithRetries(EditorGroupPanel.java:852)
at krasa.editorGroups.EditorGroupPanel.refresh3(EditorGroupPanel.java:746)
at krasa.editorGroups.EditorGroupPanel.access$1000(EditorGroupPanel.java:65)
at krasa.editorGroups.EditorGroupPanel$8.run(EditorGroupPanel.java:723)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:207)
at com.intellij.util.concurrency.BoundedTaskExecutor.access$100(BoundedTaskExecutor.java:29)
at com.intellij.util.concurrency.BoundedTaskExecutor$1.lambda$run$0(BoundedTaskExecutor.java:185)
at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:208)
at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:181)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.util.concurrent.ExecutionException: java.lang.NoClassDefFoundError: com/intellij/mock/MockVirtualFile
at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:395)
at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1999)
at org.jetbrains.concurrency.AsyncPromise.get(AsyncPromise.kt:19)
at krasa.editorGroups.EditorGroupPanel.getGroupInReadActionWithRetries(EditorGroupPanel.java:843)
... 13 more
Caused by: java.lang.NoClassDefFoundError: com/intellij/mock/MockVirtualFile
at krasa.editorGroups.AutoGroupProvider.getFolderGroup(AutoGroupProvider.java:47)
at krasa.editorGroups.EditorGroupManager.getGroup(EditorGroupManager.java:169)
at krasa.editorGroups.EditorGroupPanel$9.call(EditorGroupPanel.java:837)
at krasa.editorGroups.EditorGroupPanel$9.call(EditorGroupPanel.java:833)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.insideReadAction(NonBlockingReadActionImpl.java:162)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$null$2(NonBlockingReadActionImpl.java:140)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1106)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runInReadActionWithWriteActionPriority$0(ProgressIndicatorUtils.java:72)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runWithWriteActionPriority$1(ProgressIndicatorUtils.java:126)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:169)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:591)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:537)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:59)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:156)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runWithWriteActionPriority(ProgressIndicatorUtils.java:115)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runInReadActionWithWriteActionPriority(ProgressIndicatorUtils.java:72)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$transferToBgThread$6(NonBlockingReadActionImpl.java:140)
... 3 more
Caused by: java.lang.ClassNotFoundException: com.intellij.mock.MockVirtualFile PluginClassLoader[EditorGroups, 0.28] com.intellij.ide.plugins.cl.PluginClassLoader@6c6dca22
at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:75)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 20 more


Following exceptions happened soon after this one, most probably they are induced.

2019-09-03T09:09:36.037
ExternalExportManager.Form.cs
java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.NoClassDefFoundError: com/intellij/mock/MockVirtualFile
at krasa.editorGroups.EditorGroupPanel.getGroupInReadActionWithRetries(EditorGroupPanel.java:852)
at krasa.editorGroups.EditorGroupPanel.refresh3(EditorGroupPanel.java:746)
at krasa.editorGroups.EditorGroupPanel.access$1000(EditorGroupPanel.java:65)
at krasa.editorGroups.EditorGroupPanel$8.run(EditorGroupPanel.java:723)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:207)
at com.intellij.util.concurrency.BoundedTaskExecutor.access$100(BoundedTaskExecutor.java:29)
at com.intellij.util.concurrency.BoundedTaskExecutor$1.lambda$run$0(BoundedTaskExecutor.java:185)
at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:208)
at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:181)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.util.concurrent.ExecutionException: java.lang.NoClassDefFoundError: com/intellij/mock/MockVirtualFile
at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:395)
at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1999)
at org.jetbrains.concurrency.AsyncPromise.get(AsyncPromise.kt:19)
at krasa.editorGroups.EditorGroupPanel.getGroupInReadActionWithRetries(EditorGroupPanel.java:843)
... 13 more
Caused by: java.lang.NoClassDefFoundError: com/intellij/mock/MockVirtualFile
at krasa.editorGroups.AutoGroupProvider.getFolderGroup(AutoGroupProvider.java:47)
at krasa.editorGroups.EditorGroupManager.getGroup(EditorGroupManager.java:169)
at krasa.editorGroups.EditorGroupPanel$9.call(EditorGroupPanel.java:837)
at krasa.editorGroups.EditorGroupPanel$9.call(EditorGroupPanel.java:833)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.insideReadAction(NonBlockingReadActionImpl.java:162)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$null$2(NonBlockingReadActionImpl.java:140)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1106)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runInReadActionWithWriteActionPriority$0(ProgressIndicatorUtils.java:72)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runWithWriteActionPriority$1(ProgressIndicatorUtils.java:126)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:169)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:591)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:537)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:59)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:156)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runWithWriteActionPriority(ProgressIndicatorUtils.java:115)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runInReadActionWithWriteActionPriority(ProgressIndicatorUtils.java:72)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$transferToBgThread$6(NonBlockingReadActionImpl.java:140)
... 3 more
Caused by: java.lang.ClassNotFoundException: com.intellij.mock.MockVirtualFile PluginClassLoader[EditorGroups, 0.28] com.intellij.ide.plugins.cl.PluginClassLoader@6c6dca22
at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:75)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 20 more

Suggestion: Remove Redundancy from Tab Titles

Regex queries that match files with the same basename (e.g. (.*)(ts|scss|html)) cause the tab titles to contain the same name, with only the extensions differing.

Screenshot 2023-09-14 at 14 33 13

It would be handy to have an option to either

  • remove every part of the title strings that is occurring in all other titles.
  • remove the folder from the title string
  • remove parts of the title string based on a regex (or even a search replace regex)

Error on symlinked file in IntelliJ Ultimate on Windows 10

Hi,
I haven't used the new plugin much yet, but I did notice this error today:

current file is not contained in group file://C:/projectfolder/config.xml FolderGroup{links=33}
java.lang.Throwable: current file is not contained in group file://C:/projectfolder/config.xml FolderGroup{links=33}
	at com.intellij.openapi.diagnostic.Logger.error(Logger.java:123)
	at krasa.editorGroups.EditorGroupPanel.addCurrentFileTab(EditorGroupPanel.java:340)
	at krasa.editorGroups.EditorGroupPanel.reloadTabs(EditorGroupPanel.java:295)
	at krasa.editorGroups.EditorGroupPanel.render2(EditorGroupPanel.java:695)
	at krasa.editorGroups.EditorGroupPanel.postConstruct(EditorGroupPanel.java:242)
	at krasa.editorGroups.ProjectComponent$1.createPanel(ProjectComponent.java:65)
	at krasa.editorGroups.ProjectComponent$1.fileOpened(ProjectComponent.java:83)
	at sun.reflect.GeneratedMethodAccessor84.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.intellij.util.messages.impl.MessageBusConnectionImpl.deliverMessage(MessageBusConnectionImpl.java:117)
	at com.intellij.util.messages.impl.MessageBusImpl.doPumpMessages(MessageBusImpl.java:426)
	at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:387)
	at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:376)
	at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:364)
	at com.intellij.util.messages.impl.MessageBusImpl.sendMessage(MessageBusImpl.java:357)
	at com.intellij.util.messages.impl.MessageBusImpl.access$200(MessageBusImpl.java:43)
	at com.intellij.util.messages.impl.MessageBusImpl$2.invoke(MessageBusImpl.java:208)
	at com.sun.proxy.$Proxy116.fileOpened(Unknown Source)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.lambda$null$8(FileEditorManagerImpl.java:926)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl$5$1.run(FileEditorManagerImpl.java:1019)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.lambda$doWhenFocusSettlesDown$2(FocusManagerImpl.java:199)
	at com.intellij.util.ui.UIUtil.invokeLaterIfNeeded(UIUtil.java:2886)
	at com.intellij.ide.IdeEventQueue.ifFocusEventsInTheQueue(IdeEventQueue.java:173)
	at com.intellij.ide.IdeEventQueue.executeWhenAllFocusEventsLeftTheQueue(IdeEventQueue.java:132)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.doWhenFocusSettlesDown(FocusManagerImpl.java:190)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.doWhenFocusSettlesDown(FocusManagerImpl.java:196)
	at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.doWhenFocusSettlesDown(IdeFocusManagerImpl.java:61)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl$5.run(FileEditorManagerImpl.java:1016)
	at com.intellij.openapi.util.BusyObject$Impl$Simple.execute(BusyObject.java:108)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.notifyPublisher(FileEditorManagerImpl.java:1012)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.lambda$openFileImpl4$9(FileEditorManagerImpl.java:923)
	at com.intellij.openapi.application.impl.ApplicationImpl.invokeAndWait(ApplicationImpl.java:643)
	at com.intellij.openapi.application.impl.ApplicationImpl.invokeAndWait(ApplicationImpl.java:656)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileImpl4(FileEditorManagerImpl.java:947)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileImpl3(FileEditorManagerImpl.java:776)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.lambda$openFileImpl2$4(FileEditorManagerImpl.java:758)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:137)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:95)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:85)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:71)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileImpl2(FileEditorManagerImpl.java:758)
	at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileWithProviders(FileEditorManagerImpl.java:689)
	at com.intellij.openapi.fileEditor.ex.FileEditorManagerEx.openFile(FileEditorManagerEx.java:155)
	at com.intellij.codeInsight.navigation.NavigationUtil.activatePsiElementIfOpen(NavigationUtil.java:213)
	at com.intellij.codeInsight.navigation.NavigationUtil.openFileWithPsiElement(NavigationUtil.java:189)
	at com.intellij.ide.projectView.impl.nodes.AbstractPsiBasedNode.navigate(AbstractPsiBasedNode.java:227)
	at com.intellij.util.OpenSourceUtil.navigate(OpenSourceUtil.java:63)
	at com.intellij.ui.AutoScrollToSourceHandler.lambda$null$2(AutoScrollToSourceHandler.java:201)
	at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:88)
	at com.intellij.openapi.application.TransactionGuardImpl.lambda$submitTransaction$1(TransactionGuardImpl.java:111)
	at com.intellij.openapi.application.TransactionGuardImpl.submitTransaction(TransactionGuardImpl.java:120)
	at com.intellij.openapi.application.TransactionGuard.submitTransaction(TransactionGuard.java:122)
	at com.intellij.ui.AutoScrollToSourceHandler.lambda$scrollToSource$3(AutoScrollToSourceHandler.java:180)
	at com.intellij.openapi.util.ExecutionCallback.doWhenExecuted(ExecutionCallback.java:100)
	at com.intellij.openapi.util.ActionCallback.doWhenDone(ActionCallback.java:111)
	at com.intellij.ui.AutoScrollToSourceHandler.scrollToSource(AutoScrollToSourceHandler.java:180)
	at com.intellij.ui.AutoScrollToSourceHandler.lambda$onMouseClicked$0(AutoScrollToSourceHandler.java:146)
	at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:315)
	at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.doRun(LaterInvocator.java:447)
	at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:431)
	at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:415)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:762)
	at java.awt.EventQueue.access$500(EventQueue.java:98)
	at java.awt.EventQueue$3.run(EventQueue.java:715)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:732)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:786)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:727)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:395)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

I don't know if it's because it's a symlink or not, but that file is a symlink to a file outside the project directory. Here's my system version info:

IntelliJ IDEA 2018.1.5 (Ultimate Edition)
Build #IU-181.5281.24, built on June 12, 2018
JRE: 1.8.0_152-release-1136-b39 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 10 10.0

Regards,
Brett

Hide excluded files in the "Current directory" group

When the "current directory" group is displayed, the ignored files (Settings -> Editor -> File Types -> Ignored files and folders) are still shown and clutter the screen.
Please add an option to not display them in the group.

IllegalArgumentException

update failed for AnAction(krasa.editorGroups.actions.RemoveFromCurrentFavoritesAction) with ID=krasa.editorGroups.actions.RemoveFromCurrentFavorites

java.lang.IllegalArgumentException: Argument for @NotNull parameter 'project' of com/intellij/openapi/fileEditor/FileEditorManager.getInstance must not be null
	at com.intellij.openapi.fileEditor.FileEditorManager.$$$reportNull$$$0(FileEditorManager.java)
	at com.intellij.openapi.fileEditor.FileEditorManager.getInstance(FileEditorManager.java)
	at krasa.editorGroups.actions.RemoveFromCurrentFavoritesAction.getFavoritesGroup(RemoveFromCurrentFavoritesAction.java:144)
	at krasa.editorGroups.actions.RemoveFromCurrentFavoritesAction.update(RemoveFromCurrentFavoritesAction.java:127)
	at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareUpdate(ActionUtil.java:182)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.doUpdate(ActionUpdater.java:444)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$null$1(ActionUpdater.java:93)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.callAction(ActionUpdater.java:130)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$new$2(ActionUpdater.java:94)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.update(ActionUpdater.java:427)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.expandGroupChild(ActionUpdater.java:290)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$doExpandActionGroup$19(ActionUpdater.java:270)
	at com.intellij.util.containers.ContainerUtil.concat(ContainerUtil.java:1707)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.doExpandActionGroup(ActionUpdater.java:270)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.expandActionGroup(ActionUpdater.java:181)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.expandActionGroup(ActionUpdater.java:155)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$expandActionGroupWithTimeout$11(ActionUpdater.java:197)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$3(CoreProgressManager.java:179)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:163)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:585)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:531)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:59)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:150)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:179)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.withTimeout(ProgressIndicatorUtils.java:277)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.expandActionGroupWithTimeout(ActionUpdater.java:197)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.expandActionGroupWithTimeout(ActionUpdater.java:189)
	at com.intellij.openapi.actionSystem.impl.Utils.fillMenu(Utils.java:101)
	at com.intellij.openapi.actionSystem.impl.ActionMenu.fillMenu(ActionMenu.java:312)
	at com.intellij.openapi.actionSystem.impl.ActionMenu$MenuListenerImpl.menuSelected(ActionMenu.java:270)
	at java.desktop/javax.swing.JMenu.fireMenuSelected(JMenu.java:1036)
	at java.desktop/javax.swing.JMenu$MenuChangeListener.stateChanged(JMenu.java:1116)
	at java.desktop/javax.swing.DefaultButtonModel.fireStateChanged(DefaultButtonModel.java:352)
	at java.desktop/javax.swing.DefaultButtonModel.setSelected(DefaultButtonModel.java:234)
	at java.desktop/javax.swing.JMenu.setSelected(JMenu.java:291)
	at java.desktop/javax.swing.JMenu.menuSelectionChanged(JMenu.java:1187)
	at com.intellij.openapi.actionSystem.impl.ActionMenu.menuSelectionChanged(ActionMenu.java:202)
	at java.desktop/javax.swing.MenuSelectionManager.setSelectedPath(MenuSelectionManager.java:129)
	at java.desktop/javax.swing.plaf.basic.BasicMenuUI$Handler.mousePressed(BasicMenuUI.java:508)
	at java.desktop/java.awt.Component.processMouseEvent(Component.java:6648)
	at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
	at java.desktop/java.awt.Component.processEvent(Component.java:6416)
	at java.desktop/java.awt.Container.processEvent(Container.java:2263)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5026)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4858)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
	at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4544)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
	at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2773)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4858)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:778)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:751)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:749)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:748)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:908)
	at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:846)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:778)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:424)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:698)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:423)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Reorder Tabs (Suggestion)

Ability to reorder tabs in a favorite list.

image
image

Also, when selecting a tab in a given list, the tab moves to the end. If possible, it would be better if it stayed in position. (In the images, it goes from first place to last place after switching within the list)

Thank you!

WebStorm 2020.2

Looks like the update to WebStorm 2020.2 broke your wonderful plugin. Is that an issue you are aware of, and aiming to fix ?
Also thank you so much for this, love this plugin.

editor-groups

Files are opened as `non-project` if project opened from symlinked-folder (win7)

When I switch file from groups-panel (both with mouse and with Ctrl+Alt+Shift+W) the file is opened as non-project file:

  • Navigation bar (View-appearence-navigation bar) contains absolute path to file (D:\dev\my-project) instead of path relative to module)
  • it is write-protected by IDEA (with non-project file protection feature)
  • native IDEA's tab (with file name) does not show valid icon for file
  • I cannot locate file in the Project window when press "Scroll from source" button.
    I tried to 'Reindex this file', 'Reindex all project' from plugin, also tried to 'Invalidate cache and restart', recompile project with idea, with maven - nothing helped.

Steps to reproduce:
00. (added) Create symlink (i.e D:\dev) to any (parent) directory which contains your project (i.e. D:\Dropbox\dev). Open project from the symlinked directory (D:\dev)
0. (not relevant) I have the java project with one module only. No *.egroups files. Initial state - no editor windows opened.

  1. Open file from project window. Result: File is opened, native IDEA's tab contains valid icon for file, I CAN locate this file in Project widow, Navigation bar contains valid path to file (relative to module). I.e. file is opened as 'project file'.
    Below native tabs there is EditorGroup's tab with auto-group 'Current folder' -- it contains files from the same folder. See
    screen1

  2. Click to any file(tab) on the EditorGroup's tab-bar.
    Expected result: file is opened as 'project' file: it can be located in 'Project' window, can be edited and so on (see ticket description above)
    Actual result: file is opned as non-project file (see ticket description above)
    screen2

  3. Return to file from step 1 by using EditorGroup's tab-bar (or Ctrl+Alt+Shift+W) .
    Actual result: file is opened as non-project file. -- no able to edit etc..
    screen3

Same issues for project files for other (non-source) folders, including 'same name' autogroup

IntelliJ IDEA 2019.2 EAP (Ultimate Edition)
Build #IU-192.5438.14, built on June 26, 2019
IntelliJ IDEA EAP User
Expiration date: July 26, 2019
Runtime version: 11.0.3+12-b304.2 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 7 6.1

phpStorm cant open any project after installing plugin

so I'm using phpStorm 2023.1.4 and was looking for some grouping plugin. after installing yours and restarting the app, it couldn't open any project or even make one. it did open apps start menus so after deactivating the plugin, everything works fine.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.