GithubHelp home page GithubHelp logo

intellij-codeowners's People

Contributors

aarcangeli avatar actions-user avatar dependabot[bot] avatar fan-tom avatar

Stargazers

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

Watchers

 avatar  avatar

intellij-codeowners's Issues

Resilient parsing

If a rule line contains an error, parsing stops and the rules after the incorrect one don't have an effect

Parsing error when folder names have "@"

When the path has a folder name with "@" the syntax highlight is failing with the message:

CodeownersTokenType.CRLF or CodeownersTokenType.VALUE expected, got '@toto/team'

For example, if you have this line:

packages/@foo/bar/file.ts @toto/team @toto/other-team

Cannot find CODEOWNERS - looking in parent directory?

Thanks for your plugin, it's very cool and helpful!

I ran into an issue with file structure, so I wanted to surface the details

Similar to #113 but with a different direction.

I have a workspace structure like so:

/Users/miketheman/workspace
    /llp-local
        /applications
            /llp-project
                /.github/CODEOWNERS

When launching PyCharm in the llp-project directory, the llp-project/.github/CODEOWNERS is parsed and highlighted correctly, but an Exception is raised as well, for a file outside the local context.

Should the plugin be trying to traverse directories outside its context?

Stack trace:

Detector com.github.fantom.codeowners.CodeownersFileTypeDetector@1339e7aa (class com.github.fantom.codeowners.CodeownersFileTypeDetector) exception occurred:

java.io.FileNotFoundException: /Users/miketheman/workspace/llp-local/CODEOWNERS (No such file or directory)
	at java.base/java.io.FileInputStream.open0(Native Method)
	at java.base/java.io.FileInputStream.open(FileInputStream.java:216)
	at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
	at com.intellij.openapi.vfs.impl.local.LocalFileSystemBase.getInputStream(LocalFileSystemBase.java:465)
	at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl.getInputStream(PersistentFSImpl.java:661)
	at com.intellij.openapi.vfs.newvfs.impl.VirtualFileImpl.getInputStream(VirtualFileImpl.java:110)
	at com.github.fantom.codeowners.CodeownersFileTypeDetector.detect(CodeownersFileTypeDetector.kt:35)
	at com.intellij.openapi.fileTypes.impl.FileTypeDetectionService.lambda$detectFromContent$5(FileTypeDetectionService.java:557)
	at com.intellij.openapi.fileEditor.impl.LoadTextUtil.processTextFromBinaryPresentationOrNull(LoadTextUtil.java:640)
	at com.intellij.openapi.fileTypes.impl.FileTypeDetectionService.detectFromContent(FileTypeDetectionService.java:546)
	at com.intellij.openapi.fileTypes.impl.FileTypeDetectionService.detectFromContentAndCache(FileTypeDetectionService.java:516)
	at com.intellij.openapi.fileTypes.impl.FileTypeDetectionService.getOrDetectFromContent(FileTypeDetectionService.java:250)
	at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.internalContinueToDetectFileTypeByFile(FileTypeManagerImpl.java:759)
	at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.getFileTypeByFile(FileTypeManagerImpl.java:750)
	at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.getFileTypeByFile(FileTypeManagerImpl.java:687)
	at com.intellij.openapi.vfs.VirtualFile.getFileType(VirtualFile.java:356)
	at com.intellij.openapi.vfs.newvfs.impl.VirtualFileSystemEntry.getFileType(VirtualFileSystemEntry.java:594)
	at com.github.fantom.codeowners.CodeownersManager$bulkFileListener$1.handleEvent(CodeownersManager.kt:149)
	at com.github.fantom.codeowners.CodeownersManager$bulkFileListener$1.before(CodeownersManager.kt:143)
	at com.intellij.util.messages.impl.MessageBusImplKt.invokeMethod(MessageBusImpl.kt:649)
	at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:625)
	at com.intellij.util.messages.impl.MessageBusImplKt.executeOrAddToQueue(MessageBusImpl.kt:470)
	at com.intellij.util.messages.impl.ToDirectChildrenMessagePublisher.publish$intellij_platform_core(CompositeMessageBus.kt:292)
	at com.intellij.util.messages.impl.MessagePublisher.invoke(MessageBusImpl.kt:425)
	at jdk.proxy1/jdk.proxy1.$Proxy174.before(Unknown Source)
	at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl.fireBeforeEvents(PersistentFSImpl.java:1211)
	at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl.applyMultipleEvents(PersistentFSImpl.java:1178)
	at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl.processEventsImpl(PersistentFSImpl.java:1160)
	at com.intellij.openapi.vfs.newvfs.AsyncEventSupport.processEventsFromRefresh(AsyncEventSupport.java:150)
	at com.intellij.openapi.vfs.newvfs.RefreshSessionImpl.fireEventsInWriteAction(RefreshSessionImpl.java:224)
	at com.intellij.openapi.vfs.newvfs.RefreshSessionImpl.lambda$fireEvents$1(RefreshSessionImpl.java:205)
	at com.intellij.openapi.application.impl.ApplicationImpl.lambda$runEdtProgressWriteAction$9(ApplicationImpl.java:987)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:188)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$12(CoreProgressManager.java:608)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:683)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:639)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:607)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:175)
	at com.intellij.openapi.progress.util.PotemkinProgress.runInSwingThread(PotemkinProgress.java:150)
	at com.intellij.openapi.application.impl.ApplicationImpl.lambda$runEdtProgressWriteAction$10(ApplicationImpl.java:987)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteActionWithClass(ApplicationImpl.java:1011)
	at com.intellij.openapi.application.impl.ApplicationImpl.runEdtProgressWriteAction(ApplicationImpl.java:985)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteActionWithNonCancellableProgressInDispatchThread(ApplicationImpl.java:966)
	at com.intellij.openapi.vfs.newvfs.RefreshSessionImpl.lambda$fireEvents$2(RefreshSessionImpl.java:200)
	at com.intellij.openapi.application.WriteAction.lambda$run$1(WriteAction.java:86)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteActionWithClass(ApplicationImpl.java:1011)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:1037)
	at com.intellij.openapi.application.WriteAction.run(WriteAction.java:85)
	at com.intellij.openapi.vfs.newvfs.RefreshSessionImpl.fireEvents(RefreshSessionImpl.java:199)
	at com.intellij.openapi.vfs.newvfs.RefreshQueueImpl.lambda$queueSession$2(RefreshQueueImpl.java:103)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$safeTransferToEdt$6(NonBlockingReadActionImpl.java:596)
	at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:209)
	at com.intellij.openapi.application.TransactionGuardImpl.access$100(TransactionGuardImpl.java:21)
	at com.intellij.openapi.application.TransactionGuardImpl$1.run(TransactionGuardImpl.java:191)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:881)
	at com.intellij.openapi.application.impl.ApplicationImpl$3.run(ApplicationImpl.java:513)
	at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:75)
	at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:118)
	at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:42)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:779)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:730)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:724)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:749)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:898)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:746)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:439)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:791)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:438)
	at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:105)
	at com.intellij.ide.IdeEventQueue.performActivity(IdeEventQueue.java:604)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:436)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:881)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:484)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)

Stacktrace from the plugin

Not sure why. I had just opened IntelliJ and was change changing a line in the CODEOWNERS file but don't think I did anything "illegal".

com.intellij.diagnostic.PluginException: com.github.fantom.codeowners.reference.CodeownersGithubOwnerReference$MyFakePsiElement cannot be presented [Plugin: fantom.codeowners]
at com.intellij.ide.plugins.PluginManagerCore.createPluginException(PluginManagerCore.java:270)
at com.intellij.diagnostic.PluginProblemReporterImpl.createPluginExceptionByClass(PluginProblemReporterImpl.java:12)
at com.intellij.diagnostic.PluginException.createByClass(PluginException.java:83)
at com.intellij.codeInsight.navigation.UtilKt.presentationError(util.kt:83)
at com.intellij.codeInsight.navigation.UtilKt.targetPresentation(util.kt:67)
at com.intellij.lang.documentation.psi.PsiElementDocumentationTarget.getPresentation(PsiElementDocumentationTarget.kt:50)
at com.intellij.lang.documentation.impl.ImplKt.documentationRequest(impl.kt:18)
at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1$request$1.invoke(DocumentationTargetHoverInfo.kt:39)
at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1$request$1.invoke(DocumentationTargetHoverInfo.kt)
at com.intellij.openapi.progress.CancellationKt$sam$com_intellij_openapi_util_ThrowableComputable$0.compute(cancellation.kt)
at com.intellij.openapi.progress.Cancellation.withJob(Cancellation.java:65)
at com.intellij.openapi.progress.CancellationKt.withJob(cancellation.kt:12)
at com.intellij.openapi.application.rw.ReadAction$tryReadAction$3.run(ReadAction.kt:74)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1084)
at com.intellij.openapi.application.rw.ReadAction.tryReadAction(ReadAction.kt:71)
at com.intellij.openapi.application.rw.ReadAction.access$tryReadAction(ReadAction.kt:14)
at com.intellij.openapi.application.rw.ReadAction$tryReadAction$2$2.run(ReadAction.kt:62)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:158)
at com.intellij.openapi.application.rw.ReadAction$tryReadAction$2.invokeSuspend(ReadAction.kt:60)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:274)
at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85)
at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59)
at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
at com.intellij.openapi.progress.CoroutinesKt.runBlockingCancellable(coroutines.kt:63)
at com.intellij.openapi.progress.CoroutinesKt.runBlockingCancellable(coroutines.kt:50)
at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt.calcTargetDocumentationInfo(DocumentationTargetHoverInfo.kt:33)
at com.intellij.openapi.editor.EditorMouseHoverPopupManager$Context.documentationHoverInfo(EditorMouseHoverPopupManager.java:523)
at com.intellij.openapi.editor.EditorMouseHoverPopupManager$Context.calcInfo(EditorMouseHoverPopupManager.java:513)
at com.intellij.openapi.editor.EditorMouseHoverPopupManager.lambda$scheduleProcessing$7(EditorMouseHoverPopupManager.java:197)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$12(CoreProgressManager.java:624)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:698)
at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:646)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:623)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:66)
at com.intellij.openapi.editor.EditorMouseHoverPopupManager.lambda$scheduleProcessing$8(EditorMouseHoverPopupManager.java:193)
at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:240)
at com.intellij.util.Alarm$Request.runSafely(Alarm.java:385)
at com.intellij.util.Alarm$Request.run(Alarm.java:374)
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.SchedulingWrapper$MyScheduledFutureTask.run(SchedulingWrapper.java:220)
at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:246)
at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:32)
at com.intellij.util.concurrency.BoundedTaskExecutor$1.execute(BoundedTaskExecutor.java:225)
at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:213)
at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:214)
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.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:668)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:665)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:665)
at java.base/java.lang.Thread.run(Thread.java:829)

Feature Request: Search Scope Based on CODEOWNERS

Really great plugin. Helps a bunch. I thought it would be cool if the CODEOWNERS data was leveraged as a search scope. For example, you could find all instances of a piece of code owned by a particular code owner or team. Just a thought. Not sure how feasible it is as I am not knowledgeable in the inner-workings of IntelliJ.

NPE

java.lang.NullPointerException
    at com.github.fantom.codeowners.file.type.kind.BitbucketFileType.isInSubdir(BitbucketFileType.kt:14)
    at com.github.fantom.codeowners.file.type.kind.BitbucketFileType.getRoot(BitbucketFileType.kt:42)
    at com.github.fantom.codeowners.reference.CodeownersEntryReferenceSetNew.computeDefaultContexts(CodeownersEntryReferenceSetNew.kt:69)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReferenceSet.getDefaultContexts(FileReferenceSet.java:305)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.getContexts(FileReference.java:97)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.lambda$innerResolve$0(FileReference.java:131)
    at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:114)
    at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:44)
    at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.innerResolve(FileReference.java:131)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:594)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:589)
    at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:184)
    at com.intellij.openapi.util.Computable.get(Computable.java:18)
    at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:260)
    at com.intellij.openapi.util.Computable.get(Computable.java:18)
    at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:238)
    at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:184)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.multiResolve(FileReference.java:122)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.getContexts(FileReference.java:106)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.lambda$innerResolve$0(FileReference.java:131)
    at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:114)
    at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:44)
    at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.innerResolve(FileReference.java:131)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:594)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:589)
    at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:184)
    at com.intellij.openapi.util.Computable.get(Computable.java:18)
    at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:260)
    at com.intellij.openapi.util.Computable.get(Computable.java:18)
    at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:238)
    at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:184)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.multiResolve(FileReference.java:122)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.getContexts(FileReference.java:106)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.lambda$innerResolve$0(FileReference.java:131)
    at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:114)
    at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:44)
    at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.innerResolve(FileReference.java:131)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:594)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:589)
    at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:184)
    at com.intellij.openapi.util.Computable.get(Computable.java:18)
    at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:260)
    at com.intellij.openapi.util.Computable.get(Computable.java:18)
    at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:238)
    at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:184)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.multiResolve(FileReference.java:122)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.getContexts(FileReference.java:106)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.lambda$innerResolve$0(FileReference.java:131)
    at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:114)
    at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:44)
    at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.innerResolve(FileReference.java:131)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:594)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:589)
    at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:184)
    at com.intellij.openapi.util.Computable.get(Computable.java:18)
    at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:260)
    at com.intellij.openapi.util.Computable.get(Computable.java:18)
    at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:238)
    at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:184)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.multiResolve(FileReference.java:122)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.getContexts(FileReference.java:106)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.lambda$innerResolve$0(FileReference.java:131)
    at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:114)
    at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:44)
    at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.innerResolve(FileReference.java:131)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:594)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:589)
    at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:184)
    at com.intellij.openapi.util.Computable.get(Computable.java:18)
    at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:260)
    at com.intellij.openapi.util.Computable.get(Computable.java:18)
    at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:238)
    at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:184)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.multiResolve(FileReference.java:122)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.getContexts(FileReference.java:106)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.lambda$innerResolve$0(FileReference.java:131)
    at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:114)
    at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:44)
    at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.innerResolve(FileReference.java:131)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:594)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:589)
    at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:184)
    at com.intellij.openapi.util.Computable.get(Computable.java:18)
    at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:260)
    at com.intellij.openapi.util.Computable.get(Computable.java:18)
    at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:238)
    at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:184)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.multiResolve(FileReference.java:122)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.getContexts(FileReference.java:106)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.lambda$innerResolve$0(FileReference.java:131)
    at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:114)
    at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:44)
    at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.innerResolve(FileReference.java:131)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:594)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:589)
    at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:184)
    at com.intellij.openapi.util.Computable.get(Computable.java:18)
    at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:260)
    at com.intellij.openapi.util.Computable.get(Computable.java:18)
    at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:238)
    at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:184)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.multiResolve(FileReference.java:122)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.getContexts(FileReference.java:106)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.lambda$innerResolve$0(FileReference.java:131)
    at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:114)
    at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:44)
    at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.innerResolve(FileReference.java:131)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:594)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:589)
    at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:184)
    at com.intellij.openapi.util.Computable.get(Computable.java:18)
    at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:260)
    at com.intellij.openapi.util.Computable.get(Computable.java:18)
    at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:238)
    at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:184)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.multiResolve(FileReference.java:122)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.resolve(FileReference.java:353)
    at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.resolve(FileReference.java:47)
    at com.intellij.codeInsight.TargetElementUtilBase.getReferencedElement(TargetElementUtilBase.java:177)
    at com.intellij.codeInsight.TargetElementUtilBase.doGetReferenceOrReferencedElement(TargetElementUtilBase.java:165)
    at com.intellij.codeInsight.TargetElementUtilBase.getReferenceOrReferencedElement(TargetElementUtilBase.java:204)
    at com.intellij.codeInsight.TargetElementUtilBase.getReferencedElement(TargetElementUtilBase.java:248)
    at com.intellij.codeInsight.TargetElementUtilBase.doFindTargetElement(TargetElementUtilBase.java:227)
    at com.intellij.codeInsight.TargetElementUtilBase.findTargetElement(TargetElementUtilBase.java:292)
    at com.intellij.codeInsight.TargetElementUtil.findTargetElement(TargetElementUtil.java:147)
    at com.intellij.model.psi.impl.TargetsKt.fromTargetEvaluator(targets.kt:173)
    at com.intellij.model.psi.impl.TargetsKt.declarationsOrReferences(targets.kt:134)
    at com.intellij.model.psi.impl.TargetsKt.declaredReferencedData(targets.kt:41)
    at com.intellij.model.psi.impl.TargetsKt.targetSymbols(targets.kt:23)
    at com.intellij.lang.documentation.symbol.impl.ImplKt.symbolDocumentationTargets(impl.kt:13)
    at com.intellij.lang.documentation.ide.impl.IdeDocumentationTargetProviderImpl.documentationTargets(IdeDocumentationTargetProviderImpl.kt:40)
    at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1$request$1$targets$1.invoke(DocumentationTargetHoverInfo.kt:38)
    at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1$request$1$targets$1.invoke(DocumentationTargetHoverInfo.kt)
    at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt.injectedThenHost(DocumentationTargetHoverInfo.kt:68)
    at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt.access$injectedThenHost(DocumentationTargetHoverInfo.kt:1)
    at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1$request$1.invoke(DocumentationTargetHoverInfo.kt:36)
    at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1$request$1.invoke(DocumentationTargetHoverInfo.kt)
    at com.intellij.openapi.progress.CancellationKt$sam$com_intellij_openapi_util_ThrowableComputable$0.compute(cancellation.kt)
    at com.intellij.openapi.progress.Cancellation.withJob(Cancellation.java:65)
    at com.intellij.openapi.progress.CancellationKt.withJob(cancellation.kt:12)
    at com.intellij.openapi.application.rw.ReadAction$tryReadAction$3.run(ReadAction.kt:74)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1084)
    at com.intellij.openapi.application.rw.ReadAction.tryReadAction(ReadAction.kt:71)
    at com.intellij.openapi.application.rw.ReadAction.access$tryReadAction(ReadAction.kt:14)
    at com.intellij.openapi.application.rw.ReadAction$tryReadAction$2$2.run(ReadAction.kt:62)
    at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:158)
    at com.intellij.openapi.application.rw.ReadAction$tryReadAction$2.invokeSuspend(ReadAction.kt:60)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
    at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:274)
    at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85)
    at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59)
    at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
    at com.intellij.openapi.progress.CoroutinesKt.runBlockingCancellable(coroutines.kt:63)
    at com.intellij.openapi.progress.CoroutinesKt.runBlockingCancellable(coroutines.kt:50)
    at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt.calcTargetDocumentationInfo(DocumentationTargetHoverInfo.kt:34)
    at com.intellij.openapi.editor.EditorMouseHoverPopupManager$Context.documentationHoverInfo(EditorMouseHoverPopupManager.java:525)
    at com.intellij.openapi.editor.EditorMouseHoverPopupManager$Context.calcInfo(EditorMouseHoverPopupManager.java:515)
    at com.intellij.openapi.editor.EditorMouseHoverPopupManager.lambda$scheduleProcessing$7(EditorMouseHoverPopupManager.java:198)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$12(CoreProgressManager.java:624)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:698)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:646)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:623)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:66)
    at com.intellij.openapi.editor.EditorMouseHoverPopupManager.lambda$scheduleProcessing$8(EditorMouseHoverPopupManager.java:194)
    at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:240)
    at com.intellij.util.Alarm$Request.runSafely(Alarm.java:385)
    at com.intellij.util.Alarm$Request.run(Alarm.java:374)
    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.SchedulingWrapper$MyScheduledFutureTask.run(SchedulingWrapper.java:220)
    at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:246)
    at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:32)
    at com.intellij.util.concurrency.BoundedTaskExecutor$1.execute(BoundedTaskExecutor.java:225)
    at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:213)
    at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:214)
    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.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:668)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:665)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:665)
    at java.base/java.lang.Thread.run(Thread.java:829)

NullPointerException at CodeownersChangesGroupingPolicy.getParentNodeFor

Stacktrace

  Unhandled exception in [StandaloneCoroutine{Cancelling}@527de29e, Dispatchers.Default]
  
  java.lang.NullPointerException
at com.github.fantom.codeowners.grouping.changes.CodeownersChangesGroupingPolicy.getParentNodeFor(CodeownersChangesGroupingPolicy.kt:129)
at com.intellij.openapi.vcs.changes.ui.TreeModelBuilder.lambda$insertChangeNode$3(TreeModelBuilder.java:429)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:923)
at com.intellij.openapi.application.ReadAction.compute(ReadAction.java:76)
at com.intellij.openapi.vcs.changes.ui.TreeModelBuilder.insertChangeNode(TreeModelBuilder.java:428)
at com.intellij.openapi.vcs.changes.ui.TreeModelBuilder.insertChangeNode(TreeModelBuilder.java:413)
at com.intellij.openapi.vcs.changes.ui.TreeModelBuilder.insertChanges(TreeModelBuilder.java:164)
at com.intellij.openapi.vcs.changes.ui.TreeModelBuilder.setChanges(TreeModelBuilder.java:151)
at com.intellij.openapi.vcs.changes.ui.TreeModelBuilder.setChanges(TreeModelBuilder.java:144)
at com.intellij.vcs.log.ui.frame.VcsLogChangesBrowser$MyVcsLogAsyncChangesTreeModel.buildTreeModelSync(VcsLogChangesBrowser.kt:231)
at com.intellij.vcs.log.ui.frame.VcsLogChangesBrowser$MyVcsLogAsyncChangesTreeModel.buildTreeModelSync(VcsLogChangesBrowser.kt:217)
at com.intellij.openapi.vcs.changes.ui.SimpleAsyncChangesTreeModel$buildTreeModel$2.invoke(AsyncChangesTree.kt:246)
at com.intellij.openapi.vcs.changes.ui.SimpleAsyncChangesTreeModel$buildTreeModel$2.invoke(AsyncChangesTree.kt:245)
at com.intellij.openapi.progress.CoroutinesKt.jobToIndicator$lambda$1(coroutines.kt:386)
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.CoroutinesKt.jobToIndicator(coroutines.kt:374)
at com.intellij.openapi.progress.CoroutinesKt.contextToIndicator(coroutines.kt:347)
at com.intellij.openapi.progress.CoroutinesKt.coroutineToIndicator(coroutines.kt:290)
at com.intellij.openapi.vcs.changes.ui.SimpleAsyncChangesTreeModel.buildTreeModel(AsyncChangesTree.kt:245)
at com.intellij.openapi.vcs.changes.ui.AsyncChangesTree.handleRequest(AsyncChangesTree.kt:165)
at com.intellij.openapi.vcs.changes.ui.AsyncChangesTree.access$handleRequest(AsyncChangesTree.kt:26)
at com.intellij.openapi.vcs.changes.ui.AsyncChangesTree$start$1$1.invokeSuspend(AsyncChangesTree.kt:132)
at com.intellij.openapi.vcs.changes.ui.AsyncChangesTree$start$1$1.invoke(AsyncChangesTree.kt)
at com.intellij.openapi.vcs.changes.ui.AsyncChangesTree$start$1$1.invoke(AsyncChangesTree.kt)
at com.intellij.openapi.vcs.changes.ui.AsyncChangesTreeKt$asyncCollectLatest$2$2.invokeSuspend(AsyncChangesTree.kt:314)
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:584)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)
Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelled}@527de29e, Dispatchers.Default]

v0.6.0
IntelliJ IDEA 2023.2.5 (Ultimate Edition)
Build #IU-232.10227.8, built on November 9, 2023
Runtime version: 17.0.9+7-b1000.46 aarch64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
macOS 14.1.1
Kotlin: 232-1.9.20-release-507-IJ10072.27

Incorrect match for paths without trailing slash

If a filepath doesn't contain trailing slash, in BitBucket it should only match files with such a name, not subtrees.
In other words, with such CODEOWNERS file

/foo/bar/baz @user

file /foo/bar/baz/file.txt should have no owners (BB playground confirms that):
изображение
while idea plugin shows that this file is owned by @user

Error while editing Bitbucket CODEOWNERS file

java.lang.NullPointerException: Cannot invoke "com.intellij.openapi.vfs.VirtualFile.getName()" because the return value of "com.intellij.openapi.vfs.VirtualFile.getParent()" is null
	at com.github.fantom.codeowners.file.type.kind.BitbucketFileType.isInSubdir(BitbucketFileType.kt:14)
	at com.github.fantom.codeowners.file.type.kind.BitbucketFileType.getRoot(BitbucketFileType.kt:42)
	at com.github.fantom.codeowners.reference.CodeownersEntryReferenceSetNew.computeDefaultContexts(CodeownersEntryReferenceSetNew.kt:69)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReferenceSet.getDefaultContexts(FileReferenceSet.java:303)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.getContexts(FileReference.java:94)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.lambda$innerResolve$0(FileReference.java:128)
	at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:114)
	at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:44)
	at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.innerResolve(FileReference.java:128)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:592)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:587)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:184)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:260)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:238)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:184)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.multiResolve(FileReference.java:119)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.getContexts(FileReference.java:103)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.lambda$innerResolve$0(FileReference.java:128)
	at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:114)
	at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:44)
	at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.innerResolve(FileReference.java:128)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:592)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:587)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:184)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:260)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:238)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:184)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.multiResolve(FileReference.java:119)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.getContexts(FileReference.java:103)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.lambda$innerResolve$0(FileReference.java:128)
	at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:114)
	at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:44)
	at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.innerResolve(FileReference.java:128)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:592)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:587)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:184)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:260)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:238)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:184)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.multiResolve(FileReference.java:119)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.getContexts(FileReference.java:103)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.lambda$innerResolve$0(FileReference.java:128)
	at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:114)
	at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:44)
	at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.innerResolve(FileReference.java:128)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:592)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:587)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:184)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:260)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:238)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:184)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.multiResolve(FileReference.java:119)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.getContexts(FileReference.java:103)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.lambda$innerResolve$0(FileReference.java:128)
	at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:114)
	at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:44)
	at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.innerResolve(FileReference.java:128)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:592)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:587)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:184)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:260)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:238)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:184)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.multiResolve(FileReference.java:119)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.getContexts(FileReference.java:103)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.lambda$innerResolve$0(FileReference.java:128)
	at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:114)
	at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:44)
	at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.innerResolve(FileReference.java:128)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:592)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:587)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:184)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:260)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:238)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:184)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.multiResolve(FileReference.java:119)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.getContexts(FileReference.java:103)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.lambda$innerResolve$0(FileReference.java:128)
	at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:114)
	at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:44)
	at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.innerResolve(FileReference.java:128)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:592)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:587)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:184)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:260)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:238)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:184)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.multiResolve(FileReference.java:119)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.resolve(FileReference.java:351)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.resolve(FileReference.java:44)
	at com.intellij.codeInsight.TargetElementUtilBase.getReferencedElement(TargetElementUtilBase.java:177)
	at com.intellij.codeInsight.TargetElementUtilBase.doGetReferenceOrReferencedElement(TargetElementUtilBase.java:165)
	at com.intellij.codeInsight.TargetElementUtilBase.getReferenceOrReferencedElement(TargetElementUtilBase.java:210)
	at com.intellij.codeInsight.TargetElementUtilBase.getReferencedElement(TargetElementUtilBase.java:254)
	at com.intellij.codeInsight.TargetElementUtilBase.doFindTargetElement(TargetElementUtilBase.java:233)
	at com.intellij.codeInsight.TargetElementUtilBase.findTargetElement(TargetElementUtilBase.java:298)
	at com.intellij.codeInsight.TargetElementUtil.findTargetElement(TargetElementUtil.java:147)
	at com.intellij.model.psi.impl.TargetsKt.fromTargetEvaluator(targets.kt:173)
	at com.intellij.model.psi.impl.TargetsKt.declarationsOrReferences(targets.kt:134)
	at com.intellij.model.psi.impl.TargetsKt.declaredReferencedData(targets.kt:41)
	at com.intellij.model.psi.impl.TargetsKt.targetSymbols(targets.kt:23)
	at com.intellij.lang.documentation.symbol.impl.ImplKt.symbolDocumentationTargets(impl.kt:13)
	at com.intellij.lang.documentation.ide.impl.IdeDocumentationTargetProviderImpl.documentationTargets(IdeDocumentationTargetProviderImpl.kt:37)
	at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1$request$1$targets$1.invoke(DocumentationTargetHoverInfo.kt:39)
	at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1$request$1$targets$1.invoke(DocumentationTargetHoverInfo.kt)
	at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt.injectedThenHost(DocumentationTargetHoverInfo.kt:76)
	at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1$request$1.invoke(DocumentationTargetHoverInfo.kt:37)
	at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1$request$1.invoke(DocumentationTargetHoverInfo.kt)
	at com.intellij.openapi.application.rw.InternalReadAction.insideReadAction(InternalReadAction.kt:96)
	at com.intellij.openapi.application.rw.InternalReadAction.access$insideReadAction(InternalReadAction.kt:13)
	at com.intellij.openapi.application.rw.InternalReadAction$tryReadCancellable$1.invoke(InternalReadAction.kt:81)
	at com.intellij.openapi.application.rw.InternalReadAction$tryReadCancellable$1.invoke(InternalReadAction.kt:13)
	at com.intellij.openapi.progress.CancellationKt$sam$com_intellij_openapi_util_ThrowableComputable$0.compute(cancellation.kt)
	at com.intellij.openapi.progress.Cancellation.withJob(Cancellation.java:60)
	at com.intellij.openapi.progress.CancellationKt.withJob(cancellation.kt:14)
	at com.intellij.openapi.progress.CancellationKt.executeWithJobAndCompleteIt(cancellation.kt:111)
	at com.intellij.openapi.application.rw.CancellableReadActionKt$cancellableReadActionInternal$2$1.run(cancellableReadAction.kt:33)
	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1154)
	at com.intellij.openapi.application.rw.CancellableReadActionKt$cancellableReadActionInternal$2.run(cancellableReadAction.kt:31)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:158)
	at com.intellij.openapi.application.rw.CancellableReadActionKt.cancellableReadActionInternal(cancellableReadAction.kt:29)
	at com.intellij.openapi.application.rw.InternalReadAction.tryReadCancellable(InternalReadAction.kt:80)
	at com.intellij.openapi.application.rw.InternalReadAction.access$tryReadCancellable(InternalReadAction.kt:13)
	at com.intellij.openapi.application.rw.InternalReadAction$tryReadAction$2.invoke(InternalReadAction.kt:66)
	at com.intellij.openapi.application.rw.InternalReadAction$tryReadAction$2.invoke(InternalReadAction.kt:13)
	at com.intellij.openapi.progress.CancellationKt$sam$com_intellij_openapi_util_ThrowableComputable$0.compute(cancellation.kt)
	at com.intellij.openapi.progress.Cancellation.withJob(Cancellation.java:60)
	at com.intellij.openapi.progress.CancellationKt.withJob(cancellation.kt:14)
	at com.intellij.openapi.progress.CoroutinesKt.blockingContext(coroutines.kt:138)
	at com.intellij.openapi.application.rw.InternalReadAction.tryReadAction(InternalReadAction.kt:61)
	at com.intellij.openapi.application.rw.InternalReadAction.readLoop(InternalReadAction.kt:53)
	at com.intellij.openapi.application.rw.InternalReadAction.access$readLoop(InternalReadAction.kt:13)
	at com.intellij.openapi.application.rw.InternalReadAction$runReadAction$4.invokeSuspend(InternalReadAction.kt:33)
	at com.intellij.openapi.application.rw.InternalReadAction$runReadAction$4.invoke(InternalReadAction.kt)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:89)
	at kotlinx.coroutines.CoroutineScopeKt.coroutineScope(CoroutineScope.kt:264)
	at com.intellij.openapi.application.rw.InternalReadAction.runReadAction(InternalReadAction.kt:32)
	at com.intellij.openapi.application.rw.PlatformReadActionSupport.executeReadAction(PlatformReadActionSupport.kt:24)
	at com.intellij.openapi.application.CoroutinesKt.constrainedReadAction(coroutines.kt:47)
	at com.intellij.openapi.application.CoroutinesKt.readAction(coroutines.kt:17)
	at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1.invokeSuspend(DocumentationTargetHoverInfo.kt:36)
	at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1.invoke(DocumentationTargetHoverInfo.kt)
	at com.intellij.openapi.progress.CoroutinesKt$runBlockingCancellable$2$1.invokeSuspend(coroutines.kt:110)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
	at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:274)
	at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59)
	at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
	at com.intellij.openapi.progress.CoroutinesKt$runBlockingCancellable$2.invoke(coroutines.kt:108)
	at com.intellij.openapi.progress.CoroutinesKt$runBlockingCancellable$2.invoke(coroutines.kt)
	at com.intellij.openapi.progress.CancellationKt$ensureCurrentJob$1$1.invoke(cancellation.kt:69)
	at com.intellij.openapi.progress.CancellationKt$sam$com_intellij_openapi_util_ThrowableComputable$0.compute(cancellation.kt)
	at com.intellij.openapi.progress.Cancellation.withJob(Cancellation.java:60)
	at com.intellij.openapi.progress.CancellationKt.withJob(cancellation.kt:14)
	at com.intellij.openapi.progress.CancellationKt.executeWithJobAndCompleteIt(cancellation.kt:111)
	at com.intellij.openapi.progress.CancellationKt$ensureCurrentJob$1.get(cancellation.kt:68)
	at com.intellij.openapi.progress.impl.CoreProgressManager.silenceGlobalIndicator(CoreProgressManager.java:950)
	at com.intellij.openapi.progress.CancellationKt.ensureCurrentJob(cancellation.kt:67)
	at com.intellij.openapi.progress.CoroutinesKt.runBlockingCancellable(coroutines.kt:103)
	at com.intellij.openapi.progress.CoroutinesKt.runBlockingCancellable(coroutines.kt:71)
	at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt.calcTargetDocumentationInfo(DocumentationTargetHoverInfo.kt:35)
	at com.intellij.openapi.editor.EditorMouseHoverPopupManager$Context.documentationHoverInfo(EditorMouseHoverPopupManager.java:538)
	at com.intellij.openapi.editor.EditorMouseHoverPopupManager$Context.calcInfo(EditorMouseHoverPopupManager.java:528)
	at com.intellij.openapi.editor.EditorMouseHoverPopupManager.lambda$scheduleProcessing$7(EditorMouseHoverPopupManager.java:200)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$12(CoreProgressManager.java:608)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:683)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:639)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:607)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
	at com.intellij.openapi.editor.EditorMouseHoverPopupManager.lambda$scheduleProcessing$8(EditorMouseHoverPopupManager.java:196)
	at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:241)
	at com.intellij.util.Alarm$Request.runSafely(Alarm.java:388)
	at com.intellij.util.Alarm$Request.run(Alarm.java:377)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at com.intellij.util.concurrency.SchedulingWrapper$MyScheduledFutureTask.run(SchedulingWrapper.java:223)
	at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:241)
	at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:31)
	at com.intellij.util.concurrency.BoundedTaskExecutor$1.execute(BoundedTaskExecutor.java:214)
	at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:212)
	at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:203)
	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)

com.intellij.diagnostic.PluginException: com.github.fantom.codeowners.reference.CodeownersGithubOwnerReference$MyFakePsiElement cannot be presented

com.intellij.diagnostic.PluginException: com.github.fantom.codeowners.reference.CodeownersGithubOwnerReference$MyFakePsiElement cannot be presented [Plugin: fantom.codeowners]
  at com.intellij.diagnostic.PluginProblemReporterImpl.createPluginExceptionByClass(PluginProblemReporterImpl.java:23)
  at com.intellij.diagnostic.PluginException.createByClass(PluginException.java:89)
  at com.intellij.codeInsight.navigation.UtilKt.presentationError(util.kt:110)
  at com.intellij.codeInsight.navigation.UtilKt.targetPresentation(util.kt:93)
  at com.intellij.lang.documentation.psi.PsiElementDocumentationTarget.computePresentation(PsiElementDocumentationTarget.kt:67)
  at com.intellij.platform.backend.documentation.impl.ImplKt.documentationRequest(impl.kt:17)
  at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1$request$1.invoke(DocumentationTargetHoverInfo.kt:41)
  at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1$request$1.invoke(DocumentationTargetHoverInfo.kt:36)
  at com.intellij.openapi.application.rw.InternalReadAction.insideReadAction(InternalReadAction.kt:108)
  at com.intellij.openapi.application.rw.InternalReadAction.access$insideReadAction(InternalReadAction.kt:15)
  at com.intellij.openapi.application.rw.InternalReadAction$tryReadCancellable$1.invoke(InternalReadAction.kt:92)
  at com.intellij.openapi.application.rw.InternalReadAction$tryReadCancellable$1.invoke(InternalReadAction.kt:91)
  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:126)
  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:1102)
  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:129)
  at com.intellij.openapi.application.rw.CancellableReadActionKt.cancellableReadActionInternal(cancellableReadAction.kt:45)
  at com.intellij.openapi.application.rw.InternalReadAction.tryReadCancellable(InternalReadAction.kt:91)
  at com.intellij.openapi.application.rw.InternalReadAction.access$tryReadCancellable(InternalReadAction.kt:15)
  at com.intellij.openapi.application.rw.InternalReadAction$tryReadAction$2.invoke(InternalReadAction.kt:77)
  at com.intellij.openapi.application.rw.InternalReadAction$tryReadAction$2.invoke(InternalReadAction.kt:72)
  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:193)
  at com.intellij.openapi.application.rw.InternalReadAction.tryReadAction(InternalReadAction.kt:72)
  at com.intellij.openapi.application.rw.InternalReadAction.readLoop(InternalReadAction.kt:64)
  at com.intellij.openapi.application.rw.InternalReadAction.access$readLoop(InternalReadAction.kt:15)
  at com.intellij.openapi.application.rw.InternalReadAction$runReadAction$4.invokeSuspend(InternalReadAction.kt:43)
  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)

This crashes frequently on my dev system running on CentOS 7: CentOS Linux release 7.9.2009 (Core), with the v0.5.0 plugin installed inside IntelliJ 2023.1.1 Community Edition:

IntelliJ IDEA 2023.1.1 (Community Edition)
Build #IC-231.8770.65, built on April 27, 2023
Runtime version: 17.0.7+7 amd64
VM: OpenJDK 64-Bit Server VM by Eclipse Adoptium
Linux 3.10.0-1160.90.1.el7.x86_64
GC: G1 Young Generation, G1 Old Generation
Memory: 2048M
Cores: 7
Non-Bundled Plugins:
    fantom.codeowners (0.5.0)
    idea.plugin.protoeditor (231.8109.91)
Kotlin: 231-1.8.21-IJ8770.65
Current Desktop: GNOME-Classic:GNOME

Add support to path with spaces

Hey, it looks that the CODEOWNERS file parsing is breaking when there's a line with a file or folder with spaces. This is supported by Github and you can escape them with a backslash before the whitespace to reference the file or folder.

When the plugin detects this exception then it stops parsing the CODEOWNERS file:
image

The error that is showing is CodeownersTokenType.@ expected
image

attribution error

I have an issue where this plugin uses gem source CODEOWNERS instead of project root CODEOWNERS.

I have gem "redis-store" and all my files are being attributed to tubbo via https://github.com/redis-store/redis-store/blob/master/CODEOWNERS

commenting out that source file in local cache, this plugin then uses gem "omniauth-auth0"'s CODEOWNERS, etc. perhaps especially when those gems use .github/CODEOWNERS instead of root CODEOWNERS

Complications may include

  • remote (docker) Ruby Framework, so gem source gets cached in RubyMine directory
  • project CODEOWNERS is more than ~500 lines (I could get first ~500 lines to parse by deleting gem CODEOWNERS files from caches)
  • project CODEOWNERS is in root, but project also has a .github directory
    • plugin wasn't finding CODEOWNERS in root today, but had previously.
    • moving to .github/CODEOWNERS had some success
  • CODEOWNERS file had some syntactic errors (trailing comments)
    • did not fully recover after deleting syntactic errors

java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 2

java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 2
^**/(src/(main/(resources/(META-INF/(MANIFEST.MF/)?)?)?)?)?
  ^
	at java.base/java.util.regex.Pattern.error(Pattern.java:2028)
	at java.base/java.util.regex.Pattern.sequence(Pattern.java:2203)
	at java.base/java.util.regex.Pattern.expr(Pattern.java:2069)
	at java.base/java.util.regex.Pattern.compile(Pattern.java:1783)
	at java.base/java.util.regex.Pattern.<init>(Pattern.java:1430)
	at java.base/java.util.regex.Pattern.compile(Pattern.java:1069)
	at kotlin.text.Regex.<init>(Regex.kt:89)
	at com.github.fantom.codeowners.util.Glob.createPrefixRegex(Glob.kt:314)
	at com.github.fantom.codeowners.services.PatternCache.getOrCreatePrefixRegex$lambda-0(PatternCache.kt:36)
	at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708)
	at com.github.fantom.codeowners.services.PatternCache.getOrCreatePrefixRegex(PatternCache.kt:35)
	at com.github.fantom.codeowners.reference.CodeownersPatternsMatchedFilesCache$1.cleanupCache(CodeownersPatternsMatchedFilesCache.kt:80)
	at com.github.fantom.codeowners.reference.CodeownersPatternsMatchedFilesCache$1.after(CodeownersPatternsMatchedFilesCache.kt:49)
	at com.intellij.util.messages.impl.MessageBusImplKt.invokeMethod(MessageBusImpl.kt:649)
	at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:625)
	at com.intellij.util.messages.impl.MessageBusImplKt.executeOrAddToQueue(MessageBusImpl.kt:470)
	at com.intellij.util.messages.impl.ToDirectChildrenMessagePublisher.publish$intellij_platform_core(CompositeMessageBus.kt:259)
	at com.intellij.util.messages.impl.MessagePublisher.invoke(MessageBusImpl.kt:425)
	at jdk.proxy2/jdk.proxy2.$Proxy196.after(Unknown Source)
	at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl.fireAfterEvents(PersistentFSImpl.java:1218)
	at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl.applyMultipleEvents(PersistentFSImpl.java:1197)
	at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl.processEventsImpl(PersistentFSImpl.java:1160)
	at com.intellij.openapi.vfs.newvfs.AsyncEventSupport.processEventsFromRefresh(AsyncEventSupport.java:150)
	at com.intellij.openapi.vfs.newvfs.RefreshSessionImpl.fireEventsInWriteAction(RefreshSessionImpl.java:224)
	at com.intellij.openapi.vfs.newvfs.RefreshSessionImpl.lambda$fireEvents$1(RefreshSessionImpl.java:205)
	at com.intellij.openapi.application.impl.ApplicationImpl.lambda$runEdtProgressWriteAction$9(ApplicationImpl.java:987)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:188)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$12(CoreProgressManager.java:608)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:683)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:639)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:607)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:175)
	at com.intellij.openapi.progress.util.PotemkinProgress.runInSwingThread(PotemkinProgress.java:150)
	at com.intellij.openapi.application.impl.ApplicationImpl.lambda$runEdtProgressWriteAction$10(ApplicationImpl.java:987)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteActionWithClass(ApplicationImpl.java:1011)
	at com.intellij.openapi.application.impl.ApplicationImpl.runEdtProgressWriteAction(ApplicationImpl.java:985)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteActionWithNonCancellableProgressInDispatchThread(ApplicationImpl.java:966)
	at com.intellij.openapi.vfs.newvfs.RefreshSessionImpl.lambda$fireEvents$2(RefreshSessionImpl.java:200)
	at com.intellij.openapi.application.WriteAction.lambda$run$1(WriteAction.java:86)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteActionWithClass(ApplicationImpl.java:1011)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:1037)
	at com.intellij.openapi.application.WriteAction.run(WriteAction.java:85)
	at com.intellij.openapi.vfs.newvfs.RefreshSessionImpl.fireEvents(RefreshSessionImpl.java:199)
	at com.intellij.openapi.vfs.newvfs.RefreshQueueImpl.lambda$queueSession$2(RefreshQueueImpl.java:103)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$safeTransferToEdt$6(NonBlockingReadActionImpl.java:596)
	at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:209)
	at com.intellij.openapi.application.TransactionGuardImpl.access$100(TransactionGuardImpl.java:21)
	at com.intellij.openapi.application.TransactionGuardImpl$1.run(TransactionGuardImpl.java:191)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:881)
	at com.intellij.openapi.application.impl.ApplicationImpl$3.run(ApplicationImpl.java:513)
	at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:75)
	at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:118)
	at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:42)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:779)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:730)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:724)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:749)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:918)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:766)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:450)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:791)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:449)
	at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:105)
	at com.intellij.ide.IdeEventQueue.performActivity(IdeEventQueue.java:624)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:447)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:881)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:493)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)

Assertion failed

java.lang.Throwable: Assertion failed
	at com.intellij.openapi.diagnostic.Logger.assertTrue(Logger.java:254)
	at com.intellij.openapi.diagnostic.Logger.assertTrue(Logger.java:263)
	at com.intellij.openapi.vfs.newvfs.impl.VirtualDirectoryImpl.doFindChildById(VirtualDirectoryImpl.java:534)
	at com.intellij.openapi.vfs.newvfs.persistent.FSRecords$1ParentFinder.findChild(FSRecords.java:591)
	at com.intellij.openapi.vfs.newvfs.persistent.FSRecords$1ParentFinder.findDescendantByIdPath(FSRecords.java:584)
	at com.intellij.openapi.vfs.newvfs.persistent.FSRecords.findFileById(FSRecords.java:608)
	at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl.findFileById(PersistentFSImpl.java:1430)
	at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl.findFileById(PersistentFSImpl.java:58)
	at com.intellij.util.indexing.FileBasedIndexScanUtil.processFilesContainingAnyKey(FileBasedIndexScanUtil.java:248)
	at com.intellij.util.indexing.FileBasedIndexImpl.processFilesContainingAnyKey(FileBasedIndexImpl.java:1178)
	at com.intellij.psi.search.FilenameIndex.getVirtualFilesByNames(FilenameIndex.java:225)
	at com.intellij.psi.search.FilenameIndex.getVirtualFilesByNamesIgnoringCase(FilenameIndex.java:172)
	at com.intellij.psi.search.FilenameIndex.processFilesByNames(FilenameIndex.java:156)
	at com.github.fantom.codeowners.reference.CodeownersPatternReferenceSetRecursiveReverse$CodeownersPatternReference$Resolver.resolveAtAnyLevel(CodeownersPatternReferenceSetRecursiveReverse.kt:345)
	at com.github.fantom.codeowners.reference.CodeownersPatternReferenceSetRecursiveReverse$CodeownersPatternReference$Resolver.innerResolveInContextRecursive(CodeownersPatternReferenceSetRecursiveReverse.kt:383)
	at com.github.fantom.codeowners.reference.CodeownersPatternReferenceSetRecursiveReverse$CodeownersPatternReference.innerResolveInContext(CodeownersPatternReferenceSetRecursiveReverse.kt:502)
	at com.github.fantom.codeowners.reference.CodeownersPatternReferenceSetRecursiveReverse$CodeownersPatternReference.innerResolve(CodeownersPatternReferenceSetRecursiveReverse.kt:435)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:597)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:592)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:176)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:237)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:215)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:176)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.multiResolve(FileReference.java:119)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.resolve(FileReference.java:351)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.resolve(FileReference.java:44)
	at com.intellij.codeInsight.TargetElementUtilBase.getReferencedElement(TargetElementUtilBase.java:177)
	at com.intellij.codeInsight.TargetElementUtilBase.doGetReferenceOrReferencedElement(TargetElementUtilBase.java:165)
	at com.intellij.codeInsight.TargetElementUtilBase.getReferenceOrReferencedElement(TargetElementUtilBase.java:210)
	at com.intellij.codeInsight.TargetElementUtilBase.getReferencedElement(TargetElementUtilBase.java:254)
	at com.intellij.codeInsight.TargetElementUtilBase.doFindTargetElement(TargetElementUtilBase.java:233)
	at com.intellij.codeInsight.TargetElementUtilBase.findTargetElement(TargetElementUtilBase.java:298)
	at com.intellij.codeInsight.TargetElementUtil.findTargetElement(TargetElementUtil.java:147)
	at com.intellij.openapi.fileEditor.impl.text.TextEditorPsiDataProvider.getPsiElementIn(TextEditorPsiDataProvider.java:235)
	at com.intellij.openapi.fileEditor.impl.text.TextEditorPsiDataProvider.getSlowData(TextEditorPsiDataProvider.java:145)
	at com.intellij.openapi.fileEditor.impl.text.TextEditorPsiDataProvider.lambda$getData$0(TextEditorPsiDataProvider.java:72)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProviderInner(DataManagerImpl.java:241)
	at com.intellij.ide.impl.DataManagerImpl.getSlowData(DataManagerImpl.java:225)
	at com.intellij.ide.impl.DataManagerImpl.lambda$getDataRuleInner$6(DataManagerImpl.java:177)
	at com.intellij.ide.impl.DataManagerImpl.lambda$getDataRuleInner$8(DataManagerImpl.java:182)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromRuleInner(DataManagerImpl.java:112)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromRulesInner(DataManagerImpl.java:99)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProviderAndRulesInner(DataManagerImpl.java:85)
	at com.intellij.ide.impl.DataManagerImpl.lambda$getDataFromRuleInner$3(DataManagerImpl.java:113)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:68)
	at com.intellij.ide.impl.dataRules.NavigatableRule.getData(NavigatableRule.java:39)
	at com.intellij.ide.impl.DataManagerImpl.getRulesData(DataManagerImpl.java:210)
	at com.intellij.ide.impl.DataManagerImpl.lambda$getDataRuleInner$8(DataManagerImpl.java:183)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromRuleInner(DataManagerImpl.java:112)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromRulesInner(DataManagerImpl.java:99)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromProviderAndRulesInner(DataManagerImpl.java:85)
	at com.intellij.ide.impl.DataManagerImpl.lambda$getDataFromRuleInner$3(DataManagerImpl.java:113)
	at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:68)
	at com.intellij.ide.impl.dataRules.NavigatableArrayRule.getData(NavigatableArrayRule.java:23)
	at com.intellij.ide.impl.DataManagerImpl.getRulesData(DataManagerImpl.java:210)
	at com.intellij.ide.impl.DataManagerImpl.lambda$getDataRuleInner$8(DataManagerImpl.java:183)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromRuleInner(DataManagerImpl.java:112)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromRulesInner(DataManagerImpl.java:99)
	at com.intellij.ide.impl.DataManagerImpl.getDataFromRules(DataManagerImpl.java:67)
	at com.intellij.openapi.actionSystem.impl.PreCachedDataContext.getDataInner(PreCachedDataContext.java:224)
	at com.intellij.openapi.actionSystem.impl.PreCachedDataContext.getData(PreCachedDataContext.java:166)
	at com.intellij.openapi.actionSystem.DataContext.getData(DataContext.java:45)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$ensureSlowDataKeysPreCached$20(ActionUpdater.java:471)
	at com.intellij.diagnostic.telemetry.TraceKt.runWithSpan(trace.kt:74)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.ensureSlowDataKeysPreCached(ActionUpdater.java:466)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$callAction$6(ActionUpdater.java:201)
	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1089)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.callAction(ActionUpdater.java:201)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.callAction(ActionUpdater.java:161)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.updateActionReal(ActionUpdater.java:137)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$new$0(ActionUpdater.java:124)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.update(ActionUpdater.java:705)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.expandGroupChild(ActionUpdater.java:556)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$doExpandActionGroup$23(ActionUpdater.java:529)
	at com.intellij.util.containers.ContainerUtil.concat(ContainerUtil.java:1546)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.doExpandActionGroup(ActionUpdater.java:529)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.expandGroupChild(ActionUpdater.java:606)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$doExpandActionGroup$23(ActionUpdater.java:529)
	at com.intellij.util.containers.ContainerUtil.concat(ContainerUtil.java:1546)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.doExpandActionGroup(ActionUpdater.java:529)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.expandActionGroup(ActionUpdater.java:309)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$doExpandActionGroupAsync$14(ActionUpdater.java:377)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$doExpandActionGroupAsync$15(ActionUpdater.java:396)
	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1089)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$tryRunReadActionAndCancelBeforeWrite$19(ActionUpdater.java:428)
	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.actionSystem.impl.ActionUpdater.tryRunReadActionAndCancelBeforeWrite(ActionUpdater.java:424)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$doExpandActionGroupAsync$16(ActionUpdater.java:396)
	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:60)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:173)
	at com.intellij.openapi.progress.util.BackgroundTaskUtil.runUnderDisposeAwareIndicator(BackgroundTaskUtil.java:361)
	at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$doExpandActionGroupAsync$17(ActionUpdater.java:395)
	at io.opentelemetry.context.Context.lambda$wrap$1(Context.java:212)
	at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:248)
	at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:28)
	at com.intellij.util.concurrency.BoundedTaskExecutor$1.executeFirstTaskAndHelpQueue(BoundedTaskExecutor.java:221)
	at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:212)
	at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:210)
	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)

Cut a new release?

It's been a little while, and I'd love to have that github syntax comment support in the wild...

Thanks!

0.4.0 version crashed after installation and restart of IDE [Build #IU-222.4167.29]

com.intellij.diagnostic.PluginException: com.github.fantom.codeowners.reference.CodeownersGithubOwnerReference$MyFakePsiElement cannot be presented [Plugin: fantom.codeowners]
	at com.intellij.diagnostic.PluginProblemReporterImpl.createPluginExceptionByClass(PluginProblemReporterImpl.java:23)
	at com.intellij.diagnostic.PluginException.createByClass(PluginException.java:83)
	at com.intellij.codeInsight.navigation.UtilKt.presentationError(util.kt:110)
	at com.intellij.codeInsight.navigation.UtilKt.targetPresentation(util.kt:93)
	at com.intellij.lang.documentation.psi.PsiElementDocumentationTarget.getPresentation(PsiElementDocumentationTarget.kt:65)
	at com.intellij.lang.documentation.impl.ImplKt.documentationRequest(impl.kt:18)
	at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1$request$1.invoke(DocumentationTargetHoverInfo.kt:41)
	at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1$request$1.invoke(DocumentationTargetHoverInfo.kt)
	at com.intellij.openapi.application.rw.InternalReadAction.insideReadAction(InternalReadAction.kt:96)
	at com.intellij.openapi.application.rw.InternalReadAction.access$insideReadAction(InternalReadAction.kt:13)
	at com.intellij.openapi.application.rw.InternalReadAction$tryReadCancellable$1.invoke(InternalReadAction.kt:81)
	at com.intellij.openapi.application.rw.InternalReadAction$tryReadCancellable$1.invoke(InternalReadAction.kt:13)
	at com.intellij.openapi.progress.CancellationKt$sam$com_intellij_openapi_util_ThrowableComputable$0.compute(cancellation.kt)
	at com.intellij.openapi.progress.Cancellation.withJob(Cancellation.java:60)
	at com.intellij.openapi.progress.CancellationKt.withJob(cancellation.kt:14)
	at com.intellij.openapi.progress.CancellationKt.executeWithJobAndCompleteIt(cancellation.kt:111)
	at com.intellij.openapi.application.rw.CancellableReadActionKt$cancellableReadActionInternal$2$1.run(cancellableReadAction.kt:33)
	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1154)
	at com.intellij.openapi.application.rw.CancellableReadActionKt$cancellableReadActionInternal$2.run(cancellableReadAction.kt:31)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:158)
	at com.intellij.openapi.application.rw.CancellableReadActionKt.cancellableReadActionInternal(cancellableReadAction.kt:29)
	at com.intellij.openapi.application.rw.InternalReadAction.tryReadCancellable(InternalReadAction.kt:80)
	at com.intellij.openapi.application.rw.InternalReadAction.access$tryReadCancellable(InternalReadAction.kt:13)
	at com.intellij.openapi.application.rw.InternalReadAction$tryReadAction$2.invoke(InternalReadAction.kt:66)
	at com.intellij.openapi.application.rw.InternalReadAction$tryReadAction$2.invoke(InternalReadAction.kt:13)
	at com.intellij.openapi.progress.CancellationKt$sam$com_intellij_openapi_util_ThrowableComputable$0.compute(cancellation.kt)
	at com.intellij.openapi.progress.Cancellation.withJob(Cancellation.java:60)
	at com.intellij.openapi.progress.CancellationKt.withJob(cancellation.kt:14)
	at com.intellij.openapi.progress.CoroutinesKt.blockingContext(coroutines.kt:138)
	at com.intellij.openapi.application.rw.InternalReadAction.tryReadAction(InternalReadAction.kt:61)
	at com.intellij.openapi.application.rw.InternalReadAction.readLoop(InternalReadAction.kt:53)
	at com.intellij.openapi.application.rw.InternalReadAction.access$readLoop(InternalReadAction.kt:13)
	at com.intellij.openapi.application.rw.InternalReadAction$runReadAction$4.invokeSuspend(InternalReadAction.kt:33)
	at com.intellij.openapi.application.rw.InternalReadAction$runReadAction$4.invoke(InternalReadAction.kt)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:89)
	at kotlinx.coroutines.CoroutineScopeKt.coroutineScope(CoroutineScope.kt:264)
	at com.intellij.openapi.application.rw.InternalReadAction.runReadAction(InternalReadAction.kt:32)
	at com.intellij.openapi.application.rw.PlatformReadActionSupport.executeReadAction(PlatformReadActionSupport.kt:24)
	at com.intellij.openapi.application.CoroutinesKt.constrainedReadAction(coroutines.kt:47)
	at com.intellij.openapi.application.CoroutinesKt.readAction(coroutines.kt:17)
	at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1.invokeSuspend(DocumentationTargetHoverInfo.kt:36)
	at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt$calcTargetDocumentationInfo$1.invoke(DocumentationTargetHoverInfo.kt)
	at com.intellij.openapi.progress.CoroutinesKt$runBlockingCancellable$2$1.invokeSuspend(coroutines.kt:110)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
	at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:274)
	at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59)
	at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
	at com.intellij.openapi.progress.CoroutinesKt$runBlockingCancellable$2.invoke(coroutines.kt:108)
	at com.intellij.openapi.progress.CoroutinesKt$runBlockingCancellable$2.invoke(coroutines.kt)
	at com.intellij.openapi.progress.CancellationKt$ensureCurrentJob$1$1.invoke(cancellation.kt:69)
	at com.intellij.openapi.progress.CancellationKt$sam$com_intellij_openapi_util_ThrowableComputable$0.compute(cancellation.kt)
	at com.intellij.openapi.progress.Cancellation.withJob(Cancellation.java:60)
	at com.intellij.openapi.progress.CancellationKt.withJob(cancellation.kt:14)
	at com.intellij.openapi.progress.CancellationKt.executeWithJobAndCompleteIt(cancellation.kt:111)
	at com.intellij.openapi.progress.CancellationKt$ensureCurrentJob$1.get(cancellation.kt:68)
	at com.intellij.openapi.progress.impl.CoreProgressManager.silenceGlobalIndicator(CoreProgressManager.java:950)
	at com.intellij.openapi.progress.CancellationKt.ensureCurrentJob(cancellation.kt:67)
	at com.intellij.openapi.progress.CoroutinesKt.runBlockingCancellable(coroutines.kt:103)
	at com.intellij.openapi.progress.CoroutinesKt.runBlockingCancellable(coroutines.kt:71)
	at com.intellij.lang.documentation.ide.impl.DocumentationTargetHoverInfoKt.calcTargetDocumentationInfo(DocumentationTargetHoverInfo.kt:35)
	at com.intellij.openapi.editor.EditorMouseHoverPopupManager$Context.documentationHoverInfo(EditorMouseHoverPopupManager.java:538)
	at com.intellij.openapi.editor.EditorMouseHoverPopupManager$Context.calcInfo(EditorMouseHoverPopupManager.java:528)
	at com.intellij.openapi.editor.EditorMouseHoverPopupManager.lambda$scheduleProcessing$7(EditorMouseHoverPopupManager.java:200)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$12(CoreProgressManager.java:608)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:683)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:639)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:607)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
	at com.intellij.openapi.editor.EditorMouseHoverPopupManager.lambda$scheduleProcessing$8(EditorMouseHoverPopupManager.java:196)
	at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:241)
	at com.intellij.util.Alarm$Request.runSafely(Alarm.java:388)
	at com.intellij.util.Alarm$Request.run(Alarm.java:377)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at com.intellij.util.concurrency.SchedulingWrapper$MyScheduledFutureTask.run(SchedulingWrapper.java:223)
	at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:241)
	at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:31)
	at com.intellij.util.concurrency.BoundedTaskExecutor$1.execute(BoundedTaskExecutor.java:214)
	at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:212)
	at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:203)
	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)

Change github url

For use in enterprise environments it'd be great to change the base url from https://github.com to something like https://ghe.company.net

Error while editing CODEOWNERS file

java.lang.NullPointerException: element.containingFile.virtualFile must not be null
	at com.github.fantom.codeowners.reference.CodeownersEntryReferenceSet$CodeownersEntryReference.innerResolveInContext(CodeownersEntryReferenceSet.kt:121)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.innerResolveInContext(FileReference.java:178)
	at com.github.fantom.codeowners.reference.CodeownersEntryReferenceSet$CodeownersEntryReference.innerResolveInContext(CodeownersEntryReferenceSet.kt:106)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.innerResolve(FileReference.java:138)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:594)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:589)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:184)
	at com.intellij.openapi.util.Computable.get(Computable.java:18)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:260)
	at com.intellij.openapi.util.Computable.get(Computable.java:18)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:238)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:184)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.multiResolve(FileReference.java:122)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.getContexts(FileReference.java:106)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.lambda$innerResolve$0(FileReference.java:131)
	at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:114)
	at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:44)
	at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.innerResolve(FileReference.java:131)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:594)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:589)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:184)
	at com.intellij.openapi.util.Computable.get(Computable.java:18)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:260)
	at com.intellij.openapi.util.Computable.get(Computable.java:18)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:238)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:184)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.multiResolve(FileReference.java:122)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.getContexts(FileReference.java:106)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.lambda$innerResolve$0(FileReference.java:131)
	at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:114)
	at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:44)
	at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.innerResolve(FileReference.java:131)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:594)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:589)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:184)
	at com.intellij.openapi.util.Computable.get(Computable.java:18)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:260)
	at com.intellij.openapi.util.Computable.get(Computable.java:18)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:238)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:184)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.multiResolve(FileReference.java:122)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.getContexts(FileReference.java:106)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.lambda$innerResolve$0(FileReference.java:131)
	at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:114)
	at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:44)
	at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.innerResolve(FileReference.java:131)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:594)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:589)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:184)
	at com.intellij.openapi.util.Computable.get(Computable.java:18)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:260)
	at com.intellij.openapi.util.Computable.get(Computable.java:18)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:238)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:184)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.multiResolve(FileReference.java:122)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.getContexts(FileReference.java:106)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.lambda$innerResolve$0(FileReference.java:131)
	at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:114)
	at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:44)
	at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.innerResolve(FileReference.java:131)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:594)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:589)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:184)
	at com.intellij.openapi.util.Computable.get(Computable.java:18)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:260)
	at com.intellij.openapi.util.Computable.get(Computable.java:18)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:238)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:184)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.multiResolve(FileReference.java:122)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.getContexts(FileReference.java:106)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.lambda$innerResolve$0(FileReference.java:131)
	at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:114)
	at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:44)
	at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.innerResolve(FileReference.java:131)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:594)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:589)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:184)
	at com.intellij.openapi.util.Computable.get(Computable.java:18)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:260)
	at com.intellij.openapi.util.Computable.get(Computable.java:18)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:238)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:184)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.multiResolve(FileReference.java:122)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.getContexts(FileReference.java:106)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.lambda$innerResolve$0(FileReference.java:131)
	at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:114)
	at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:44)
	at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.innerResolve(FileReference.java:131)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:594)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:589)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:184)
	at com.intellij.openapi.util.Computable.get(Computable.java:18)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:260)
	at com.intellij.openapi.util.Computable.get(Computable.java:18)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:238)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:184)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.multiResolve(FileReference.java:122)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.getContexts(FileReference.java:106)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.lambda$innerResolve$0(FileReference.java:131)
	at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:114)
	at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:44)
	at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.innerResolve(FileReference.java:131)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:594)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:589)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:184)
	at com.intellij.openapi.util.Computable.get(Computable.java:18)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:260)
	at com.intellij.openapi.util.Computable.get(Computable.java:18)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:238)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:184)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.multiResolve(FileReference.java:122)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.getContexts(FileReference.java:106)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.lambda$innerResolve$0(FileReference.java:131)
	at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:114)
	at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:44)
	at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.innerResolve(FileReference.java:131)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:594)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:589)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:184)
	at com.intellij.openapi.util.Computable.get(Computable.java:18)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:260)
	at com.intellij.openapi.util.Computable.get(Computable.java:18)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:238)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:184)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.multiResolve(FileReference.java:122)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.getContexts(FileReference.java:106)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.lambda$innerResolve$0(FileReference.java:131)
	at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:114)
	at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:44)
	at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.innerResolve(FileReference.java:131)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:594)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:589)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:184)
	at com.intellij.openapi.util.Computable.get(Computable.java:18)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:260)
	at com.intellij.openapi.util.Computable.get(Computable.java:18)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:238)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:184)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.multiResolve(FileReference.java:122)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.getContexts(FileReference.java:106)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.lambda$innerResolve$0(FileReference.java:131)
	at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:114)
	at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:44)
	at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.innerResolve(FileReference.java:131)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:594)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:589)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:184)
	at com.intellij.openapi.util.Computable.get(Computable.java:18)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:260)
	at com.intellij.openapi.util.Computable.get(Computable.java:18)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:238)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:184)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.multiResolve(FileReference.java:122)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.getContexts(FileReference.java:106)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReferenceCompletionImpl.getFileReferenceCompletionVariants(FileReferenceCompletionImpl.java:70)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.getVariants(FileReference.java:293)
	at com.intellij.codeInsight.completion.CompletionData.completeReference(CompletionData.java:247)
	at com.intellij.codeInsight.completion.CompletionVariant.addReferenceCompletions(CompletionVariant.java:124)
	at com.intellij.codeInsight.completion.CompletionData.completeReference(CompletionData.java:67)
	at com.intellij.codeInsight.completion.LegacyCompletionContributor.lambda$completeReference$0(LegacyCompletionContributor.java:75)
	at com.intellij.codeInsight.completion.LegacyCompletionContributor.processReference(LegacyCompletionContributor.java:129)
	at com.intellij.codeInsight.completion.LegacyCompletionContributor.processReferences(LegacyCompletionContributor.java:112)
	at com.intellij.codeInsight.completion.LegacyCompletionContributor.completeReference(LegacyCompletionContributor.java:73)
	at com.intellij.codeInsight.completion.LegacyCompletionContributor.fillCompletionVariants(LegacyCompletionContributor.java:54)
	at com.intellij.codeInsight.completion.CompletionService.getVariantsFromContributors(CompletionService.java:77)
	at com.intellij.codeInsight.completion.CompletionResultSet.runRemainingContributors(CompletionResultSet.java:154)
	at com.intellij.codeInsight.completion.CompletionResultSet.runRemainingContributors(CompletionResultSet.java:146)
	at com.intellij.codeInsight.completion.CompletionResultSet.runRemainingContributors(CompletionResultSet.java:142)
	at com.intellij.codeInsight.template.impl.LiveTemplateCompletionContributor$1.addCompletions(LiveTemplateCompletionContributor.java:89)
	at com.intellij.codeInsight.completion.CompletionProvider.addCompletionVariants(CompletionProvider.java:25)
	at com.intellij.codeInsight.completion.CompletionContributor.fillCompletionVariants(CompletionContributor.java:158)
	at com.intellij.codeInsight.completion.CompletionService.getVariantsFromContributors(CompletionService.java:77)
	at com.intellij.codeInsight.completion.CompletionService.getVariantsFromContributors(CompletionService.java:60)
	at com.intellij.codeInsight.completion.CompletionService.performCompletion(CompletionService.java:133)
	at com.intellij.codeInsight.completion.BaseCompletionService.performCompletion(BaseCompletionService.java:41)
	at com.intellij.codeInsight.completion.CompletionProgressIndicator.lambda$calculateItems$12(CompletionProgressIndicator.java:865)
	at com.intellij.util.indexing.FileBasedIndex.lambda$ignoreDumbMode$0(FileBasedIndex.java:172)
	at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:114)
	at com.intellij.util.indexing.FileBasedIndexEx.ignoreDumbMode(FileBasedIndexEx.java:581)
	at com.intellij.util.indexing.FileBasedIndex.ignoreDumbMode(FileBasedIndex.java:171)
	at com.intellij.util.indexing.DumbModeAccessType.ignoreDumbMode(DumbModeAccessType.java:43)
	at com.intellij.codeInsight.completion.CompletionProgressIndicator.calculateItems(CompletionProgressIndicator.java:861)
	at com.intellij.codeInsight.completion.CompletionProgressIndicator.runContributors(CompletionProgressIndicator.java:849)
	at com.intellij.codeInsight.completion.CodeCompletionHandlerBase.lambda$startContributorThread$6(CodeCompletionHandlerBase.java:352)
	at com.intellij.codeInsight.completion.AsyncCompletion.lambda$tryReadOrCancel$5(CompletionThreading.java:172)
	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1084)
	at com.intellij.codeInsight.completion.AsyncCompletion.tryReadOrCancel(CompletionThreading.java:170)
	at com.intellij.codeInsight.completion.CodeCompletionHandlerBase.lambda$startContributorThread$7(CodeCompletionHandlerBase.java:344)
	at com.intellij.codeInsight.completion.AsyncCompletion.lambda$startThread$0(CompletionThreading.java:95)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:188)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$12(CoreProgressManager.java:624)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:698)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:646)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:623)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:66)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:175)
	at com.intellij.codeInsight.completion.AsyncCompletion.lambda$startThread$1(CompletionThreading.java:91)
	at com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:263)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	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.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:668)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:665)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:665)
	at java.base/java.lang.Thread.run(Thread.java:829)

Bitbucket syntax

Show ownership changes in changed files

Show how ownership is changed after files/folders are moved/renamed, in the Local changes panel, the same way previous paths are shown for moved/renamed files
изображение

Support inline comments

It seems this wasn't always the case, but per the Github example, inline comments are now supported:

*.js    @js-owner #This is an inline comment.

However, when the plugin encounters one, it currently stops parsing the rest of the file.

AssertionError when closing a project

Exception is thrown when closing a project:

Worker exited due to exception

java.lang.AssertionError: Container 'ProjectImpl@368661886 services' was disposed
	at com.intellij.openapi.diagnostic.DefaultLogger.error(DefaultLogger.java:83)
	at com.intellij.openapi.diagnostic.Logger.error(Logger.java:436)
	at com.intellij.util.concurrency.SchedulingWrapper$MyScheduledFutureTask.setException(SchedulingWrapper.java:288)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:269)
	at com.intellij.util.concurrency.SchedulingWrapper$MyScheduledFutureTask.run(SchedulingWrapper.java:272)
	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:840)
Caused by: com.intellij.platform.instanceContainer.internal.ContainerDisposedException: Container 'ProjectImpl@368661886 services' was disposed
	at com.intellij.platform.instanceContainer.internal.InstanceContainerImpl.state(InstanceContainerImpl.kt:59)
	at com.intellij.platform.instanceContainer.internal.InstanceContainerImpl.state(InstanceContainerImpl.kt:38)
	at com.intellij.platform.instanceContainer.internal.InstanceContainerImpl.getInstanceHolder(InstanceContainerImpl.kt:264)
	at com.intellij.serviceContainer.ComponentManagerImpl.doGetService(ComponentManagerImpl.kt:1024)
	at com.intellij.serviceContainer.ComponentManagerImpl.getService(ComponentManagerImpl.kt:988)
	at com.intellij.openapi.vcs.FileStatusManager.getInstance(FileStatusManager.java:22)
	at com.github.fantom.codeowners.CodeownersManager$debouncedStatusesChanged$1.task(CodeownersManager.kt:101)
	at com.github.fantom.codeowners.util.Debounced.run$lambda$0(Debounced.kt:26)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	... 8 more
Caused by: com.intellij.platform.instanceContainer.internal.DisposalTrace
	at com.intellij.platform.instanceContainer.internal.InstanceContainerImpl.dispose(InstanceContainerImpl.kt:253)
	at com.intellij.serviceContainer.ComponentManagerImpl.dispose(ComponentManagerImpl.kt:1696)
	at com.intellij.openapi.project.impl.ProjectImpl.dispose(ProjectImpl.kt:316)
	at com.intellij.openapi.util.ObjectTree.runWithTrace(ObjectTree.java:130)
	at com.intellij.openapi.util.ObjectTree.executeAll(ObjectTree.java:162)
	at com.intellij.openapi.util.Disposer.dispose(Disposer.java:250)
	at com.intellij.openapi.util.Disposer.dispose(Disposer.java:238)
	at com.intellij.openapi.project.impl.ProjectManagerImpl.closeProject$lambda$15(ProjectManagerImpl.kt:406)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:975)
	at com.intellij.openapi.project.impl.ProjectManagerImpl.closeProject(ProjectManagerImpl.kt:388)
	at com.intellij.openapi.project.impl.ProjectManagerImpl.closeProject$default(ProjectManagerImpl.kt:318)
	at com.intellij.openapi.project.impl.ProjectManagerImpl.closeAndDispose(ProjectManagerImpl.kt:418)
	at com.intellij.openapi.wm.impl.CloseProjectWindowHelper.closeProjectAndShowWelcomeFrameIfNoProjectOpened(CloseProjectWindowHelper.kt:57)
	at com.intellij.openapi.wm.impl.CloseProjectWindowHelper.windowClosing(CloseProjectWindowHelper.kt:44)
	at com.intellij.openapi.wm.impl.ProjectFrameHelper.windowClosing(ProjectFrameHelper.kt:434)
	at com.intellij.openapi.wm.impl.WindowCloseListener.windowClosing(ProjectFrameHelper.kt:454)
	at java.desktop/java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:357)
	at java.desktop/java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:357)
	at java.desktop/java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:357)
	at java.desktop/java.awt.Window.processWindowEvent(Window.java:2114)
	at java.desktop/javax.swing.JFrame.processWindowEvent(JFrame.java:298)
	at java.desktop/java.awt.Window.processEvent(Window.java:2073)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5027)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
	at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2809)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4855)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:794)
	at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:739)
	at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:733)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:766)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:764)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:763)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:695)
	at com.intellij.ide.IdeEventQueue._dispatchEvent$lambda$12(IdeEventQueue.kt:589)
	at com.intellij.openapi.application.impl.RwLockHolder.runWithoutImplicitRead(RwLockHolder.kt:44)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:589)
	at com.intellij.ide.IdeEventQueue.access$_dispatchEvent(IdeEventQueue.kt:72)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:355)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:354)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:793)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:354)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:349)
	at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$1(IdeEventQueue.kt:1014)
	at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:114)
	at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:1014)
	at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$7(IdeEventQueue.kt:349)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:848)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:391)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)

Exception when renaming java package directory

изображение
When renaming java package from context menu (open project tree -> open context menu -> refactor -> rename -> refactor)
Reproducible if this directory is part (glob segment) of one of the codeowners rules, probably because since this segment is a reference of this directory, it must handle renaming somehow

Cannot find CODEOWNERS file in node_modules subdir

Detector com.github.fantom.codeowners.CodeownersFileTypeDetector@33d8f5ba (class com.github.fantom.codeowners.CodeownersFileTypeDetector) exception occurred:

java.io.FileNotFoundException: /Users/uer/path/to/repo/node_modules/lottie-react-native/CODEOWNERS (No such file or directory)
	at java.base/java.io.FileInputStream.open0(Native Method)
	at java.base/java.io.FileInputStream.open(FileInputStream.java:219)
	at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
	at com.intellij.openapi.vfs.impl.local.LocalFileSystemBase.getInputStream(LocalFileSystemBase.java:401)
	at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl.getInputStream(PersistentFSImpl.java:661)
	at com.intellij.openapi.vfs.newvfs.impl.VirtualFileImpl.getInputStream(VirtualFileImpl.java:110)
	at com.github.fantom.codeowners.CodeownersFileTypeDetector.detect(CodeownersFileTypeDetector.kt:35)
	at com.intellij.openapi.fileTypes.impl.FileTypeDetectionService.lambda$detect$6(FileTypeDetectionService.java:646)
	at com.intellij.openapi.fileEditor.impl.LoadTextUtil.processTextFromBinaryPresentationOrNull(LoadTextUtil.java:640)
	at com.intellij.openapi.fileTypes.impl.FileTypeDetectionService.detect(FileTypeDetectionService.java:635)
	at com.intellij.openapi.fileTypes.impl.FileTypeDetectionService.detectFromContent(FileTypeDetectionService.java:558)
	at com.intellij.openapi.fileTypes.impl.FileTypeDetectionService.getOrDetectFromContent(FileTypeDetectionService.java:223)
	at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.isFileOfType(FileTypeManagerImpl.java:707)
	at com.intellij.util.xml.impl.DomManagerImpl$4.visitFile(DomManagerImpl.java:167)
	at com.intellij.openapi.vfs.VirtualFileVisitor.visitFileEx(VirtualFileVisitor.java:114)
	at com.intellij.openapi.vfs.VfsUtilCore.visitChildrenRecursively(VfsUtilCore.java:294)
	at com.intellij.openapi.vfs.VfsUtilCore.visitChildrenRecursively(VfsUtilCore.java:318)
	at com.intellij.util.xml.impl.DomManagerImpl.calcDomChangeEvents(DomManagerImpl.java:164)
	at com.intellij.util.xml.impl.DomManagerImpl$2.prepareChange(DomManagerImpl.java:120)
	at com.intellij.openapi.vfs.newvfs.AsyncEventSupport.lambda$runAsyncListeners$1(AsyncEventSupport.java:90)
	at com.intellij.openapi.application.ReadAction.lambda$run$1(ReadAction.java:59)
	at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:933)
	at com.intellij.openapi.application.ReadAction.compute(ReadAction.java:68)
	at com.intellij.openapi.application.ReadAction.run(ReadAction.java:58)
	at com.intellij.openapi.vfs.newvfs.AsyncEventSupport.runAsyncListeners(AsyncEventSupport.java:90)
	at com.intellij.openapi.vfs.newvfs.RefreshQueueImpl.runAsyncListeners(RefreshQueueImpl.java:152)
	at com.intellij.openapi.vfs.newvfs.RefreshQueueImpl.lambda$scheduleAsynchronousPreprocessing$4(RefreshQueueImpl.java:112)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.insideReadAction(NonBlockingReadActionImpl.java:536)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$attemptComputation$3(NonBlockingReadActionImpl.java:501)
	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1152)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runInReadActionWithWriteActionPriority$0(ProgressIndicatorUtils.java:75)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:158)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runWithWriteActionPriority$1(ProgressIndicatorUtils.java:115)
	at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$0(ProgressManager.java:58)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:189)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$12(CoreProgressManager.java:608)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:683)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:639)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:607)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:176)
	at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:58)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runWithWriteActionPriority(ProgressIndicatorUtils.java:112)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runInReadActionWithWriteActionPriority(ProgressIndicatorUtils.java:75)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.attemptComputation(NonBlockingReadActionImpl.java:501)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$transferToBgThread$1(NonBlockingReadActionImpl.java:408)
	at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:241)
	at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:31)
	at com.intellij.util.concurrency.BoundedTaskExecutor$1.execute(BoundedTaskExecutor.java:214)
	at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:212)
	at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:203)
	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.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:668)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:665)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:665)
	at java.base/java.lang.Thread.run(Thread.java:829)

Show ownership change in Pull Request view file tree

Show that the modified file changed its ownership if there is a corresponding change in the CODEOWNERS file, in the Pull Request view file tree, when grouping by owners is enabled.
Think about how to represent other CODEOWNERS file changes effects, like what exact files, not modified by the PR, are going to change their ownership and how.

More precise file detection

Currently plugin uses first few characters to detect file type (Github or Bitbucket). But if it doesn't find Bitbucket-specific char sequencief, it asssumes it is Github file. And it becomes wrong assumption if there is long documentation comment header in file, so that first codeowners rule (which is of interest for file type detector) is not in that few first characters.

Actual behaviour: Bitbucket file is detected as being Github one which gives syntactic error

Expected Behaviour: Bitbucket file detected correctly no matter how far first rule is from beginning of a file

Wrong CODEOWNERS file found/used

My PHP project has a CODEOWNERS in the project root dir, as well as a handful of others from dependencies in vendor/<whatever>/CODEOWNERS. When I'm viewing a file from my project (outside of the vendor/ directory) the plugin seems to have picked one particular one of the CODEOWNER files within the repository to use. In fact, it seems to use this for all files, both from within that vendor dir, as well as anywhere else in the project.

As it happens, that file has a single * rule, so all files show up with a single owner, rather than showing the true ownership within my project/team.

It doesn't seem possible (on 0.4.0) to explicitly set the CODEOWNERS file that it will use, which might be a nice addition; but failing that, I would think that any given file should use the nearest-ancestor CODEOWNERS file, and should not ever use one that's in a different branch of the tree (save the exceptions allowed for CODEOWNERS in docs/ or .github/ folders)

Infinite Indexing Loop in Intellij 2023.3

Plugin version: 0.6.0
IntelliJ Version: 2023.3

023-12-01 15:36:33,817 [2123663]   INFO - #c.i.u.i.d.AppIndexingDependenciesService - Invalidating all indexing flags. Reason: Rebuild requested for index CodeownersFilesIndex
2023-12-01 15:36:33,821 [2123667]   INFO - #c.i.u.i.FileBasedIndexImpl - Rebuild requested for index CodeownersFilesIndex
com.intellij.util.indexing.StorageException: java.lang.NoClassDefFoundError: org/apache/commons/lang/builder/HashCodeBuilder
	at com.intellij.util.indexing.impl.MapReduceIndex.updateWithMap(MapReduceIndex.java:372)
	at com.intellij.util.indexing.storage.MapReduceIndexBase.updateWithMap(MapReduceIndexBase.java:102)
	at com.intellij.util.indexing.impl.MapReduceIndex$IndexUpdateComputable.compute(MapReduceIndex.java:401)
	at com.intellij.util.indexing.impl.MapReduceIndex$IndexUpdateComputable.compute(MapReduceIndex.java:383)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.indexing.composite.CompositeInvertedIndexBase.lambda$mapInputAndPrepareUpdate$3(CompositeInvertedIndexBase.java:77)
	at com.intellij.util.indexing.IndexInfrastructureExtensionUpdateComputation.compute(IndexInfrastructureExtensionUpdateComputation.java:27)
	at com.intellij.util.indexing.IndexInfrastructureExtensionUpdateComputation.compute(IndexInfrastructureExtensionUpdateComputation.java:11)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.util.indexing.FileBasedIndexImpl.lambda$runUpdateForPersistentData$24(FileBasedIndexImpl.java:1638)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:634)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$computeInNonCancelableSection$3(CoreProgressManager.java:236)
	at com.intellij.openapi.progress.Cancellation.computeInNonCancelableSection(Cancellation.java:53)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeInNonCancelableSection(CoreProgressManager.java:236)
	at com.intellij.util.indexing.FileBasedIndexImpl.lambda$runUpdateForPersistentData$25(FileBasedIndexImpl.java:1638)
	at com.intellij.util.indexing.StorageBufferingHandler.runUpdate(StorageBufferingHandler.java:22)
	at com.intellij.util.indexing.FileBasedIndexImpl.runUpdateForPersistentData(FileBasedIndexImpl.java:1637)
	at com.intellij.util.indexing.SingleIndexValueApplier.doApply(SingleIndexValueApplier.java:62)
	at com.intellij.util.indexing.SingleIndexValueApplier.apply(SingleIndexValueApplier.java:50)
	at com.intellij.util.indexing.FileIndexesValuesApplier.applyModifications(FileIndexesValuesApplier.java:199)
	at com.intellij.util.indexing.FileIndexesValuesApplier.lambda$apply$0(FileIndexesValuesApplier.java:171)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeNonCancelableSection$2(CoreProgressManager.java:228)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:685)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:641)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$computeInNonCancelableSection$3(CoreProgressManager.java:236)
	at com.intellij.openapi.progress.Cancellation.computeInNonCancelableSection(Cancellation.java:57)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeInNonCancelableSection(CoreProgressManager.java:236)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeNonCancelableSection(CoreProgressManager.java:227)
	at com.intellij.util.indexing.contentQueue.IndexUpdateRunner.lambda$scheduleIndexWriting$7(IndexUpdateRunner.java:781)
	at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:244)
	at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:30)
	at com.intellij.util.concurrency.BoundedTaskExecutor$1.executeFirstTaskAndHelpQueue(BoundedTaskExecutor.java:222)
	at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:218)
	at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:210)
	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:840)
Caused by: java.lang.NoClassDefFoundError: org/apache/commons/lang/builder/HashCodeBuilder
	at com.github.fantom.codeowners.indexing.CodeownersEntryOccurrence.hashCode(CodeownersEntryOccurrence.kt:85)
	at java.base/java.util.HashMap.hash(HashMap.java:338)
	at java.base/java.util.HashMap.put(HashMap.java:610)
	at com.intellij.util.indexing.InputMapExternalizer.save(InputMapExternalizer.java:59)
	at com.intellij.util.indexing.InputMapExternalizer.save(InputMapExternalizer.java:24)
	at com.intellij.util.indexing.impl.forward.AbstractForwardIndexAccessor.serializeToByteSeq(AbstractForwardIndexAccessor.java:74)
	at com.intellij.util.indexing.impl.forward.AbstractForwardIndexAccessor.serializeValueToByteSeq(AbstractForwardIndexAccessor.java:63)
	at com.intellij.util.indexing.impl.forward.AbstractForwardIndexAccessor.serializeIndexedData(AbstractForwardIndexAccessor.java:44)
	at com.intellij.util.indexing.impl.forward.AbstractForwardIndexAccessor.serializeIndexedData(AbstractForwardIndexAccessor.java:39)
	at com.intellij.util.indexing.impl.MapReduceIndex.updateForwardIndex(MapReduceIndex.java:288)
	at com.intellij.util.indexing.impl.storage.TransientFileContentIndex.updateForwardIndex(TransientFileContentIndex.java:78)
	at com.intellij.util.indexing.impl.MapReduceIndex.lambda$prepareUpdate$4(MapReduceIndex.java:273)
	at com.intellij.util.indexing.impl.UpdateData.updateForwardIndex(UpdateData.java:63)
	at com.intellij.util.indexing.impl.MapReduceIndex.updateWithMap(MapReduceIndex.java:365)
	... 40 more
Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang.builder.HashCodeBuilder PluginClassLoader(plugin=PluginDescriptor(name=CODEOWNERS, id=fantom.codeowners, descriptorPath=plugin.xml, path=~/.local/share/JetBrains/IntelliJIdea2023.3/CODEOWNERS, version=0.6.0, package=null, isBundled=false), packagePrefix=null, state=active)
	... 54 more

Incompatible with PyCharm 2022.3

I'm using PyCharm Pro and just upgraded to v2022.3. This plugin is now reported as incompatible; the build number has increased from 222 to 223.

com.intellij.diagnostic.PluginException: Non-idempotent computation: it returns different results when invoked multiple times or on different threads: 13 != 0

com.intellij.diagnostic.PluginException: Non-idempotent computation: it returns different results when invoked multiple times or on different threads:
  13 != 0
  which is length of [PsiElementResolveResult with class com.intellij.psi.impl.file.PsiJavaDirectoryImpl: main, PsiElementResolveResult with class com.intellij.psi.impl.file.PsiJavaDirectoryImpl: test, PsiElementResolveResult with class com.intellij.psi.impl.file.PsiJavaDirectoryImpl: main, PsiElementResolveResult with class com.intellij.psi.impl.file.PsiJavaDirectoryImpl: test, PsiElementResolveResult with class com.intellij.psi.impl.file.PsiJavaDirectoryImpl: main, PsiElementResolveResult with class com.intellij.psi.impl.file.PsiJavaDirectoryImpl: main, PsiElementResolveResult with class com.intellij.psi.impl.file.PsiJavaDirectoryImpl: test, PsiElementResolveResult with class com.intellij.psi.impl.file.PsiJavaDirectoryImpl: main, PsiElementResolveResult with class com.intellij.psi.impl.file.PsiJavaDirectoryImpl: test, PsiElementResolveResult with class com.intellij.psi.impl.file.PsiJavaDirectoryImpl: main, PsiElementResolveResult with class com.intellij.psi.impl.file.PsiJavaDirectoryImpl: test, PsiElementResolveResult with class com.intellij.psi.impl.file.PsiJavaDirectoryImpl: main, PsiElementResolveResult with class com.intellij.psi.impl.file.PsiJavaDirectoryImpl: test] and []

Recomputation gives [Lcom.intellij.psi.ResolveResult;@5fe44ba6 (class [Lcom.intellij.psi.ResolveResult;) which is equivalent to 'fresh'
Recomputation log:
  Resolving com.github.fantom.codeowners.reference.CodeownersEntryReferenceSetNew$CodeownersEntryReference@3ec7ac23 of class com.github.fantom.codeowners.reference.CodeownersEntryReferenceSetNew$CodeownersEntryReference [Plugin: fantom.codeowners]
	at com.intellij.diagnostic.PluginProblemReporterImpl.createPluginExceptionByClass(PluginProblemReporterImpl.java:23)
	at com.intellij.diagnostic.PluginException.createByClass(PluginException.java:83)
	at com.intellij.util.IdempotenceChecker.reportFailure(IdempotenceChecker.java:90)
	at com.intellij.util.IdempotenceChecker.checkEquivalence(IdempotenceChecker.java:77)
	at com.intellij.psi.impl.source.resolve.ResolveCache.cache(ResolveCache.java:322)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:249)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:184)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.multiResolve(FileReference.java:122)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.getContexts(FileReference.java:106)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.lambda$innerResolve$0(FileReference.java:131)
	at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:114)
	at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:44)
	at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.innerResolve(FileReference.java:131)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:594)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:589)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:184)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:260)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:238)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:184)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.multiResolve(FileReference.java:122)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.getContexts(FileReference.java:106)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.lambda$innerResolve$0(FileReference.java:131)
	at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:114)
	at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:44)
	at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.innerResolve(FileReference.java:131)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:594)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:589)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:184)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:260)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:238)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:184)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.multiResolve(FileReference.java:122)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.getContexts(FileReference.java:106)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.lambda$innerResolve$0(FileReference.java:131)
	at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:114)
	at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:44)
	at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.innerResolve(FileReference.java:131)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:594)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:589)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:184)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:260)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:238)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:184)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.multiResolve(FileReference.java:122)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.getContexts(FileReference.java:106)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.lambda$innerResolve$0(FileReference.java:131)
	at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:114)
	at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:44)
	at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.innerResolve(FileReference.java:131)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:594)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:589)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:184)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:260)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:238)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:184)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.multiResolve(FileReference.java:122)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.getContexts(FileReference.java:106)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.lambda$innerResolve$0(FileReference.java:131)
	at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:114)
	at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:44)
	at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.innerResolve(FileReference.java:131)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:594)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:589)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:184)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:260)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:238)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:184)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.multiResolve(FileReference.java:122)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.getContexts(FileReference.java:106)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.lambda$innerResolve$0(FileReference.java:131)
	at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:114)
	at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:44)
	at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.innerResolve(FileReference.java:131)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:594)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:589)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:184)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:260)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:238)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:184)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.multiResolve(FileReference.java:122)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.getContexts(FileReference.java:106)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.lambda$innerResolve$0(FileReference.java:131)
	at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:114)
	at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:44)
	at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.innerResolve(FileReference.java:131)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:594)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:589)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:184)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:260)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:238)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:184)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.multiResolve(FileReference.java:122)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.getContexts(FileReference.java:106)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.lambda$innerResolve$0(FileReference.java:131)
	at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:114)
	at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:44)
	at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.innerResolve(FileReference.java:131)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:594)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:589)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:184)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:260)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:238)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:184)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.multiResolve(FileReference.java:122)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.resolve(FileReference.java:353)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.resolve(FileReference.java:47)
	at com.intellij.codeInsight.TargetElementUtilBase.getReferencedElement(TargetElementUtilBase.java:177)
	at com.intellij.codeInsight.TargetElementUtilBase.doGetReferenceOrReferencedElement(TargetElementUtilBase.java:165)
	at com.intellij.codeInsight.TargetElementUtilBase.getReferenceOrReferencedElement(TargetElementUtilBase.java:210)
	at com.intellij.codeInsight.TargetElementUtilBase.getReferencedElement(TargetElementUtilBase.java:254)
	at com.intellij.codeInsight.TargetElementUtilBase.doFindTargetElement(TargetElementUtilBase.java:233)
	at com.intellij.codeInsight.TargetElementUtilBase.findTargetElement(TargetElementUtilBase.java:298)
	at com.intellij.codeInsight.TargetElementUtil.findTargetElement(TargetElementUtil.java:147)
	at com.intellij.model.psi.impl.TargetsKt.fromTargetEvaluator(targets.kt:173)
	at com.intellij.model.psi.impl.TargetsKt.declarationsOrReferences(targets.kt:134)
	at com.intellij.model.psi.impl.TargetsKt.declaredReferencedData(targets.kt:41)
	at com.intellij.model.psi.impl.TargetsKt.targetSymbols(targets.kt:23)
	at com.intellij.codeInsight.daemon.impl.IdentifierHighlighterPass.getTargetSymbols(IdentifierHighlighterPass.java:194)
	at com.intellij.codeInsight.daemon.impl.IdentifierHighlighterPass.highlightReferencesAndDeclarations(IdentifierHighlighterPass.java:186)
	at com.intellij.codeInsight.daemon.impl.IdentifierHighlighterPass.doCollectInformation(IdentifierHighlighterPass.java:91)
	at com.intellij.codeInsight.highlighting.BackgroundHighlighter.lambda$updateHighlighted$1(BackgroundHighlighter.java:150)
	at com.intellij.codeInsight.highlighting.BackgroundHighlightingUtil.lambda$lookForInjectedFileInOtherThread$0(BackgroundHighlightingUtil.java:54)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.insideReadAction(NonBlockingReadActionImpl.java:536)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$attemptComputation$3(NonBlockingReadActionImpl.java:501)
	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1152)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runInReadActionWithWriteActionPriority$0(ProgressIndicatorUtils.java:75)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:158)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runWithWriteActionPriority$1(ProgressIndicatorUtils.java:115)
	at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$0(ProgressManager.java:58)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:189)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$12(CoreProgressManager.java:608)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:683)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:639)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:607)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:176)
	at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:58)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runWithWriteActionPriority(ProgressIndicatorUtils.java:112)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runInReadActionWithWriteActionPriority(ProgressIndicatorUtils.java:75)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.attemptComputation(NonBlockingReadActionImpl.java:501)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$transferToBgThread$1(NonBlockingReadActionImpl.java:408)
	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.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:668)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:665)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:665)
	at java.base/java.lang.Thread.run(Thread.java:829)

`NullPointerException: getParent(...) must not be null`

java.lang.NullPointerException: getParent(...) must not be null
	at com.github.fantom.codeowners.file.type.CodeownersFileType.getRoot(CodeownersFileType.kt:34)
	at com.github.fantom.codeowners.file.type.kind.GithubFileType.getRoot(GithubFileType.kt:23)
	at com.github.fantom.codeowners.reference.CodeownersPatternReferenceSetRecursiveReverse.computeDefaultContexts(CodeownersPatternReferenceSetRecursiveReverse.kt:72)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReferenceSet.getDefaultContexts(FileReferenceSet.java:300)
	at com.github.fantom.codeowners.reference.CodeownersPatternReferenceSetRecursiveReverse$CodeownersPatternReference.innerResolve$lambda$0(CodeownersPatternReferenceSetRecursiveReverse.kt:419)
	at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:111)
	at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:27)
	at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:66)
	at com.github.fantom.codeowners.reference.CodeownersPatternReferenceSetRecursiveReverse$CodeownersPatternReference.innerResolve(CodeownersPatternReferenceSetRecursiveReverse.kt:413)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:590)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference$MyResolver.resolve(FileReference.java:585)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:174)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:234)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:213)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:174)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.multiResolve(FileReference.java:117)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.resolve(FileReference.java:346)
	at com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference.resolve(FileReference.java:44)
	at com.intellij.codeInsight.TargetElementUtilBase.getReferencedElement(TargetElementUtilBase.java:173)
	at com.intellij.codeInsight.TargetElementUtilBase.doGetReferenceOrReferencedElement(TargetElementUtilBase.java:161)
	at com.intellij.codeInsight.TargetElementUtilBase.getReferenceOrReferencedElement(TargetElementUtilBase.java:203)
	at com.intellij.codeInsight.TargetElementUtilBase.getReferencedElement(TargetElementUtilBase.java:245)
	at com.intellij.codeInsight.TargetElementUtilBase.doFindTargetElement(TargetElementUtilBase.java:225)
	at com.intellij.codeInsight.TargetElementUtilBase.findTargetElement(TargetElementUtilBase.java:287)
	at com.intellij.codeInsight.TargetElementUtil.findTargetElement(TargetElementUtil.java:147)
	at com.intellij.model.psi.impl.TargetsKt.fromTargetEvaluator(targets.kt:175)
	at com.intellij.model.psi.impl.TargetsKt.declarationsOrReferences(targets.kt:136)
	at com.intellij.model.psi.impl.TargetsKt.declaredReferencedData(targets.kt:42)
	at com.intellij.model.psi.impl.TargetsKt.targetSymbols(targets.kt:24)
	at com.intellij.codeInsight.daemon.impl.IdentifierHighlighterPass.getTargetSymbols(IdentifierHighlighterPass.java:216)
	at com.intellij.codeInsight.daemon.impl.IdentifierHighlighterPass.highlightReferencesAndDeclarations(IdentifierHighlighterPass.java:208)
	at com.intellij.codeInsight.daemon.impl.IdentifierHighlighterPass.doCollectInformation(IdentifierHighlighterPass.java:97)
	at com.intellij.codeInsight.highlighting.BackgroundHighlighter.lambda$submitIdentifierHighlighterPass$8(BackgroundHighlighter.java:293)
	at com.intellij.codeInsight.daemon.impl.HighlightingSessionImpl.runInsideHighlightingSession(HighlightingSessionImpl.java:163)
	at com.intellij.codeInsight.highlighting.BackgroundHighlighter.lambda$submitIdentifierHighlighterPass$9(BackgroundHighlighter.java:290)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtilService.runActionAndCancelBeforeWrite(ProgressIndicatorUtilService.java:73)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:128)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runWithWriteActionPriority$1(ProgressIndicatorUtils.java:111)
	at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$0(ProgressManager.java:73)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$1(CoreProgressManager.java:192)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$12(CoreProgressManager.java:610)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:685)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:641)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:609)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:78)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:179)
	at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:73)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runWithWriteActionPriority(ProgressIndicatorUtils.java:108)
	at com.intellij.codeInsight.highlighting.BackgroundHighlighter.lambda$submitIdentifierHighlighterPass$10(BackgroundHighlighter.java:287)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$OTelMonitor.callWrapped(NonBlockingReadActionImpl.java:840)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$OTelMonitor$MonitoredComputation.call(NonBlockingReadActionImpl.java:872)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.insideReadAction(NonBlockingReadActionImpl.java:604)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$attemptComputation$4(NonBlockingReadActionImpl.java:567)
	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1075)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runInReadActionWithWriteActionPriority$0(ProgressIndicatorUtils.java:73)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtilService.runActionAndCancelBeforeWrite(ProgressIndicatorUtilService.java:73)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:128)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runWithWriteActionPriority$1(ProgressIndicatorUtils.java:111)
	at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$0(ProgressManager.java:73)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$1(CoreProgressManager.java:192)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$12(CoreProgressManager.java:610)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:685)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:641)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:609)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:78)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:179)
	at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:73)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runWithWriteActionPriority(ProgressIndicatorUtils.java:108)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runInReadActionWithWriteActionPriority(ProgressIndicatorUtils.java:73)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.attemptComputation(NonBlockingReadActionImpl.java:567)
	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:840)

IntelliJ IDEA 2023.3.2 (Ultimate Edition)
Build #IU-233.13135.103, built on December 20, 2023
Runtime version: 17.0.9+7-b1087.9 aarch64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
macOS 14.2.1
GC: G1 Young Generation, G1 Old Generation
Memory: 8192M
Cores: 10
Metal Rendering is ON
Non-Bundled Plugins:
fantom.codeowners (0.7.0)
Kotlin: 233.13135.103-IJ

AlreadyDisposedException is thrown when closing project

com.intellij.serviceContainer.AlreadyDisposedException: Cannot create com.intellij.openapi.vcs.FileStatusManager because container is already disposed (container=Project(name=server2, containerState=DISPOSE_COMPLETED, componentStore=/Users/morph/dev/Projects/miro/server2) (disposed))
	at com.intellij.serviceContainer.ContainerUtilKt.throwAlreadyDisposedError(containerUtil.kt:40)
	at com.intellij.serviceContainer.ComponentManagerImpl.doGetService(ComponentManagerImpl.kt:695)
	at com.intellij.serviceContainer.ComponentManagerImpl.getService(ComponentManagerImpl.kt:629)
	at com.intellij.openapi.vcs.FileStatusManager.getInstance(FileStatusManager.java:13)
	at com.github.fantom.codeowners.CodeownersManager$debouncedStatusesChanged$1.task(CodeownersManager.kt:98)
	at com.github.fantom.codeowners.util.Debounced.run$lambda$0(Debounced.kt:26)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at com.intellij.util.concurrency.SchedulingWrapper$MyScheduledFutureTask.run(SchedulingWrapper.java:272)
	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)

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.