Categories
|
free software
PsiViewerProducts: IntelliJ IDEA, AppCode, PhpStorm, PyCharm, RubyMine, WebStorm Vendor: Andrew Armstrong, Bas Leijdekkers, Vince Mallet, Ole Matzura, Jacques Morel, Colin Fleming, Jon Akhtar Email: N/A Website: https://github.com/cmf/psiviewer Description:
A Program Structure Interface (PSI) tree viewer. This plugin may be useful for developers who are considering using the PSI interface in their own plugins.
10 updates are hidden
show all updates
Recent change notes:Fix a cursor update issue that was causing indexer errors. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comments:
Thanks for latest update!
Argument 1 for @NotNull parameter of com/intellij/psi/util/PsiTreeUtil.isAncestor must not be null: Argument 1 for @NotNull parameter of com/intellij/psi/util/PsiTreeUtil.isAncestor must not be null
java.lang.IllegalArgumentException: Argument 1 for @NotNull parameter of com/intellij/psi/util/PsiTreeUtil.isAncestor must not be null
at com.intellij.psi.util.PsiTreeUtil.isAncestor(PsiTreeUtil.java)
at idea.plugin.psiviewer.controller.project.EditorListener.isElementChangedUnderViewerRoot(EditorListener.java:106)
at idea.plugin.psiviewer.controller.project.EditorListener.updateTreeFromPsiTreeChange(EditorListener.java:96)
at idea.plugin.psiviewer.controller.project.EditorListener.access$000(EditorListener.java:46)
at idea.plugin.psiviewer.controller.project.EditorListener$1.propertyChanged(EditorListener.java:89)
at com.intellij.psi.impl.PsiManagerImpl.fireEvent(PsiManagerImpl.java:643)
at com.intellij.psi.impl.PsiManagerImpl.propertyChanged(PsiManagerImpl.java:571)
at com.intellij.psi.impl.file.impl.FileManagerImpl$FileTypesChanged.run(FileManagerImpl.java:257)
at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:752)
at com.intellij.psi.impl.file.impl.FileManagerImpl.handleFileTypesChange(FileManagerImpl.java:266)
at com.intellij.psi.impl.file.impl.FileManagerImpl.recalcAllViewProviders(FileManagerImpl.java:120)
at com.intellij.psi.impl.file.impl.FileManagerImpl.access$000(FileManagerImpl.java:68)
at com.intellij.psi.impl.file.impl.FileManagerImpl$1.enteredDumbMode(FileManagerImpl.java:101)
at sun.reflect.GeneratedMethodAccessor140.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.util.messages.impl.MessageBusConnectionImpl.deliverMessage(MessageBusConnectionImpl.java:101)
at com.intellij.util.messages.impl.MessageBusImpl.doPumpMessages(MessageBusImpl.java:183)
at com.intellij.util.messages.impl.MessageBusImpl.doPumpMessages(MessageBusImpl.java:188)
at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:175)
at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:172)
at com.intellij.util.messages.impl.MessageBusImpl.sendMessage(MessageBusImpl.java:167)
at com.intellij.util.messages.impl.MessageBusImpl.access$000(MessageBusImpl.java:40)
at com.intellij.util.messages.impl.MessageBusImpl$2.invoke(MessageBusImpl.java:106)
at $Proxy39.enteredDumbMode(Unknown Source)
at com.intellij.openapi.project.DumbServiceImpl$1$1.run(DumbServiceImpl.java:154)
at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:752)
at com.intellij.openapi.project.DumbServiceImpl$1.run(DumbServiceImpl.java:151)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:610)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:500)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:368)
at com.intellij.ide.IdeEventQueue.pumpEventsForHierarchy(IdeEventQueue.java:669)
at com.intellij.openapi.progress.util.ProgressWindow.startBlocking(ProgressWindow.java:167)
at com.intellij.openapi.application.impl.ApplicationImpl.runProcessWithProgressSynchronously(ApplicationImpl.java:506)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcessWithProgressSynchronously(ProgressManagerImpl.java:253)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcessWithProgressSynchronously(ProgressManagerImpl.java:248)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcessWithProgressSynchronously(ProgressManagerImpl.java:239)
at com.intellij.openapi.project.impl.ProjectManagerImpl.openProject(ProjectManagerImpl.java:372)
at com.intellij.openapi.project.impl.ProjectManagerImpl.loadAndOpenProject(ProjectManagerImpl.java:420)
at com.intellij.openapi.project.impl.ProjectManagerImpl.loadAndOpenProject(ProjectManagerImpl.java:403)
at com.intellij.ide.impl.ProjectUtil.openProject(ProjectUtil.java:157)
at com.intellij.ide.RecentProjectsManager.doOpenProject(RecentProjectsManager.java:48)
at com.intellij.ide.RecentProjectsManagerBase$ReopenProjectAction.actionPerformed(RecentProjectsManagerBase.java:225)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.actionPerformed(ActionMenuItem.java:218)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem.fireActionPerformed(ActionMenuItem.java:81)
at com.intellij.ui.plaf.beg.BegMenuItemUI.doClick(BegMenuItemUI.java:496)
at com.intellij.ui.plaf.beg.BegMenuItemUI.access$300(BegMenuItemUI.java:43)
at com.intellij.ui.plaf.beg.BegMenuItemUI$MyMouseInputHandler.mouseReleased(BegMenuItemUI.java:516)
at java.awt.Component.processMouseEvent(Component.java:6263)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6028)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:610)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:496)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:368)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
[ 14234] ERROR - nSystem.impl.ActionManagerImpl - Icon cannot be found in '/images/psi18x18.png', action class='idea.plugin.psiviewer.controller.actions.ViewElementAtCaretAction' [Plugin: PsiViewer]
com.intellij.diagnostic.PluginException: Icon cannot be found in '/images/psi18x18.png', action class='idea.plugin.psiviewer.controller.actions.ViewElementAtCaretAction' [Plugin: PsiViewer]
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.reportActionError(ActionManagerImpl.java:890)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.setIconFromClass(ActionManagerImpl.java:416)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.convert(ActionManagerImpl.java:264)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.getActionImpl(ActionManagerImpl.java:199)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.getAction(ActionManagerImpl.java:192)
at com.intellij.openapi.actionSystem.DefaultActionGroup.unstub(DefaultActionGroup.java:260)
at com.intellij.openapi.actionSystem.DefaultActionGroup.getChildren(DefaultActionGroup.java:239)
at com.intellij.openapi.actionSystem.impl.Utils.hasVisibleChildren(Utils.java:162)
at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:117)
at com.intellij.openapi.actionSystem.impl.Utils.fillMenu(Utils.java:216)
at com.intellij.openapi.actionSystem.impl.ActionPopupMenuImpl$MyMenu.show(ActionPopupMenuImpl.java:76)
at com.intellij.openapi.fileEditor.impl.text.TextEditorComponent$MyEditorMouseListener.invokePopup(TextEditorComponent.java:307)
at com.intellij.util.EditorPopupHandler.handle(EditorPopupHandler.java:27)
at com.intellij.util.EditorPopupHandler.mouseReleased(EditorPopupHandler.java:41)
at com.intellij.openapi.editor.impl.EditorImpl$MyMouseAdapter.runMouseReleasedCommand(EditorImpl.java:3671)
at com.intellij.openapi.editor.impl.EditorImpl$MyMouseAdapter.mouseReleased(EditorImpl.java:3606)
at java.awt.Component.processMouseEvent(Component.java:6263)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6028)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:610)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:496)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:368)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Great tool!
I can't find any documentation, so I don't know if there are any special prerequisites to get it working (PSI tree needs to be in a particular format? nodes need to implement a particular interface?).
I just wrote a util function to dump the PSI tree to stdout instead.