enriquepiatti / Magicento

PHPStorm plugin for Magento developers
115 stars 35 forks source link

Issue when editing XML files with Magicento 2 #301

Open matei opened 5 years ago

matei commented 5 years ago

When editing XML files (e.g. di.xml, module.xml etc..), I get the exception below and the editor gets in a weird state (can't close XML tags)

IntelliJ build IU-183.5429.30, Magicento plugin downloaded today current version (Feb 16 2019)

java.lang.ClassCastException: com.jetbrains.mako.psi.impl.MakoFile cannot be cast to com.intellij.psi.xml.XmlFile at com.magicento2.extensions.index.di.PluginForTypeIndex$1.magicento2Map(PluginForTypeIndex.java:47) at com.magicento2.extensions.index.di.PluginForTypeIndex$1.magicento2Map(PluginForTypeIndex.java:40) at com.magicento2.extensions.index.Magicento2DataIndexerAbstract.map(Magicento2DataIndexerAbstract.java:27) at com.intellij.util.indexing.impl.MapReduceIndex.mapInput(MapReduceIndex.java:276) at com.intellij.util.indexing.VfsAwareMapReduceIndex.calculateUpdateData(VfsAwareMapReduceIndex.java:83) at com.intellij.util.indexing.impl.MapReduceIndex.update(MapReduceIndex.java:216) at com.intellij.util.indexing.FileBasedIndexImpl.updateSingleIndex(FileBasedIndexImpl.java:1668) at com.intellij.util.indexing.FileBasedIndexImpl.lambda$doIndexFileContent$27(FileBasedIndexImpl.java:1596) at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.freezeFileTypeTemporarilyIn(FileTypeManagerImpl.java:522) at com.intellij.util.indexing.FileBasedIndexImpl.doIndexFileContent(FileBasedIndexImpl.java:1555) at com.intellij.util.indexing.FileBasedIndexImpl.indexFileContent(FileBasedIndexImpl.java:1543) at com.intellij.util.indexing.FileBasedIndexImpl.processRefreshedFile(FileBasedIndexImpl.java:1522) at com.intellij.util.indexing.FileBasedIndexImpl$VirtualFileUpdateTask.doProcess(FileBasedIndexImpl.java:1686) at com.intellij.util.indexing.FileBasedIndexImpl$VirtualFileUpdateTask.doProcess(FileBasedIndexImpl.java:1683) at com.intellij.util.indexing.UpdateTask.process(UpdateTask.java:76) at com.intellij.util.indexing.UpdateTask.processAll(UpdateTask.java:46) at com.intellij.util.indexing.FileBasedIndexImpl.forceUpdate(FileBasedIndexImpl.java:1705) at com.intellij.util.indexing.FileBasedIndexImpl.ensureUpToDate(FileBasedIndexImpl.java:739) at com.intellij.util.indexing.FileBasedIndexImpl.ensureUpToDate(FileBasedIndexImpl.java:705) at com.intellij.psi.stubs.StubIndexImpl.doProcessStubs(StubIndexImpl.java:300) at com.intellij.psi.stubs.StubIndexImpl.processElements(StubIndexImpl.java:276) at com.intellij.psi.stubs.StubIndex.getElements(StubIndex.java:121) at com.intellij.psi.stubs.StubIndex.getElements(StubIndex.java:109) at org.jetbrains.kotlin.idea.stubindex.KotlinFileFacadeFqNameIndex.get(KotlinFileFacadeFqNameIndex.kt:30) at org.jetbrains.kotlin.idea.caches.resolve.IDEKotlinAsJavaSupport$findFilesForFacade$1.invoke(IDEKotlinAsJavaSupport.kt:232) at org.jetbrains.kotlin.idea.caches.resolve.IDEKotlinAsJavaSupport$findFilesForFacade$1.invoke(IDEKotlinAsJavaSupport.kt:37) at org.jetbrains.kotlin.idea.util.application.ApplicationUtilsKt$sam$com_intellij_openapi_util_Computable$0.compute(ApplicationUtils.kt) at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:959) at org.jetbrains.kotlin.idea.util.application.ApplicationUtilsKt.runReadAction(ApplicationUtils.kt:27) at org.jetbrains.kotlin.idea.caches.resolve.IDEKotlinAsJavaSupport.findFilesForFacade(IDEKotlinAsJavaSupport.kt:231) at org.jetbrains.kotlin.idea.caches.resolve.IDEKotlinAsJavaSupport.getFacadeClasses(IDEKotlinAsJavaSupport.kt:159) at org.jetbrains.kotlin.asJava.finder.JavaElementFinder.findClasses(JavaElementFinder.kt:58) at org.jetbrains.kotlin.asJava.finder.JavaElementFinder.findClass(JavaElementFinder.kt:46) at com.intellij.psi.impl.JavaPsiFacadeImpl.doFindClass(JavaPsiFacadeImpl.java:125) at com.intellij.psi.impl.JavaPsiFacadeImpl.findClass(JavaPsiFacadeImpl.java:102) at com.intellij.spring.SpringLibraryUtil.lambda$hasSpringLibrary$0(SpringLibraryUtil.java:88) at com.intellij.psi.impl.PsiCachedValueImpl.doCompute(PsiCachedValueImpl.java:49) at com.intellij.util.CachedValueBase.getValueWithLock(CachedValueBase.java:222) at com.intellij.psi.impl.PsiCachedValue.getValueWithLock(PsiCachedValue.java:60) at com.intellij.psi.impl.PsiCachedValueImpl.getValue(PsiCachedValueImpl.java:38) at com.intellij.util.CachedValuesManagerImpl.getCachedValue(CachedValuesManagerImpl.java:88) at com.intellij.psi.util.CachedValuesManager.getCachedValue(CachedValuesManager.java:118) at com.intellij.spring.SpringLibraryUtil.hasSpringLibrary(SpringLibraryUtil.java:83) at com.intellij.spring.el.SpringElInjector.getLanguagesToInject(SpringElInjector.java:42) at com.intellij.psi.impl.source.tree.injected.InjectedPsiCachedValueProvider$MyInjProcessor.process(InjectedPsiCachedValueProvider.java:77) at com.intellij.psi.impl.source.tree.injected.InjectedLanguageManagerImpl.processInPlaceInjectorsFor(InjectedLanguageManagerImpl.java:410) at com.intellij.psi.impl.source.tree.injected.InjectedPsiCachedValueProvider.doCompute(InjectedPsiCachedValueProvider.java:57) at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.probeElementsUp(InjectedLanguageUtil.java:340) at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.enumerate(InjectedLanguageUtil.java:167) at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.findInside(InjectedLanguageUtil.java:462) at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.tryOffset(InjectedLanguageUtil.java:441) at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.findInjectedElementNoCommit(InjectedLanguageUtil.java:421) at com.intellij.psi.impl.source.tree.injected.InjectedLanguageManagerImpl.findInjectedElementAt(InjectedLanguageManagerImpl.java:279) at com.intellij.codeInsight.highlighting.BraceHighlightingHandler.getInjectedFileIfAny(BraceHighlightingHandler.java:186) at com.intellij.codeInsight.highlighting.BraceHighlightingHandler.lambda$null$1(BraceHighlightingHandler.java:121) at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1163) at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runInReadActionWithWriteActionPriority$0(ProgressIndicatorUtils.java:70) at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runWithWriteActionPriority$1(ProgressIndicatorUtils.java:123) at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:164) at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:582) at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:532) at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:87) at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:151) at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runWithWriteActionPriority(ProgressIndicatorUtils.java:112) at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runInReadActionWithWriteActionPriority(ProgressIndicatorUtils.java:70) at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runInReadActionWithWriteActionPriority(ProgressIndicatorUtils.java:91) at com.intellij.codeInsight.highlighting.BraceHighlightingHandler.lambda$null$2(BraceHighlightingHandler.java:110) at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:147) at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:222) at com.intellij.codeInsight.highlighting.BraceHighlightingHandler.lambda$null$3(BraceHighlightingHandler.java:109) at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1168) at com.intellij.codeInsight.highlighting.BraceHighlightingHandler.lambda$lookForInjectedAndMatchBracesInOtherThread$4(BraceHighlightingHandler.java:107) at com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:314) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)

enriquepiatti commented 5 years ago

Hi @matei that's a weird error, it seems there is a conflict with Mako from Python, not sure why, are you working with that in your project too? anyway it should be compatible, because that code should be executed only on "di.xml" files, maybe you have a Mako file from Python with the same name?

matei commented 5 years ago

I am not using Mako. Couldn't say what the compatibility issue is, but I did see it when editing xml files (not only di.xml). Disabling the Intelli-J Python plugin solved it as a temporary solution.