Code Monkey home page Code Monkey logo

Comments (8)

LinWanCen avatar LinWanCen commented on July 30, 2024

是 HTML 代码上显示了注释?还是说文件树注释,目前目录注释的确会应用到所有目录和文件。

from show-comment.

lettgers avatar lettgers commented on July 30, 2024

image

from show-comment.

LinWanCen avatar LinWanCen commented on July 30, 2024

可否提供完整的堆栈文本,图上没看到插件所在的包io.github.linwancen

from show-comment.

lettgers avatar lettgers commented on July 30, 2024

com.intellij.openapi.util.StackOverflowPreventedException: isValid leads to endless recursion in class com.intellij.freemarker.psi.files.FtlFileViewProvider: [Language: HTML, Language: FTL>]
at com.intellij.psi.impl.file.impl.FileManagerImpl.shouldResurrect(FileManagerImpl.java:632)
at com.intellij.psi.impl.file.impl.FileManagerImpl.evaluateValidity(FileManagerImpl.java:606)
at com.intellij.psi.impl.file.impl.FileManagerImpl.findCachedViewProvider(FileManagerImpl.java:225)
at com.intellij.psi.impl.file.impl.FileManagerImpl.getCachedPsiFileInner(FileManagerImpl.java:466)
at com.intellij.psi.impl.file.impl.FileManagerImpl.getCachedPsiFile(FileManagerImpl.java:380)
at com.intellij.psi.impl.PsiDocumentManagerBase.getCachedPsiFile(PsiDocumentManagerBase.java:143)
at com.intellij.psi.impl.PsiDocumentManagerImpl$1.lambda$fileContentLoaded$0(PsiDocumentManagerImpl.java:55)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:865)
at com.intellij.openapi.application.ReadAction.compute(ReadAction.java:61)
at com.intellij.psi.impl.PsiDocumentManagerImpl$1.fileContentLoaded(PsiDocumentManagerImpl.java:55)
at com.intellij.util.messages.impl.MessageBusImpl.invokeMethod(MessageBusImpl.java:645)
at com.intellij.util.messages.impl.MessageBusImpl.invokeListener(MessageBusImpl.java:620)
at com.intellij.util.messages.impl.MessageBusImpl.deliverMessage(MessageBusImpl.java:417)
at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:390)
at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:372)
at com.intellij.util.messages.impl.MessageBusImpl.access$200(MessageBusImpl.java:33)
at com.intellij.util.messages.impl.MessageBusImpl$MessagePublisher.invoke(MessageBusImpl.java:172)
at com.sun.proxy.$Proxy88.documentCreated(Unknown Source)
at com.intellij.psi.impl.PsiDocumentManagerBase.fireDocumentCreated(PsiDocumentManagerBase.java:750)
at com.intellij.psi.impl.PsiDocumentManagerImpl$1.fileContentLoaded(PsiDocumentManagerImpl.java:56)
at com.intellij.util.messages.impl.MessageBusImpl.invokeMethod(MessageBusImpl.java:645)
at com.intellij.util.messages.impl.MessageBusImpl.invokeListener(MessageBusImpl.java:620)
at com.intellij.util.messages.impl.MessageBusImpl.deliverMessage(MessageBusImpl.java:417)
at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:390)
at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:372)
at com.intellij.util.messages.impl.MessageBusImpl.access$200(MessageBusImpl.java:33)
at com.intellij.util.messages.impl.MessageBusImpl$MessagePublisher.invoke(MessageBusImpl.java:179)
at com.sun.proxy.$Proxy24.fileContentLoaded(Unknown Source)
at jdk.internal.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.multiCast(FileDocumentManagerImpl.java:173)
at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.lambda$new$0(FileDocumentManagerImpl.java:128)
at com.sun.proxy.$Proxy24.fileContentLoaded(Unknown Source)
at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.fileContentLoaded(FileDocumentManagerImpl.java:880)
at com.intellij.openapi.fileEditor.impl.FileDocumentManagerBase.getDocument(FileDocumentManagerBase.java:70)
at com.intellij.freemarker.lexer.FtlLexer.guessDirectiveStyle(FtlLexer.java:65)
at com.intellij.freemarker.psi.files.FtlFileViewProvider.(FtlFileViewProvider.java:43)
at com.intellij.freemarker.psi.files.FtlFileViewProviderFactory.createFileViewProvider(FtlFileViewProviderFactory.java:21)
at com.intellij.psi.impl.file.impl.FileManagerImpl.createFileViewProvider(FileManagerImpl.java:267)
at com.intellij.psi.impl.file.impl.FileManagerImpl.shouldResurrect(FileManagerImpl.java:636)
at com.intellij.psi.impl.file.impl.FileManagerImpl.evaluateValidity(FileManagerImpl.java:606)
at com.intellij.psi.impl.file.impl.FileManagerImpl.findCachedViewProvider(FileManagerImpl.java:225)
at com.intellij.psi.impl.file.impl.FileManagerImpl.findViewProvider(FileManagerImpl.java:182)
at com.intellij.psi.impl.file.impl.FileManagerImpl.findFile(FileManagerImpl.java:361)
at com.intellij.psi.impl.PsiManagerImpl.findFile(PsiManagerImpl.java:154)
at com.intellij.psi.impl.file.PsiDirectoryImpl.processChildren(PsiDirectoryImpl.java:193)
at com.intellij.psi.impl.file.PsiDirectoryImpl.getChildren(PsiDirectoryImpl.java:208)
at io.github.linwancen.plugin.show.Tree.dirDoc(Tree.java:138)
at io.github.linwancen.plugin.show.Tree.nodeDoc(Tree.java:82)
at io.github.linwancen.plugin.show.Tree.doc(Tree.java:58)
at io.github.linwancen.plugin.show.Tree.lambda$decorate$0(Tree.java:40)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:839)
at io.github.linwancen.plugin.show.Tree.decorate(Tree.java:39)
at com.intellij.ide.projectView.impl.CompoundProjectViewNodeDecorator.lambda$decorate$0(CompoundProjectViewNodeDecorator.java:47)
at com.intellij.ide.projectView.impl.CompoundProjectViewNodeDecorator.forEach(CompoundProjectViewNodeDecorator.java:59)
at com.intellij.ide.projectView.impl.CompoundProjectViewNodeDecorator.decorate(CompoundProjectViewNodeDecorator.java:47)
at com.intellij.ide.projectView.impl.nodes.AbstractPsiBasedNode.lambda$doUpdate$1(AbstractPsiBasedNode.java:196)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:839)
at com.intellij.ide.projectView.impl.nodes.AbstractPsiBasedNode.doUpdate(AbstractPsiBasedNode.java:147)
at com.intellij.ide.projectView.impl.nodes.AbstractPsiBasedNode.lambda$update$0(AbstractPsiBasedNode.java:143)
at com.intellij.util.AstLoadingFilter.lambda$toComputable$2(AstLoadingFilter.java:172)
at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:130)
at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:119)
at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:109)
at com.intellij.ide.projectView.impl.nodes.AbstractPsiBasedNode.update(AbstractPsiBasedNode.java:143)
at com.intellij.ide.util.treeView.PresentableNodeDescriptor.getUpdatedPresentation(PresentableNodeDescriptor.java:78)
at com.intellij.ide.util.treeView.PresentableNodeDescriptor.update(PresentableNodeDescriptor.java:30)
at com.intellij.ui.tree.StructureTreeModel$Node.update(StructureTreeModel.java:455)
at com.intellij.ui.tree.StructureTreeModel.invalidateInternal(StructureTreeModel.java:215)
at com.intellij.ui.tree.StructureTreeModel.lambda$invalidate$5(StructureTreeModel.java:181)
at com.intellij.ui.tree.StructureTreeModel.lambda$onValidThread$2(StructureTreeModel.java:135)
at com.intellij.ui.tree.StructureTreeModel.lambda$onValidThread$1(StructureTreeModel.java:117)
at com.intellij.util.concurrency.Invoker$Wrapper.get(Invoker.java:338)
at com.intellij.util.concurrency.Invoker$Wrapper.get(Invoker.java:329)
at com.intellij.util.concurrency.Invoker$Task.run(Invoker.java:316)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1084)
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:57)
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.openapi.progress.ProgressManager.runProcess(ProgressManager.java:57)
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.util.concurrency.Invoker.invokeSafely(Invoker.java:205)
at com.intellij.util.concurrency.Invoker.lambda$offerSafely$0(Invoker.java:183)
at com.intellij.util.concurrency.Invoker$Background.lambda$offer$0(Invoker.java:486)
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)

from show-comment.

LinWanCen avatar LinWanCen commented on July 30, 2024

看了下对应这个插件的源码顶端是在折叠中间包时显示上级包注释的功能处报错的。

if (parent.getChildren().length != 1) {

    @Nullable
    private static PsiDocComment dirDoc(PsiDirectory child) {
        while (true) {
            PsiDocComment docComment = OwnerToPsiDocUtils.dirDoc(child);
            if (docComment != null) {
                return docComment;
            }
            PsiDirectory parent = child.getParent();
            if (parent == null) {
                return null;
            }
            if (parent.getChildren().length != 1) {
                return null;
            }
            child = parent;
        }
    }

对应 IDEA 的代码顶端这里只是打日志没有抛异常,所以我也不好直接 try 来解决。

https://github.com/JetBrains/intellij-community/blob/9a9db7738edd926eb93903b3945d8247985338f4/platform/core-impl/src/com/intellij/psi/impl/file/impl/FileManagerImpl.java#L633

    if (tempProviders.containsKey(file)) {
      LOG.error(new StackOverflowPreventedException("isValid leads to endless recursion in " + viewProvider.getClass() + ": " + new ArrayList<>(viewProvider.getLanguages())));
    }

在提示这个问题后你的 IDEA 是否会出现 UI 崩溃?

具体为何触发原因暂时看不出来。

我可以提供一个开关用于关闭这个功能。

from show-comment.

lettgers avatar lettgers commented on July 30, 2024

好的感谢

from show-comment.

LinWanCen avatar LinWanCen commented on July 30, 2024

待插件市场 1.23 版本审核通过后更新版本,在设置界面去掉 compact 选项的勾即可。

from show-comment.

LinWanCen avatar LinWanCen commented on July 30, 2024

插件市场已通过

from show-comment.

Related Issues (20)

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.