Strange laggy highlighting in javascript files
已回答
Something else I'm noticing quite often is the highlighting in javascript files seems to be quite laggy. Often see files where the lower portion of a javascript file has very minimal highlighting applied. When I click to move the editor cursor inside one of these methods IDEA updates and suddenly highlights the method correctly, but all methods below this invisible fold remain minimally hightligted.
Often when changing code I need to quit the file in the editor and reopen it before the syntax highlighting is corrected to the new code. Also seems intentions might be laggy too, error highlights can be stubborn to clear.
See quite a lot of these kind of class cast exceptions in the idea log, are these expected/related?
2019-07-23 15:47:49,994 [1830547] ERROR - aemon.impl.PassExecutorService - com.intellij.lang.javascript.psi.impl.JSFileImpl cannot be cast to com.intellij.extapi.psi.StubBasedPsiElementBase
java.lang.ClassCastException: com.intellij.lang.javascript.psi.impl.JSFileImpl cannot be cast to com.intellij.extapi.psi.StubBasedPsiElementBase
at com.intellij.lang.javascript.psi.util.JSStubBasedPsiTreeUtil.findOwnDocCommentForStub(JSStubBasedPsiTreeUtil.java:487)
at com.intellij.lang.javascript.psi.util.JSStubBasedPsiTreeUtil.findOwnDocComment(JSStubBasedPsiTreeUtil.java:460)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.addTypeFromResolveResult(JSTypeEvaluator.java:1518)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.lambda$addEvaluableOnlyType$11(JSTypeEvaluator.java:379)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.lambda$processWithEvaluationGuard$45(JSTypeEvaluator.java:2783)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.runWithRecursionGuard(JSTypeEvaluator.java:2802)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.processWithEvaluationGuard(JSTypeEvaluator.java:2777)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.processItem(JSTypeEvaluator.java:2757)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.lambda$evaluateWithComplexityCheck$47(JSTypeEvaluator.java:2858)
at com.intellij.lang.javascript.psi.resolve.JSEvaluatorComplexityTracker.runComplexTask(JSEvaluatorComplexityTracker.java:24)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.evaluateWithComplexityCheck(JSTypeEvaluator.java:2858)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.addEvaluableOnlyType(JSTypeEvaluator.java:377)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.doAddType(JSTypeEvaluator.java:306)
at com.intellij.lang.ecmascript6.resolve.ES6TypeEvaluator.doAddType(ES6TypeEvaluator.java:279)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.addType(JSTypeEvaluator.java:299)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.addType(JSTypeEvaluator.java:290)
at com.intellij.lang.javascript.psi.types.evaluable.JSEvaluableOnlyTypeBase.lambda$null$0(JSEvaluableOnlyTypeBase.java:53)
at com.intellij.lang.javascript.psi.resolve.JSEvaluateContext.withAstAccessForbidden(JSEvaluateContext.java:189)
at com.intellij.lang.javascript.psi.types.evaluable.JSEvaluableOnlyTypeBase.lambda$substituteImpl$1(JSEvaluableOnlyTypeBase.java:53)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.runWithRecursionGuard(JSTypeEvaluator.java:2802)
at com.intellij.lang.javascript.psi.types.evaluable.JSEvaluableOnlyTypeBase.substituteImpl(JSEvaluableOnlyTypeBase.java:52)
at com.intellij.lang.javascript.psi.types.JSResolvedTypeIdCache.getLocalCachedValue(JSResolvedTypeIdCache.java:49)
at com.intellij.lang.javascript.psi.types.JSTypeBaseImpl$JSResolvedTypeIdImpl.getLocalCachedValue(JSTypeBaseImpl.java:655)
at com.intellij.lang.javascript.psi.types.JSTypeBaseImpl.getLocalCachedType(JSTypeBaseImpl.java:126)
at com.intellij.lang.javascript.psi.types.evaluable.JSEvaluableOnlyTypeBase.substitute(JSEvaluableOnlyTypeBase.java:38)
at com.intellij.lang.javascript.psi.types.evaluable.JSReferenceType.substitute(JSReferenceType.java:20)
at com.intellij.lang.javascript.psi.types.JSCompositeTypeBaseImpl.getTypeOfType(JSCompositeTypeBaseImpl.java:78)
at com.intellij.lang.javascript.psi.types.JSCompositeTypeImpl.lambda$flattenAndDeduplicate$1(JSCompositeTypeImpl.java:165)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.Iterator.forEachRemaining(Iterator.java:116)
at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:545)
at java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260)
at java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:438)
at one.util.streamex.AbstractStreamEx.toArray(AbstractStreamEx.java:344)
at one.util.streamex.AbstractStreamEx.toList(AbstractStreamEx.java:1154)
at com.intellij.lang.javascript.psi.types.JSCompositeTypeImpl.flattenAndDeduplicate(JSCompositeTypeImpl.java:168)
at com.intellij.lang.javascript.psi.types.JSCompositeTypeImpl.optimizeTypeIfUnionOrIntersection(JSCompositeTypeImpl.java:92)
at com.intellij.lang.javascript.psi.types.JSCompositeTypeImpl.optimizeTypeIfComposite(JSCompositeTypeImpl.java:77)
at com.intellij.lang.javascript.psi.types.JSCompositeTypeImpl.optimizeTypeIfComposite(JSCompositeTypeImpl.java:57)
at com.intellij.lang.javascript.psi.types.guard.TypeScriptTypeRelations.expandAndOptimizeTypeRecursive(TypeScriptTypeRelations.java:300)
at com.intellij.lang.javascript.psi.impl.JSFunctionImpl.getWidenReturnType(JSFunctionImpl.java:88)
at com.intellij.lang.javascript.psi.impl.JSFunctionImpl.getReturnTypeInContext(JSFunctionImpl.java:80)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.lambda$processFunction$27(JSTypeEvaluator.java:1353)
at com.intellij.lang.javascript.psi.resolve.JSEvaluateContext.processWithoutTopJSElementToApply(JSEvaluateContext.java:129)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.processFunction(JSTypeEvaluator.java:1342)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.addTypeFromProperty(JSTypeEvaluator.java:2043)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.addTypeFromElementResolveResult(JSTypeEvaluator.java:1892)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.addTypeFromResolveResult(JSTypeEvaluator.java:1531)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.addTypeFromResolveResult(JSTypeEvaluator.java:1477)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.lambda$processRefExpr$30(JSTypeEvaluator.java:1451)
at com.intellij.lang.javascript.psi.resolve.JSEvaluateContext.processExpression(JSEvaluateContext.java:203)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.processRefExpr(JSTypeEvaluator.java:1445)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.doEvaluateTypes(JSTypeEvaluator.java:511)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.lambda$evaluateTypes$13(JSTypeEvaluator.java:484)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.lambda$processWithEvaluationGuard$45(JSTypeEvaluator.java:2783)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.runWithRecursionGuard(JSTypeEvaluator.java:2802)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.processWithEvaluationGuard(JSTypeEvaluator.java:2777)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.processItem(JSTypeEvaluator.java:2757)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.evaluateTypes(JSTypeEvaluator.java:484)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.lambda$evaluateCallExpressionTypes$19(JSTypeEvaluator.java:1028)
at com.intellij.lang.javascript.psi.resolve.JSEvaluateContext.processWithJSElementToApply(JSEvaluateContext.java:102)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.evaluateCallExpressionTypes(JSTypeEvaluator.java:1028)
at com.intellij.lang.ecmascript6.resolve.ES6TypeEvaluator.evaluateCallExpressionTypes(ES6TypeEvaluator.java:254)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.doEvaluateTypes(JSTypeEvaluator.java:517)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.lambda$null$3(JSTypeEvaluator.java:185)
at com.intellij.lang.javascript.psi.resolve.JSEvaluatorComplexityTracker.resetComplexity(JSEvaluatorComplexityTracker.java:60)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.lambda$doEvaluateExpressionOrElementTypes$4(JSTypeEvaluator.java:182)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.runWithRecursionGuard(JSTypeEvaluator.java:2802)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.doEvaluateExpressionOrElementTypes(JSTypeEvaluator.java:181)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.lambda$static$0(JSTypeEvaluator.java:96)
at com.intellij.psi.impl.PsiParameterizedCachedValue.doCompute(PsiParameterizedCachedValue.java:45)
at com.intellij.util.CachedValueBase.lambda$getValueWithLock$0(CachedValueBase.java:236)
at com.intellij.openapi.util.RecursionManager$1.doPreventingRecursion(RecursionManager.java:116)
at com.intellij.util.CachedValueBase.getValueWithLock(CachedValueBase.java:237)
at com.intellij.psi.impl.PsiParameterizedCachedValue.getValue(PsiParameterizedCachedValue.java:35)
at com.intellij.psi.util.CachedValuesManager.getParameterizedCachedValue(CachedValuesManager.java:93)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.lambda$getElementType$5(JSTypeEvaluator.java:239)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.lambda$processWithEvaluationGuard$45(JSTypeEvaluator.java:2783)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.runWithRecursionGuard(JSTypeEvaluator.java:2802)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.processWithEvaluationGuard(JSTypeEvaluator.java:2777)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.getElementType(JSTypeEvaluator.java:237)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.getElementType(JSTypeEvaluator.java:223)
at com.intellij.lang.javascript.psi.resolve.JSTypeEvaluator.getExpressionType(JSTypeEvaluator.java:218)
at com.intellij.lang.javascript.inspections.JSIgnoredPromiseFromCallInspection.returnsPromiseType(JSIgnoredPromiseFromCallInspection.java:64)
at com.intellij.lang.javascript.inspections.JSIgnoredPromiseFromCallInspection.access$100(JSIgnoredPromiseFromCallInspection.java:24)
at com.intellij.lang.javascript.inspections.JSIgnoredPromiseFromCallInspection$1.visitJSCallExpression(JSIgnoredPromiseFromCallInspection.java:41)
at com.intellij.lang.javascript.psi.impl.JSCallExpressionImpl.accept(JSCallExpressionImpl.java:107)
at com.intellij.codeInspection.InspectionEngine.acceptElements(InspectionEngine.java:75)
at com.intellij.codeInspection.InspectionEngine.createVisitorAndAcceptElements(InspectionEngine.java:63)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.runToolOnElements(LocalInspectionsPass.java:295)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$null$5(LocalInspectionsPass.java:263)
at com.intellij.util.AstLoadingFilter.forceAllowTreeLoading(AstLoadingFilter.java:156)
at com.intellij.util.AstLoadingFilter.forceAllowTreeLoading(AstLoadingFilter.java:148)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$null$6(LocalInspectionsPass.java:260)
at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:127)
at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:116)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$visitPriorityElementsAndInit$7(LocalInspectionsPass.java:260)
at com.intellij.concurrency.ApplierCompleter.execAndForkSubTasks(ApplierCompleter.java:133)
at com.intellij.concurrency.ApplierCompleter.tryToExecAllList(ApplierCompleter.java:231)
at com.intellij.concurrency.ApplierCompleter.execAndForkSubTasks(ApplierCompleter.java:159)
at com.intellij.concurrency.ApplierCompleter.tryToExecAllList(ApplierCompleter.java:231)
at com.intellij.concurrency.ApplierCompleter.execAndForkSubTasks(ApplierCompleter.java:159)
at com.intellij.concurrency.ApplierCompleter.tryToExecAllList(ApplierCompleter.java:231)
at com.intellij.concurrency.ApplierCompleter.execAndForkSubTasks(ApplierCompleter.java:159)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1161)
at com.intellij.concurrency.ApplierCompleter.lambda$wrapInReadActionAndIndicator$1(ApplierCompleter.java:105)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:586)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:532)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:86)
at com.intellij.concurrency.ApplierCompleter.wrapInReadActionAndIndicator(ApplierCompleter.java:116)
at com.intellij.concurrency.ApplierCompleter.lambda$compute$0(ApplierCompleter.java:96)
at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:164)
at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:218)
at com.intellij.concurrency.ApplierCompleter.compute(ApplierCompleter.java:96)
at java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.pollAndExecCC(ForkJoinPool.java:1190)
at java.util.concurrent.ForkJoinPool.helpComplete(ForkJoinPool.java:1879)
at java.util.concurrent.ForkJoinPool.awaitJoin(ForkJoinPool.java:2045)
at java.util.concurrent.ForkJoinTask.get(ForkJoinTask.java:1036)
at com.intellij.concurrency.JobLauncherImpl.invokeConcurrentlyUnderProgress(JobLauncherImpl.java:71)
at com.intellij.concurrency.JobLauncher.invokeConcurrentlyUnderProgress(JobLauncher.java:56)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.visitPriorityElementsAndInit(LocalInspectionsPass.java:266)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.inspect(LocalInspectionsPass.java:198)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.collectInformationWithProgress(LocalInspectionsPass.java:117)
at com.intellij.codeInsight.daemon.impl.ProgressableTextEditorHighlightingPass.doCollectInformation(ProgressableTextEditorHighlightingPass.java:84)
at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:69)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$null$1(PassExecutorService.java:430)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1166)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$2(PassExecutorService.java:423)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:586)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:532)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:86)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.doRun(PassExecutorService.java:422)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$run$0(PassExecutorService.java:398)
at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:164)
at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:218)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:396)
at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:174)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
2019-07-23 15:47:49,995 [1830548] ERROR - aemon.impl.PassExecutorService - IntelliJ IDEA 2019.1.3 Build #IU-191.7479.19
2019-07-23 15:47:49,995 [1830548] ERROR - aemon.impl.PassExecutorService - JDK: 1.8.0_202-release; VM: OpenJDK 64-Bit Server VM; Vendor: JetBrains s.r.o
2019-07-23 15:47:49,995 [1830548] ERROR - aemon.impl.PassExecutorService - OS: Linux
请先登录再写评论。
Looks similar to https://youtrack.jetbrains.com/issue/WEB-39859 that is fixed in upcoming 2019.2