seesharpsoft / intellij-file-preview Goto Github PK
View Code? Open in Web Editor NEWVSCode/Sublime like file preview plugin for IntelliJ IDE
License: Apache License 2.0
VSCode/Sublime like file preview plugin for IntelliJ IDE
License: Apache License 2.0
Great plugin, thanks!
I have an issue (PHPStorm 2019.2) where the Project panel (View mode = docked, unpinned) auto-hides after every file select.
Expected behaviour would be same as when setting "Autoscroll to source" is enabled, except that the opened tab is reused instead of opening a new one every time.
With "Autoscroll to source" enabled, I can expand the Project panel (View mode = docked, unpinned), click or navigate around a variety of files without the panel closing (each of which is opened as a tab), and then when I select elsewhere outside the Project panel, the panel auto-hides.
With this plugin enabled and "Autoscroll to source" disabled, when selecting the second file in the Project panel, the panel auto-hides.
As a user I want to be able to ignore files to be opened in file preview tab on click.
Default setting:
By default there should be a mapped key to ALT
+ Left mouse click
(in the project toolbar) that ignores file preview.
Inverted setting:
The user should be able to invert this setting.
Click: No preview
Alt+Click: Preview
I'm not aware of any default keymap for ALT+Click that would conflict with this feature, so it should be fine for this use case.
This feature will not work if browsing the files in the project toolbar by arrow-keys, but temporarily deactivating preview
can help in this situation.
As a user I want to be able to automatically turn the file preview tab into a normal tab, as
soon I edit the previewed file.
This behavior is known from other editors.
If I select a file using the mouse, from the project sidebar, the file is opened in preview mode as expected.
If I use a keyboard shortcut for Navigate
> File
, type the name of the file, and press Enter
to select it, it is not opened in preview mode.
I've looked into the config settings and couldn't see anything that would be causing this?
Any help appreciated ๐
As a user I want to be able to color the file preview tab, so it is visual emphasized.
Option for:
๐ก Alternatively if possible:
The plugin might benefit from the implemented "File Colors" Settings, by injecting an extra Scope for "preview file(s)". ยฏ\_(ใ)_/ยฏ
Having "Use in Editor Tabs" checked + defined the "file preview scope" would color the file preview tab. But I'm unsure if "that" should be the preferred solution.
v1.3.1 wrongly closes an open editor tab (or replaces it with a preview tab).
How to reproduce:
a.txt
=> opens an editor tab for a.txt
b.txt
: opens a preview for b.txt
next to a.txt
a.txt
=> editor tab a.txt
is now in foreground, preview tab b.txt
is inactived next to itc.txt
=> out of a sudden the editor tab for a.txt
gets removed and I'm left with a single preview tab for c.txt
Version: 1.6.0
IDE: IntelliJ IDEA 2019.3.2
OS: Linux RHEL 8.1
java.lang.UnsupportedOperationException: can not unregister unregistered tree
at net.seesharpsoft.intellij.plugins.filepreview.PreviewProjectHandler.unregisterTreeHandlers(PreviewProjectHandler.java:169)
at net.seesharpsoft.intellij.plugins.filepreview.viewhandler.ProjectToolWindowHandler$ProjectContentManagerListener.unregisterCurrentTree(ProjectToolWindowHandler.java:36)
at net.seesharpsoft.intellij.plugins.filepreview.viewhandler.ToolWindowHandlerBase.unregister(ToolWindowHandlerBase.java:58)
at net.seesharpsoft.intellij.plugins.filepreview.PreviewStartupActivity.unregisterToolWindow(PreviewStartupActivity.java:86)
at net.seesharpsoft.intellij.plugins.filepreview.PreviewStartupActivity.unregisterAllToolWindows(PreviewStartupActivity.java:65)
at net.seesharpsoft.intellij.plugins.filepreview.PreviewStartupActivity.dispose(PreviewStartupActivity.java:49)
at net.seesharpsoft.intellij.plugins.filepreview.PreviewStartupActivity$2.projectClosingBeforeSave(PreviewStartupActivity.java:126)
at jdk.internal.reflect.GeneratedMethodAccessor476.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.util.messages.impl.MessageBusImpl.invokeListener(MessageBusImpl.java:513)
at com.intellij.util.messages.impl.MessageBusConnectionImpl.deliverMessage(MessageBusConnectionImpl.java:142)
at com.intellij.util.messages.impl.MessageBusImpl.doPumpMessages(MessageBusImpl.java:438)
at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:398)
at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:388)
at com.intellij.util.messages.impl.MessageBusImpl.sendMessage(MessageBusImpl.java:372)
at com.intellij.util.messages.impl.MessageBusImpl.lambda$createTopicHandler$1(MessageBusImpl.java:241)
at com.sun.proxy.$Proxy94.projectClosingBeforeSave(Unknown Source)
at com.intellij.openapi.project.impl.ProjectManagerImpl.closeProject(ProjectManagerImpl.java:736)
at com.intellij.openapi.project.impl.ProjectManagerImpl.closeAndDispose(ProjectManagerImpl.java:781)
at com.intellij.ide.actions.CloseProjectAction.actionPerformed(CloseProjectAction.java:33)
at com.intellij.openapi.actionSystem.ex.ActionUtil$1.run(ActionUtil.java:298)
at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:315)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.lambda$actionPerformed$0(ActionMenuItem.java:294)
at com.intellij.openapi.wm.impl.FocusManagerImpl.runOnOwnContext(FocusManagerImpl.java:263)
at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.runOnOwnContext(IdeFocusManagerImpl.java:77)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.actionPerformed(ActionMenuItem.java:284)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem.lambda$fireActionPerformed$0(ActionMenuItem.java:112)
at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:83)
at com.intellij.openapi.application.TransactionGuardImpl.lambda$submitTransaction$1(TransactionGuardImpl.java:107)
at com.intellij.openapi.application.TransactionGuardImpl.submitTransaction(TransactionGuardImpl.java:116)
at com.intellij.openapi.application.TransactionGuard.submitTransaction(TransactionGuard.java:121)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem.fireActionPerformed(ActionMenuItem.java:112)
at com.intellij.ui.plaf.beg.BegMenuItemUI.doClick(BegMenuItemUI.java:517)
at com.intellij.ui.plaf.beg.BegMenuItemUI.access$300(BegMenuItemUI.java:36)
at com.intellij.ui.plaf.beg.BegMenuItemUI$MyMouseInputHandler.mouseReleased(BegMenuItemUI.java:539)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6651)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
at java.desktop/java.awt.Component.processEvent(Component.java:6416)
at java.desktop/java.awt.Container.processEvent(Container.java:2263)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5026)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4858)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2773)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4858)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:778)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:751)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:749)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:748)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:908)
at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:846)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:778)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:424)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:698)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:423)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
It will not always leave the Explorer focused, but its pretty common.
I am on Windows 10.
I am running JetBrains Rider 20019.2 Build #RD-192.6584.65, built on August 29, 2019.
It seems to only happen with Quick File Preview enabled I am running v1.4.6.
I like the preview, but the focus change from editor to explorer is driving me a little crazy :).
A sure fire for me to see it happen is to close Rider, reload it with my project pick an identifier and navigate to declaration or usages using F12. Hmm seems my sure fire isn't, it will not focus the explorer some times.
As a user I want to be able to configure, that the file preview tab always does spawn,
the previewed file, to the most right or bottom position, so I always am aware of where my
file preview tab is.
Depending on the navigation placement, it should either show left or top:
File -> Settings -> Editor -> General -> Editor Tabs
Placement: top
: most rightPlacement: bottom
: most rightPlacement: left
: most bottomPlacement: right
: most bottomIt should have an option in the settings to choose "right"-position (or last)
It should have an option in the settings to choose "bottom"-position (or last)
It should force the positioning even if the setting Sort tab alphabetically
is set
Here is a similar issue for the first (most left) position
Happens right after starting to create a new top level class/object to an existing Scala file.
I love that ESC can close a Preview window and that hitting TAB gets you into the Preview so that ESC would not close the tab. However, hitting ESC should not close non-Preview-opened tabs ever.
(This really is a great plugin - Please see through my jovial silliness to the point of my request here and do not take it as any disrespect to you or your fantastic feature-add to PHP Storm! I'm so grateful for this feature!)
Just get this error this morning in the event log of PHPStorm :
java.lang.Throwable: Showing dialogs from popup onChosen can result in focus issues. Please put the handler into BaseStep.doFinalStep or PopupStep.getFinalRunnable.
at com.intellij.openapi.diagnostic.Logger.error(Logger.java:146)
at com.intellij.ui.popup.list.ListPopupImpl.lambda$_handleSelect$0(ListPopupImpl.java:396)
at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:831)
at com.intellij.openapi.application.impl.ApplicationImpl.lambda$invokeLater$4(ApplicationImpl.java:310)
at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:80)
at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:128)
at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:46)
at com.intellij.openapi.application.impl.FlushQueue$FlushNow.run(FlushQueue.java:184)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:974)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:847)
at com.intellij.ide.IdeEventQueue.lambda$null$8(IdeEventQueue.java:449)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:728)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$9(IdeEventQueue.java:448)
at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:831)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:496)
at com.intellij.ide.IdeEventQueue.pumpEventsForHierarchy(IdeEventQueue.java:1030)
at com.intellij.openapi.progress.util.ProgressWindow.pumpEventsForHierarchy(ProgressWindow.java:199)
at com.intellij.openapi.progress.util.ProgressWindow.lambda$startBlocking$3(ProgressWindow.java:189)
at com.intellij.openapi.application.impl.ApplicationImpl.runUnlockingIntendedWrite(ApplicationImpl.java:857)
at com.intellij.openapi.progress.util.ProgressWindow.startBlocking(ProgressWindow.java:188)
at com.intellij.openapi.progress.impl.ProgressRunner.lambda$legacyExec$6(ProgressRunner.java:302)
at java.base/java.util.concurrent.CompletableFuture.uniAcceptNow(CompletableFuture.java:753)
at java.base/java.util.concurrent.CompletableFuture.uniAcceptStage(CompletableFuture.java:731)
at java.base/java.util.concurrent.CompletableFuture.thenAccept(CompletableFuture.java:2108)
at com.intellij.openapi.progress.impl.ProgressRunner.legacyExec(ProgressRunner.java:300)
at com.intellij.openapi.progress.impl.ProgressRunner.submit(ProgressRunner.java:248)
at com.intellij.openapi.progress.impl.ProgressRunner.submitAndGet(ProgressRunner.java:169)
at com.intellij.openapi.application.impl.ApplicationImpl.runProcessWithProgressSynchronously(ApplicationImpl.java:426)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcessWithProgressSynchronously(CoreProgressManager.java:492)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcessWithProgressSynchronously(ProgressManagerImpl.java:84)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcessWithProgressSynchronously(CoreProgressManager.java:271)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcessWithProgressSynchronously(CoreProgressManager.java:223)
at com.intellij.openapi.vcs.VcsVFSListener$MyCommandAdapter.commandFinished(VcsVFSListener.java:690)
at jdk.internal.reflect.GeneratedMethodAccessor95.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.util.messages.impl.MessageBusImpl.invokeListener(MessageBusImpl.java:549)
at com.intellij.util.messages.impl.MessageBusConnectionImpl.deliverMessage(MessageBusConnectionImpl.java:143)
at com.intellij.util.messages.impl.MessageBusImpl.doPumpMessages(MessageBusImpl.java:472)
at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:432)
at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:420)
at com.intellij.util.messages.impl.MessageBusImpl.sendMessage(MessageBusImpl.java:402)
at com.intellij.util.messages.impl.MessageBusImpl.lambda$createTopicHandler$3(MessageBusImpl.java:243)
at com.sun.proxy.$Proxy93.recentPlaceAdded(Unknown Source)
at com.intellij.openapi.fileEditor.impl.IdeDocumentHistoryImpl.putLastOrMerge(IdeDocumentHistoryImpl.java:631)
at com.intellij.openapi.fileEditor.impl.IdeDocumentHistoryImpl.onCommandFinished(IdeDocumentHistoryImpl.java:300)
at com.intellij.openapi.fileEditor.impl.IdeDocumentHistoryImpl$3.commandFinished(IdeDocumentHistoryImpl.java:126)
at jdk.internal.reflect.GeneratedMethodAccessor95.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.util.messages.impl.MessageBusImpl.invokeListener(MessageBusImpl.java:549)
at com.intellij.util.messages.impl.MessageBusConnectionImpl.deliverMessage(MessageBusConnectionImpl.java:143)
at com.intellij.util.messages.impl.MessageBusImpl.doPumpMessages(MessageBusImpl.java:472)
at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:432)
at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:420)
at com.intellij.util.messages.impl.MessageBusImpl.sendMessage(MessageBusImpl.java:404)
at com.intellij.util.messages.impl.MessageBusImpl.lambda$createTopicHandler$3(MessageBusImpl.java:243)
at com.sun.proxy.$Proxy71.commandFinished(Unknown Source)
at com.intellij.openapi.command.impl.CoreCommandProcessor.fireCommandFinished(CoreCommandProcessor.java:280)
at com.intellij.openapi.command.impl.CoreCommandProcessor.finishCommand(CoreCommandProcessor.java:261)
at com.intellij.openapi.command.impl.CommandProcessorImpl.finishCommand(CommandProcessorImpl.java:34)
at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:226)
at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:178)
at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:168)
at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:154)
at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.closeFile(FileEditorManagerImpl.java:590)
at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.closeFile(FileEditorManagerImpl.java:584)
at net.seesharpsoft.intellij.plugins.filepreview.PreviewUtil.lambda$closeFileEditor$4(PreviewUtil.java:185)
at net.seesharpsoft.intellij.plugins.filepreview.PreviewUtil.lambda$invokeSafeAndWait$0(PreviewUtil.java:106)
at com.intellij.openapi.application.impl.ApplicationImpl.invokeAndWait(ApplicationImpl.java:467)
at com.intellij.openapi.application.impl.ApplicationImpl.invokeAndWait(ApplicationImpl.java:485)
at net.seesharpsoft.intellij.plugins.filepreview.PreviewUtil.invokeSafeAndWait(PreviewUtil.java:104)
at net.seesharpsoft.intellij.plugins.filepreview.PreviewUtil.closeFileEditor(PreviewUtil.java:181)
at net.seesharpsoft.intellij.plugins.filepreview.PreviewUtil.closeOtherPreviews(PreviewUtil.java:197)
at net.seesharpsoft.intellij.plugins.filepreview.PreviewUtil.closeAllPreviews(PreviewUtil.java:190)
at net.seesharpsoft.intellij.plugins.filepreview.viewhandler.ToolWindowHandlerBase$ContentManagerListener.selectionChanged(ToolWindowHandlerBase.java:77)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
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.util.EventDispatcher.dispatchVoidMethod(EventDispatcher.java:127)
at com.intellij.util.EventDispatcher.access$000(EventDispatcher.java:21)
at com.intellij.util.EventDispatcher$1.invoke(EventDispatcher.java:85)
at com.sun.proxy.$Proxy114.selectionChanged(Unknown Source)
at com.intellij.ui.content.impl.ContentManagerImpl.fireSelectionChanged(ContentManagerImpl.java:579)
at com.intellij.ui.content.impl.ContentManagerImpl.removeFromSelection(ContentManagerImpl.java:416)
at com.intellij.ui.content.impl.ContentManagerImpl$1.run(ContentManagerImpl.java:484)
at com.intellij.ui.content.impl.ContentManagerImpl.lambda$setSelectedContent$4(ContentManagerImpl.java:500)
at com.intellij.openapi.util.ActionCallback$ExecutedExecutionCallback.doWhenExecuted(ActionCallback.java:177)
at com.intellij.openapi.util.ActionCallback.doWhenDone(ActionCallback.java:111)
at com.intellij.openapi.util.ActionCallback.doWhenProcessed(ActionCallback.java:129)
at com.intellij.ui.content.impl.ContentManagerImpl.setSelectedContent(ContentManagerImpl.java:500)
at com.intellij.ui.content.impl.ContentManagerImpl.setSelectedContentCB(ContentManagerImpl.java:454)
at com.intellij.openapi.wm.impl.content.SelectContentStep.onChosen(SelectContentStep.kt:27)
at com.intellij.openapi.wm.impl.content.SelectContentStep.onChosen(SelectContentStep.kt:10)
at com.intellij.ui.popup.list.ListPopupImpl._handleSelect(ListPopupImpl.java:409)
at com.intellij.ui.popup.list.ListPopupImpl.handleSelect(ListPopupImpl.java:361)
at com.intellij.ui.popup.list.ListPopupImpl$MyMouseListener.mouseReleased(ListPopupImpl.java:526)
at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:298)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6651)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3345)
at com.intellij.ui.popup.list.ListPopupImpl$MyList.processMouseEvent(ListPopupImpl.java:583)
at java.desktop/java.awt.Component.processEvent(Component.java:6416)
at java.desktop/java.awt.Container.processEvent(Container.java:2263)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5026)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4858)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2773)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4858)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:778)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:751)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:749)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:748)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:974)
at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:912)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:844)
at com.intellij.ide.IdeEventQueue.lambda$null$8(IdeEventQueue.java:449)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:739)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$9(IdeEventQueue.java:448)
at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:831)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:502)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
I am not sure but it has probably occurred on closing of one of my projects.
Version: 1.6.0
IDE: IntelliJ IDEA 2019.3.2
OS: Linux RHEL 8.1
Following exceptions happened soon after this one, most probably they are induced.
2020-03-04T17:14:57.146
java.lang.NullPointerException
at net.seesharpsoft.intellij.plugins.filepreview.viewhandler.ToolWindowHandlerBase.unregister(ToolWindowHandlerBase.java:53)
at net.seesharpsoft.intellij.plugins.filepreview.PreviewStartupActivity.unregisterToolWindow(PreviewStartupActivity.java:86)
at net.seesharpsoft.intellij.plugins.filepreview.PreviewStartupActivity.unregisterAllToolWindows(PreviewStartupActivity.java:65)
at net.seesharpsoft.intellij.plugins.filepreview.PreviewStartupActivity.dispose(PreviewStartupActivity.java:49)
at net.seesharpsoft.intellij.plugins.filepreview.PreviewStartupActivity$1.toolWindowUnregistered(PreviewStartupActivity.java:109)
at jdk.internal.reflect.GeneratedMethodAccessor514.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.util.messages.impl.MessageBusImpl.invokeListener(MessageBusImpl.java:513)
at com.intellij.util.messages.impl.MessageBusConnectionImpl.deliverMessage(MessageBusConnectionImpl.java:142)
at com.intellij.util.messages.impl.MessageBusImpl.doPumpMessages(MessageBusImpl.java:438)
at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:398)
at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:388)
at com.intellij.util.messages.impl.MessageBusImpl.sendMessage(MessageBusImpl.java:372)
at com.intellij.util.messages.impl.MessageBusImpl.lambda$createTopicHandler$1(MessageBusImpl.java:241)
at com.sun.proxy.$Proxy60.toolWindowUnregistered(Unknown Source)
at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.doUnregisterToolWindow(ToolWindowManagerImpl.java:1173)
at com.intellij.openapi.wm.impl.ToolWindowImpl.dispose(ToolWindowImpl.java:512)
at com.intellij.openapi.util.ObjectNode.lambda$execute$0(ObjectNode.java:104)
at com.intellij.openapi.util.ObjectTree.executeActionWithRecursiveGuard(ObjectTree.java:183)
at com.intellij.openapi.util.ObjectNode.execute(ObjectNode.java:71)
at com.intellij.openapi.util.ObjectNode.lambda$execute$0(ObjectNode.java:92)
at com.intellij.openapi.util.ObjectTree.executeActionWithRecursiveGuard(ObjectTree.java:183)
at com.intellij.openapi.util.ObjectNode.execute(ObjectNode.java:71)
at com.intellij.openapi.util.ObjectNode.lambda$execute$0(ObjectNode.java:92)
at com.intellij.openapi.util.ObjectTree.executeActionWithRecursiveGuard(ObjectTree.java:183)
at com.intellij.openapi.util.ObjectNode.execute(ObjectNode.java:71)
at com.intellij.openapi.util.ObjectTree.executeAll(ObjectTree.java:133)
at com.intellij.openapi.util.Disposer.dispose(Disposer.java:123)
at com.intellij.openapi.util.Disposer.dispose(Disposer.java:119)
at com.intellij.openapi.project.impl.ProjectManagerImpl.lambda$closeProject$17(ProjectManagerImpl.java:763)
at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:885)
at com.intellij.openapi.project.impl.ProjectManagerImpl.closeProject(ProjectManagerImpl.java:750)
at com.intellij.openapi.project.impl.ProjectManagerImpl.closeAndDispose(ProjectManagerImpl.java:781)
at com.intellij.ide.actions.CloseProjectAction.actionPerformed(CloseProjectAction.java:33)
at com.intellij.openapi.actionSystem.ex.ActionUtil$1.run(ActionUtil.java:298)
at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:315)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.lambda$actionPerformed$0(ActionMenuItem.java:294)
at com.intellij.openapi.wm.impl.FocusManagerImpl.runOnOwnContext(FocusManagerImpl.java:263)
at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.runOnOwnContext(IdeFocusManagerImpl.java:77)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.actionPerformed(ActionMenuItem.java:284)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem.lambda$fireActionPerformed$0(ActionMenuItem.java:112)
at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:83)
at com.intellij.openapi.application.TransactionGuardImpl.lambda$submitTransaction$1(TransactionGuardImpl.java:107)
at com.intellij.openapi.application.TransactionGuardImpl.submitTransaction(TransactionGuardImpl.java:116)
at com.intellij.openapi.application.TransactionGuard.submitTransaction(TransactionGuard.java:121)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem.fireActionPerformed(ActionMenuItem.java:112)
at com.intellij.ui.plaf.beg.BegMenuItemUI.doClick(BegMenuItemUI.java:517)
at com.intellij.ui.plaf.beg.BegMenuItemUI.access$300(BegMenuItemUI.java:36)
at com.intellij.ui.plaf.beg.BegMenuItemUI$MyMouseInputHandler.mouseReleased(BegMenuItemUI.java:539)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6651)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
at java.desktop/java.awt.Component.processEvent(Component.java:6416)
at java.desktop/java.awt.Container.processEvent(Container.java:2263)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5026)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4858)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2773)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4858)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:778)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:751)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:749)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:748)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:908)
at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:846)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:778)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:424)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:698)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:423)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
I just updated this plugin and the preview functionality no longer works, e.g. I can't make the previewed tab appear.
I have rollbacked to 1.3.1 in the meantime
Hello, thanks for this plugin, it's great, making work really easier and better.
It will be great to have an option to open a preview tab when navigating to a method/class/variable declaration, currently it opens 'regular' tab.
java.lang.NullPointerException
at net.seesharpsoft.intellij.plugins.filepreview.PreviewProjectHandler$3.beforeFileOpened(PreviewProjectHandler.java:99)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.util.messages.impl.MessageBusConnectionImpl.deliverMessage(MessageBusConnectionImpl.java:114)
at com.intellij.util.messages.impl.MessageBusImpl.doPumpMessages(MessageBusImpl.java:393)
at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:354)
at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:343)
at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:327)
at com.intellij.util.messages.impl.MessageBusImpl.sendMessage(MessageBusImpl.java:320)
at com.intellij.util.messages.impl.MessageBusImpl.access$100(MessageBusImpl.java:29)
at com.intellij.util.messages.impl.MessageBusImpl$1.invoke(MessageBusImpl.java:192)
at com.sun.proxy.$Proxy91.beforeFileOpened(Unknown Source)
at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.lambda$openFileImpl4$8(FileEditorManagerImpl.java:854)
at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:315)
at com.intellij.openapi.application.impl.LaterInvocator$1.run(LaterInvocator.java:156)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.doRun(LaterInvocator.java:435)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:419)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:403)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:764)
at java.awt.EventQueue.access$500(EventQueue.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:715)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:734)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:741)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:690)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:385)
at com.intellij.ide.IdeEventQueue.pumpEventsForHierarchy(IdeEventQueue.java:798)
at com.intellij.openapi.progress.util.ProgressWindow.startBlocking(ProgressWindow.java:210)
at com.intellij.openapi.progress.util.ProgressWindow.startBlocking(ProgressWindow.java:196)
at com.intellij.openapi.application.impl.ApplicationImpl.runProcessWithProgressSynchronously(ApplicationImpl.java:608)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcessWithProgressSynchronously(CoreProgressManager.java:454)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcessWithProgressSynchronously(ProgressManagerImpl.java:109)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcessWithProgressSynchronously(CoreProgressManager.java:251)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcessWithProgressSynchronously(CoreProgressManager.java:205)
at com.intellij.openapi.project.impl.ProjectManagerImpl.loadProjectUnderProgress(ProjectManagerImpl.java:446)
at com.intellij.openapi.project.impl.ProjectManagerImpl.openProject(ProjectManagerImpl.java:421)
at com.intellij.platform.PlatformProjectOpenProcessor.doOpenProject(PlatformProjectOpenProcessor.java:260)
at com.intellij.ide.RecentProjectsManagerBase.doOpenProject(RecentProjectsManagerBase.java:509)
at com.intellij.ide.RecentProjectsManagerBase.doReopenLastProject(RecentProjectsManagerBase.java:628)
at com.intellij.ide.RecentProjectsManagerBase$MyAppLifecycleListener.appStarting(RecentProjectsManagerBase.java:684)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.util.messages.impl.MessageBusConnectionImpl.deliverMessage(MessageBusConnectionImpl.java:114)
at com.intellij.util.messages.impl.MessageBusImpl.doPumpMessages(MessageBusImpl.java:393)
at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:354)
at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:343)
at com.intellij.util.messages.impl.MessageBusImpl.sendMessage(MessageBusImpl.java:320)
at com.intellij.util.messages.impl.MessageBusImpl.access$100(MessageBusImpl.java:29)
at com.intellij.util.messages.impl.MessageBusImpl$1.invoke(MessageBusImpl.java:192)
at com.sun.proxy.$Proxy41.appStarting(Unknown Source)
at com.intellij.idea.IdeaApplication$IdeStarter.lambda$main$1(IdeaApplication.java:370)
at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:88)
at com.intellij.openapi.application.TransactionGuardImpl.lambda$submitTransaction$1(TransactionGuardImpl.java:111)
at com.intellij.openapi.application.TransactionGuardImpl.submitTransaction(TransactionGuardImpl.java:120)
at com.intellij.openapi.application.TransactionGuard.submitTransaction(TransactionGuard.java:121)
at com.intellij.idea.IdeaApplication$IdeStarter.main(IdeaApplication.java:368)
at com.intellij.idea.IdeaApplication.lambda$run$1(IdeaApplication.java:211)
at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:195)
at com.intellij.idea.IdeaApplication.run(IdeaApplication.java:211)
at com.intellij.idea.IdeaApplication.lambda$initApplication$0(IdeaApplication.java:74)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:764)
at java.awt.EventQueue.access$500(EventQueue.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:715)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:734)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:347)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
QFP 1.5.0
intelliJ IDEA 2019.1.1
Open discussion. How is your opinion about remembering the scroll and cursor position of
previewed files?
Option for:
Hey. Plugin - very nice. Thanks!
A little idea:
Add a hotkey in an editor (e.g. cmd) that saves the tab.
Otherwise, after you scroll the file and understand that you need to save the tab, you need to look for the file in the sidetree with the mouse and double-click. It isn't comfortable.
Yes, I know that I can press Enter. But this works if the focus is in sidebar.
I know that vscode has this problem too, but this can be removed.
While clicking around files, it would be nice to see the Structure pane (if it is open) to be populated with the currently active files in Preview. Of course, as the Preview is closed, the Structure pane would go blank again.
This is useful when thumbing through files in a non-committal way (the point of Quick File Preview) and seeing at a glance what methods and properties are provided by each file in Preview.
Quick File Preview interferes with the ability to navigate backwards and forwards when Always Select Opened File is on. Going forwards to a cursor that is in another file does not work, IntelliJ won't even let you as if this part of the linked list of cursors gets lost. Going backwards is buggy, often the user has to press backwards many times for it to finally work.
java.lang.Throwable: Can't remove document listener (net.seesharpsoft.intellij.plugins.filepreview.PreviewDocumentListener@44d7c3f0). Registered listeners: [com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl$1@12201d60, 2, 0, Multicaster, 734, 7, Multicaster]
at com.intellij.openapi.diagnostic.Logger.error(Logger.java:145)
at com.intellij.openapi.editor.impl.DocumentImpl.removeDocumentListener(DocumentImpl.java:977)
at net.seesharpsoft.intellij.plugins.filepreview.PreviewUtil.lambda$disposePreview$0(PreviewUtil.java:44)
at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:82)
at com.intellij.openapi.application.TransactionGuardImpl.lambda$submitTransaction$1(TransactionGuardImpl.java:106)
at com.intellij.openapi.application.TransactionGuardImpl.submitTransaction(TransactionGuardImpl.java:115)
at com.intellij.openapi.application.TransactionGuard.submitTransaction(TransactionGuard.java:121)
at net.seesharpsoft.intellij.plugins.filepreview.PreviewUtil.disposePreview(PreviewUtil.java:34)
at net.seesharpsoft.intellij.plugins.filepreview.PreviewUtil.disposePreview(PreviewUtil.java:26)
at net.seesharpsoft.intellij.plugins.filepreview.PreviewProjectHandler$2.fileClosed(PreviewProjectHandler.java:94)
at sun.reflect.GeneratedMethodAccessor194.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.util.messages.impl.MessageBusConnectionImpl.deliverMessage(MessageBusConnectionImpl.java:102)
at com.intellij.util.messages.impl.MessageBusImpl.doPumpMessages(MessageBusImpl.java:446)
at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:406)
at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:395)
at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:379)
at com.intellij.util.messages.impl.MessageBusImpl.sendMessage(MessageBusImpl.java:372)
at com.intellij.util.messages.impl.MessageBusImpl.lambda$createTopicHandler$1(MessageBusImpl.java:242)
at com.sun.proxy.$Proxy99.fileClosed(Unknown Source)
at com.intellij.openapi.fileEditor.impl.EditorWindow.lambda$null$0(EditorWindow.java:265)
at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl$5$1.run(FileEditorManagerImpl.java:1051)
at com.intellij.openapi.wm.impl.FocusManagerImpl.lambda$doWhenFocusSettlesDown$3(FocusManagerImpl.java:170)
at com.intellij.util.ui.UIUtil.invokeLaterIfNeeded(UIUtil.java:2425)
at com.intellij.ide.IdeEventQueue.ifFocusEventsInTheQueue(IdeEventQueue.java:217)
at com.intellij.ide.IdeEventQueue.executeWhenAllFocusEventsLeftTheQueue(IdeEventQueue.java:169)
at com.intellij.openapi.wm.impl.FocusManagerImpl.doWhenFocusSettlesDown(FocusManagerImpl.java:161)
at com.intellij.openapi.wm.impl.FocusManagerImpl.doWhenFocusSettlesDown(FocusManagerImpl.java:167)
at com.intellij.openapi.wm.impl.FocusManagerImpl.lambda$null$2(FocusManagerImpl.java:175)
at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:312)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.doRun(LaterInvocator.java:433)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:416)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:399)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:873)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:822)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:461)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:704)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:460)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Since this PHP Storm Quick File Preview plugin is modeled after the observed and beloved behavior of editors like Sublime, one little thing that sets it apart is that Preview windows stack instead of auto-closing and re-opening with each fresh new Preview.
(This may be what the existing 2nd option in plugin settings is about, but due to #18 I can't confirm, so I'll just file away my thoughts here in the meantime. Maybe it's related to some other "conflicting" IDE native preference I set long ago in want of this plugin..)
I have just installed the current version to try it out - works great! But when I went to set some preferences to see how they change behavior, I found that my changes would not commit.
Note: I have only tried the 2nd checkbox from the top, both 1st (Close Preview Editor if no file..) and toggling 2nd (Close Preview Editor if other tab..) checkboxes thinking maybe they are intended to behave like a radio pair, and then as a spot-check, the 4th checkbox from the top (Focus Project view).
I don't know offhand where or whether I ever redefined where my IDE preferences are stored.
When Toggle tree...
setting is enabled, double-clicking on any root folder (product root, sources root, test sources root, resource root) opens the Directories settings window.
This gets pretty annoying when accidentally double-clicking one of these folders. The only solution for me is disabling this cool feature until the issue is resolved.
Awesome plugin otherwise! ๐
Thank you for this! Has made my life much more pleasant because I'm just so used to opening up preview tabs in other editors.
My only suggestion thus far is adding a feature to double-click the preview tab to make it permanent.
Atom & VSCode (the two other editors I use the most frequently) both have this feature, and I often find myself trying to do the same thing here :).
Thanks again!
Previewed files should not show up in "recent files"-view/panel. This panel gets full pretty
fast when navigating through the project.
There might be a use case while you are debugging. (fx. Breakpoint stops) But that should be optional imo.
The "recent files"-view/panel should not contain previewed files.
However, if others might benefit from having them in the "recent files"-view/panel, a setting should be made available to choose the behavior.
You need to do it on EDT, otherwise ProjectViewPane can be null and it will never be registered for a project, if you look into com.intellij.ide.projectView.impl.ProjectViewImpl#getProjectViewPaneById
...
if (!ApplicationManager.getApplication().isUnitTestMode() && ApplicationManager.getApplication().isDispatchThread()) {
// most tests don't need all panes to be loaded, but also we should not initialize panes on background threads
ensurePanesLoaded();
}
When this plugin is installed and you use the "Search Everywhere" or "Go to File" window and select a folder, nothing happens. Once the plugin is disabled this functionality returns.
Currently when you open a solution in Rider the solution .sln file gets opened in preview which is kinda annoying. Usually you do not need to modify the .sln file at all so it would be nice to just ignore .sln files for preview. It can be edited manually if needed.
As a user I want to able to temporarily (de-)activate the automatic file preview tab,
functionality.
Keymap:
Status bar
java.lang.NullPointerException
at net.seesharpsoft.intellij.plugins.filepreview.PreviewProjectHandler$2.selectionChanged(PreviewProjectHandler.java:87)
at jdk.internal.reflect.GeneratedMethodAccessor91.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.util.messages.impl.MessageBusImpl.invokeListener(MessageBusImpl.java:513)
at com.intellij.util.messages.impl.MessageBusConnectionImpl.deliverMessage(MessageBusConnectionImpl.java:142)
at com.intellij.util.messages.impl.MessageBusImpl.doPumpMessages(MessageBusImpl.java:438)
at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:398)
at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:388)
at com.intellij.util.messages.impl.MessageBusImpl.sendMessage(MessageBusImpl.java:372)
at com.intellij.util.messages.impl.MessageBusImpl.lambda$createTopicHandler$1(MessageBusImpl.java:241)
at com.sun.proxy.$Proxy102.selectionChanged(Unknown Source)
at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.lambda$fireSelectionChanged$21(FileEditorManagerImpl.java:1576)
at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl$6$1.run(FileEditorManagerImpl.java:1019)
at com.intellij.openapi.wm.impl.FocusManagerImpl.lambda$doWhenFocusSettlesDown$3(FocusManagerImpl.java:168)
at com.intellij.util.ui.UIUtil.invokeLaterIfNeeded(UIUtil.java:2418)
at com.intellij.ide.IdeEventQueue.ifFocusEventsInTheQueue(IdeEventQueue.java:177)
at com.intellij.ide.IdeEventQueue.executeWhenAllFocusEventsLeftTheQueue(IdeEventQueue.java:129)
at com.intellij.openapi.wm.impl.FocusManagerImpl.doWhenFocusSettlesDown(FocusManagerImpl.java:159)
at com.intellij.openapi.wm.impl.FocusManagerImpl.doWhenFocusSettlesDown(FocusManagerImpl.java:165)
at com.intellij.openapi.wm.impl.FocusManagerImpl.lambda$null$2(FocusManagerImpl.java:173)
at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:309)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.doRun(LaterInvocator.java:441)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:424)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:407)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:908)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:781)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:424)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:698)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:423)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
When I am previewing a file and click in to type, this should (and does) convert file Preview to open the full Editor mode on the file. However, it seems that as soon as the Preview closes and Editor opens, focus on the editing file is lost, and I am back on Projects pane. The user experience then is:
The impact from the above is a bit more compounded when (like I first tried it) you double-click a work to select it to start typing: First the word disappears and is replaced by the first one or two letters (depending how quickly you type), then your focus is left on the Project files pane.
I am really enjoying Quick File Preview: It's working so well, it's in fact dropped out of my consciousness-- sign of a great feature!
It is not opening a directory in one click
With the new version the shifting focus problem has been solved in some cases like using the brackets {} but not if
I rename a class name using the Rename action
As a user I want to be able to configure, that the file preview tab always does spawn,
docked apart from the normal editor tabs, so there is a visual distinction by a gap.
Depending on the settings set in:
It should draw the part on the configured side.
I'm using PyCharm (2019.2.3 Community Edition) on Ubuntu (18.04.3), and switching tabs ('Select Next Tab' and 'Select Previous Tab') with original hotkey ('Alt+Right' and 'Alt+Left') or personal keymap ('Ctrl+Tab' and 'Ctrl+Shift+Tab') with 'Autoscroll from Source' turned on will switch tab correctly, but will also switch focus to the explorer, so any further tab shifts just change the explorer's scope instead.
Hello. I'm trying to use this plugin in PHPStorm 2019.2. I've installed it from the marketplace and restarted the IDE several times, but when I click on a file in the project view it opens as a normal tab.
Do I need to do something within the editor to enable the preview?
Preview Editor tab won't open if the Project View has the "Autoscroll to Source" option enabled.
Thanks for sharing this plugin! It's a shame more sane tab handling isn't built in to the IDE, but this helps a lot.
I find I still get a "tab explosion" while moving through the code -- e.g. opening new tabs from the find window and navigating to definitions from there, which also opens new tabs. Ideally there would be an option to open files from these actions in the preview window first.
java.lang.Throwable: Write-unsafe context! Model changes are allowed from write-safe contexts only. Please ensure you're using invokeLater/invokeAndWait with a correct modality state (not "any"). See TransactionGuard documentation for details.
current modality=ModalityState.NON_MODAL
known modalities:
ModalityState:{}, writingAllowed=true;
ModalityState.NON_MODAL, writingAllowed=true;
ModalityState:{}, writingAllowed=true;
ModalityState:{}, writingAllowed=true;
ModalityState:{}, writingAllowed=true;
ModalityState:{}, writingAllowed=true;
ModalityState:{}, writingAllowed=true
at com.intellij.openapi.diagnostic.Logger.error(Logger.java:145)
at com.intellij.openapi.application.TransactionGuardImpl.assertWriteActionAllowed(TransactionGuardImpl.java:229)
at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileImpl4Edt(FileEditorManagerImpl.java:862)
at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.lambda$openFileImpl4$7(FileEditorManagerImpl.java:845)
at com.intellij.openapi.application.impl.ApplicationImpl.invokeAndWait(ApplicationImpl.java:630)
at com.intellij.openapi.application.impl.ApplicationImpl.invokeAndWait(ApplicationImpl.java:643)
at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileImpl4(FileEditorManagerImpl.java:845)
at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileImpl3(FileEditorManagerImpl.java:790)
at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.lambda$openFileImpl2$4(FileEditorManagerImpl.java:773)
at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:220)
at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:178)
at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:168)
at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:154)
at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileImpl2(FileEditorManagerImpl.java:773)
at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl.openFileWithProviders(FileEditorManagerImpl.java:704)
at com.intellij.openapi.fileEditor.ex.FileEditorManagerEx.openFile(FileEditorManagerEx.java:139)
at net.seesharpsoft.intellij.plugins.filepreview.PreviewProjectHandler$1.valueChanged(PreviewProjectHandler.java:44)
at java.desktop/javax.swing.JTree.fireValueChanged(JTree.java:2967)
at java.desktop/javax.swing.JTree$TreeSelectionRedirector.valueChanged(JTree.java:3456)
at java.desktop/javax.swing.tree.DefaultTreeSelectionModel.fireValueChanged(DefaultTreeSelectionModel.java:641)
at com.intellij.ui.treeStructure.Tree$MySelectionModel.fireValueChanged(Tree.java:625)
at java.desktop/javax.swing.tree.DefaultTreeSelectionModel.notifyPathChange(DefaultTreeSelectionModel.java:1111)
at java.desktop/javax.swing.tree.DefaultTreeSelectionModel.setSelectionPaths(DefaultTreeSelectionModel.java:297)
at java.desktop/javax.swing.JTree.setSelectionPaths(JTree.java:1669)
at java.desktop/javax.swing.JTree.setSelectionRows(JTree.java:1752)
at java.desktop/javax.swing.JTree.setSelectionRow(JTree.java:1727)
at com.intellij.util.ui.tree.TreeUtil.lambda$showAndSelect$10(TreeUtil.java:594)
at com.intellij.util.ui.tree.TreeUtil.showAndSelect(TreeUtil.java:629)
at com.intellij.util.ui.tree.TreeUtil.showRowCentered(TreeUtil.java:539)
at com.intellij.util.ui.tree.TreeUtil.showRowCentered(TreeUtil.java:530)
at com.intellij.util.ui.tree.TreeUtil.showRowCentred(TreeUtil.java:525)
at com.intellij.util.ui.tree.TreeUtil.selectPath(TreeUtil.java:456)
at com.intellij.util.ui.tree.TreeUtil.selectPath(TreeUtil.java:449)
at com.intellij.ide.projectView.impl.AsyncProjectViewSupport.selectPaths(AsyncProjectViewSupport.java:210)
at com.intellij.ide.projectView.impl.AsyncProjectViewSupport.lambda$null$2(AsyncProjectViewSupport.java:173)
at org.jetbrains.concurrency.AsyncPromise$onProcessed$1.accept(AsyncPromise.kt:85)
at org.jetbrains.concurrency.AsyncPromise$onProcessed$1.accept(AsyncPromise.kt:13)
at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:837)
at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
at java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2073)
at org.jetbrains.concurrency.AsyncPromise.setResult(AsyncPromise.kt:130)
at com.intellij.ui.tree.AbstractTreeWalker.processNextPath(AbstractTreeWalker.java:149)
at com.intellij.ui.tree.AbstractTreeWalker.start(AbstractTreeWalker.java:109)
at com.intellij.ui.tree.AbstractTreeWalker.start(AbstractTreeWalker.java:92)
at org.jetbrains.concurrency.AsyncPromise$onSuccess$1.accept(AsyncPromise.kt:58)
at org.jetbrains.concurrency.AsyncPromise$onSuccess$1.accept(AsyncPromise.kt:13)
at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
at java.base/java.util.concurrent.CompletableFuture.uniWhenCompleteStage(CompletableFuture.java:883)
at java.base/java.util.concurrent.CompletableFuture.whenComplete(CompletableFuture.java:2251)
at org.jetbrains.concurrency.AsyncPromise.onSuccess(AsyncPromise.kt:55)
at com.intellij.ui.tree.AsyncTreeModel.lambda$null$7(AsyncTreeModel.java:284)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:169)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:591)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:537)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:59)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:156)
at com.intellij.util.concurrency.Invoker.invokeSafely(Invoker.java:145)
at com.intellij.util.concurrency.Invoker.lambda$invokeLater$0(Invoker.java:91)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.doRun(LaterInvocator.java:433)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:416)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:399)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:873)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:822)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:461)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:704)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:460)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
IJ 2019.2
As a user I want to be able to close the file preview tab by hitting the ESC-Key
, so in case I accidentally clicked a file for preview, I immediately can close the spawned tab.
In the above screencast, I have focus on a folder, arrow down a few times, first non-folder file opens Preview, next non-folder file also opens in Preview but also loses focus. I click a folder to repeat/resume keyboard, same thing.. click one more time this time into file, same thing.
First, thanks for the plugin, got very excited to find about it today!
I'm using Webstorm 2019.2 with Quick File Preview 1.3.2 and it works good on the "original" project structure. Unfortunately, the plugin does not seem to pick on files that are in "Favourites".
Settings wise, Webstorm lets you have "Autoscroll to source" enabled or disabled for the Favourites tab specifically - I made sure it is disable there too
If the theory that there's a queue of recently closed tabs silently cycling through is correct, then I guess Quick File Preview plugin should attempt to exclude itself from the Recently Closed tabs queue upon open. If it can't (due to how the IDE works), then maybe Quick File Preview can instead immediately issue a "reopen last tab" upon successfully loading itself.
File that was last opened via preview stays open after restart in a non-preview editor tab
As a user I want to be able to configure, that the file preview tab always does spawn,
the previewed file, to the most left or top position, so I always am aware of where my
file preview tab is.
Depending on the navigation placement, it should either show left or top:
File -> Settings -> Editor -> General -> Editor Tabs
Placement: top
: most leftPlacement: bottom
: most leftPlacement: left
: most topPlacement: right
: most topIt should have an option in the settings to choose "left"-position (or first)
It should have an option in the settings to choose "top"-position (or first)
It should force the positioning even if the setting Sort tab alphabetically
is set
Here is a similar issue for the last (most right) position
I am running the latest version of PyCharm: 202.6397.98.
This plugin used to work perfectly, but with the latest build, I am seeing the following behavior:
At first, the preview window will open normally, but after clicking on 3-5 different files, the preview window will open and then immediately close. Re-launching PyCharm makes it work again (for the 3-5 files).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.