- 👋 Hi, I’m @comod
git-scope's Introduction
git-scope's People
git-scope's Issues
Double clicking on a file in webstorm doesn't take you to the file
Hi, I've been using git-scope for a long time. The latest version isn't behaving correctly in webstorm.
Once the git-scope window opens up you normally can double-click on a file and it'll open the source code. In the latest version of web storm this isn't happening.
Also the plugin has gone commercial, I've found this plug-in most useful, so getting that issue fixed by paying an annual fee sounds sensible to me.
Plugin exceptions causing loading errors & IDE crashes
Hi @comod,
Let me start with thanking you for this awesome plugin!
I do experience some plugin exceptions in my IDE, Webstorm in my case.
My environment
- Apple Macbook M1 Pro (MacOS Ventura > 13.3 (22E252))
- WebStorm 2023.1 (#WS-231.8109.174 > latest version)
- Git Scope v3.0.6
Experienced exceptions
Severe > IDE crashes
Sometimes my IDE crashes completely.
I have not been able to exactly pin point which exception this behaviour belongs to.
Medium > Loading errors when opening Git Scope panel
Very often the plugin hangs in loading state, the quick fix is closing and reopening my IDE.
I think I know which exception this behaviour belongs to, see logs below.
Exception logs
Log of all the Git Scope exceptions I experienced below.
Access from Event Dispatch Thread (EDT) is not allowed (happens every time on startup)
com.intellij.openapi.diagnostic.RuntimeExceptionWithAttachments: Current thread: Thread[AWT-EventQueue-0,6,main] 671876226 (EventQueue.isDispatchThread()=true) SystemEventQueueThread: (same) at com.intellij.openapi.application.impl.ApplicationImpl.throwThreadAccessException(ApplicationImpl.java:1050) at com.intellij.openapi.application.impl.ApplicationImpl.assertIsNonDispatchThread(ApplicationImpl.java:1044) at com.intellij.dvcs.repo.AbstractRepositoryManager.getRepositoryForFile(AbstractRepositoryManager.java:80) at git4idea.diff.GitDiffProvider.createCurrentFileContent(GitDiffProvider.java:124) at com.intellij.openapi.vcs.changes.FakeRevision.getContent(FakeRevision.java:38) at implementation.lineStatusTracker.MyLineStatusTrackerImpl.updateLineStatusByChangesForEditor(MyLineStatusTrackerImpl.java:198) at implementation.lineStatusTracker.MyLineStatusTrackerImpl.updateOpenTabs(MyLineStatusTrackerImpl.java:148) at implementation.lineStatusTracker.MyLineStatusTrackerImpl.update(MyLineStatusTrackerImpl.java:112) at implementation.Manager.updateLst(Manager.java:503) at implementation.Manager.onAfterUpdate(Manager.java:461) at implementation.Manager.updateFromHEAD(Manager.java:398) at implementation.Manager.doCompareAndUpdate(Manager.java:308) at implementation.Manager.lambda$initialUpdate$1(Manager.java:160) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:788) at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:739) at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:731) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:758) at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:666) at com.intellij.ide.IdeEventQueue._dispatchEvent$lambda$7(IdeEventQueue.kt:570) at com.intellij.openapi.application.impl.ApplicationImpl.withoutImplicitRead(ApplicationImpl.java:1446) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:570) at com.intellij.ide.IdeEventQueue.access$_dispatchEvent(IdeEventQueue.kt:68) at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:349) at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:348) at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:787) at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:348) at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:343) at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$1(IdeEventQueue.kt:994) at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:105) at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:994) at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$4(IdeEventQueue.kt:343) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:831) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:385) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)Cannot invoke "utils.Git.getBranchName()" because "this.git" is null (seems to be the exception causing the loading error)
java.lang.NullPointerException: Cannot invoke "utils.Git.getBranchName()" because "this.git" is null at ui.elements.CurrentBranch.update(CurrentBranch.java:31) at ui.ToolWindowUI.updateStatus(ToolWindowUI.java:172) at ui.ToolWindowUI.update(ToolWindowUI.java:164) at implementation.Manager.updateToolWindowUI(Manager.java:487) at implementation.Manager.onAfterUpdate(Manager.java:456) at implementation.Manager.updateFromHEAD(Manager.java:398) at implementation.Manager.doCompareAndUpdate(Manager.java:308) at implementation.Manager.lambda$initialUpdate$1(Manager.java:160) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:788) at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:739) at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:731) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:758) at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:666) at com.intellij.ide.IdeEventQueue._dispatchEvent$lambda$7(IdeEventQueue.kt:570) at com.intellij.openapi.application.impl.ApplicationImpl.withoutImplicitRead(ApplicationImpl.java:1446) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:570) at com.intellij.ide.IdeEventQueue.access$_dispatchEvent(IdeEventQueue.kt:68) at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:349) at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:348) at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:787) at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:348) at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:343) at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$1(IdeEventQueue.kt:994) at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:105) at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:994) at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$4(IdeEventQueue.kt:343) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:831) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:385) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)Cannot invoke (class=, method=after, topic=BulkFileListener) > caused by Cannot invoke "utils.Git.getBranchName()" because "this.git" is null
java.lang.RuntimeException: Cannot invoke (class=, method=after, topic=BulkFileListener) at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:657) at com.intellij.util.messages.impl.MessageBusImplKt.executeOrAddToQueue(MessageBusImpl.kt:482) at com.intellij.util.messages.impl.ToDirectChildrenMessagePublisher.publish$intellij_platform_core(CompositeMessageBus.kt:294) at com.intellij.util.messages.impl.MessagePublisher.invoke(MessageBusImpl.kt:442) at jdk.proxy1/jdk.proxy1.$Proxy198.after(Unknown Source) at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl.lambda$fireAfterEvents$18(PersistentFSImpl.java:1219) at com.intellij.util.Suppressions$runSuppressing$1$1.invoke(suppressions.kt:16) at com.intellij.util.Suppressions$runSuppressing$1$1.invoke(suppressions.kt:16) at com.intellij.util.Suppressions.runSuppressing(suppressions.kt:23) at com.intellij.util.Suppressions.runSuppressing(suppressions.kt:16) at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl.fireAfterEvents(PersistentFSImpl.java:1216) at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl.applyMultipleEvents(PersistentFSImpl.java:1195) at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl.processEventsImpl(PersistentFSImpl.java:1158) at com.intellij.openapi.vfs.newvfs.AsyncEventSupport.processEventsFromRefresh(AsyncEventSupport.java:150) at com.intellij.openapi.vfs.newvfs.RefreshSessionImpl.fireEventsInWriteAction(RefreshSessionImpl.java:230) at com.intellij.openapi.vfs.newvfs.RefreshSessionImpl.lambda$fireEvents$1(RefreshSessionImpl.java:211) at com.intellij.openapi.application.impl.ApplicationImpl.lambda$runEdtProgressWriteAction$6(ApplicationImpl.java:938) at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:186) at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:604) at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:679) at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:635) at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:603) at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60) at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:173) at com.intellij.openapi.progress.util.PotemkinProgress.runInSwingThread(PotemkinProgress.java:150) at com.intellij.openapi.application.impl.ApplicationImpl.lambda$runEdtProgressWriteAction$7(ApplicationImpl.java:938) at com.intellij.openapi.application.impl.ApplicationImpl.runWriteActionWithClass(ApplicationImpl.java:946) at com.intellij.openapi.application.impl.ApplicationImpl.runEdtProgressWriteAction(ApplicationImpl.java:936) at com.intellij.openapi.application.impl.ApplicationImpl.runWriteActionWithNonCancellableProgressInDispatchThread(ApplicationImpl.java:919) at com.intellij.openapi.vfs.newvfs.RefreshSessionImpl.lambda$fireEvents$2(RefreshSessionImpl.java:206) at com.intellij.openapi.application.WriteAction.lambda$run$1(WriteAction.java:87) at com.intellij.openapi.application.impl.ApplicationImpl.runWriteActionWithClass(ApplicationImpl.java:946) at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:972) at com.intellij.openapi.application.WriteAction.run(WriteAction.java:86) at com.intellij.openapi.vfs.newvfs.RefreshSessionImpl.fireEvents(RefreshSessionImpl.java:205) at com.intellij.openapi.vfs.newvfs.RefreshQueueImpl.lambda$queueSession$2(RefreshQueueImpl.java:102) at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$safeTransferToEdt$6(NonBlockingReadActionImpl.java:633) at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:209) at com.intellij.openapi.application.TransactionGuardImpl.access$100(TransactionGuardImpl.java:21) at com.intellij.openapi.application.TransactionGuardImpl$1.run(TransactionGuardImpl.java:191) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:831) at com.intellij.openapi.application.impl.ApplicationImpl$3.run(ApplicationImpl.java:456) at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:79) at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:122) at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:41) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:788) at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:739) at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:731) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:758) at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:666) at com.intellij.ide.IdeEventQueue._dispatchEvent$lambda$7(IdeEventQueue.kt:570) at com.intellij.openapi.application.impl.ApplicationImpl.withoutImplicitRead(ApplicationImpl.java:1446) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:570) at com.intellij.ide.IdeEventQueue.access$_dispatchEvent(IdeEventQueue.kt:68) at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:349) at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:348) at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:787) at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:348) at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:343) at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$1(IdeEventQueue.kt:994) at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:105) at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:994) at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$4(IdeEventQueue.kt:343) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:831) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:385) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92) Caused by: java.lang.NullPointerException: Cannot invoke "utils.Git.getBranchName()" because "this.git" is null at ui.elements.CurrentBranch.update(CurrentBranch.java:31) at ui.ToolWindowUI.updateStatus(ToolWindowUI.java:172) at ui.ToolWindowUI.update(ToolWindowUI.java:164) at implementation.Manager.updateToolWindowUI(Manager.java:487) at implementation.Manager.onAfterUpdate(Manager.java:456) at implementation.Manager.updateFromHEAD(Manager.java:398) at implementation.Manager.doCompareAndUpdate(Manager.java:308) at implementation.Manager$1.after(Manager.java:205) at com.intellij.util.messages.impl.MessageBusImplKt.invokeMethod(MessageBusImpl.kt:680) at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:640) ... 73 moreBranch selection dropdown appears at random times
The branch selection dropdown appears at random times, often when the main window looses focus. This is seen on on a CLion in Linux, I don't seem to notice the same thing when using CLion on Windows.
Any timeline when an updated paid version can be available?
Errors using multiple git repositories in same project?
Hello, I am a licensed user, I bought the plugin two weeks ago
Question 1: is the multi git repo layout supported?
When using multi git repo in same project
the git scope pane
- don't show some branches should be present, as you can see with the cli
git branch
- after some input in the search field the list of branches is corrupted
Important
Are we trying to do something is not supported ?
Question 2 : why the scope show A..B
and not B..A
?
Do I understand well the notation feature/branchX..HEAD
? I would have think a scope should contain the commits in the feature branch not in the current and not the reverse
Maybe I am missing something.... before I was thinking the plugin would have been useful to show diff between feature/branchX
and the current branch, ie: main
, so I would have expect HEAD..feature/branchX
and not the reverse
Thanks
Status bar widget
Hi @comod, thank you for this plugin!
I noticed these issues in the status bar:
- the widget is always visible; there is no way to hide it from the status bar
![image](https://private-user-images.githubusercontent.com/2446638/292155856-ae128197-1acd-4136-bebe-e6602efab870.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTgzMjQwMjQsIm5iZiI6MTcxODMyMzcyNCwicGF0aCI6Ii8yNDQ2NjM4LzI5MjE1NTg1Ni1hZTEyODE5Ny0xYWNkLTQxMzYtYmViZS1lNjYwMmVmYWI4NzAucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDYxNCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA2MTRUMDAwODQ0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9M2I1MDZiYzFiNjliYmEwNDA4OWEyYWYwZmQ3NjE1MGI0Y2IyNjIwZDBkODgxMjZiNTQ4MDU5ZWFiYjMyMDAyYSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.SzG_Ek7RBG4hiagNfTYS3c2qn36iL80_MKME4bVkgKQ)
- in the compact mode, it breaks the vertical alignment of the left text
![image](https://private-user-images.githubusercontent.com/2446638/292155484-adbd82ae-ed02-4d89-b292-205ff1a9dc3e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTgzMjQwMjQsIm5iZiI6MTcxODMyMzcyNCwicGF0aCI6Ii8yNDQ2NjM4LzI5MjE1NTQ4NC1hZGJkODJhZS1lZDAyLTRkODktYjI5Mi0yMDVmZjFhOWRjM2UucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDYxNCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA2MTRUMDAwODQ0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NDg5OGQ3ZmZjZTZlZTEwYzM2NjQ2YjM5NmMyNjU0N2M0NjZiNDA2NzI0ZDk0NWI1ZWE0MDQ4NzMwMDEyNmFhMiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.11urtKP_surt7sbXWDsgBvFaopB-k-gfu03DmSvxrcY)
Can the ability to export differences as diff files be added?
Shortcut to jump between changes
This plugin is a life saver!
I'm wondering whether there is a possibility to support the Navigate -> Navigate in File -> "Next Change" and "Previous" shortcuts. When working with local changes, this is the way I tend to quickly jump between changes in a file, through a shortcut.
Empty toolbox windows
A Bug was found that caused the prompt to be smaller in the position of the original line number
我遇到一个 Bug,在禁用/卸载插件后,行号位置的变更标识没了(ide自己的也没了)
提一个建议:能否可以将变更生成为 diff 文件
I encountered a Bug where after disabling/uninstalling the plugin, the change identifier for the line number location disappeared (and the ide's own disappeared).
Make a suggestion: Can you generate the changes as diff files
Doesn't work in latest Jetbrains IDE's
I see you're completing a rewrite and I'm looking forward to using it.
My issues is the current version isn't supported in the latest webstorm so I have to use an old version of webstorm, it works, but older versions of webstorm have issues generally.
If it's a minor update, do you think you could post a fix to get the current version working again. I understand it's unnecessary as you're rewriting the system, but for myself using it in my old versions is causing me issues.
Of course this would only be a temp stop gap until you have you're new version running, but that'll give you some time to sort it out.
Prevent gitscope tool window from auto scrolling to top (enhancement)
When opening files the first time in IntelliJ the gitscope tool window auto scrolls back up to the top. I've got a branch with 120+ files - I scroll down to the 80th file then double click on it the first time and the gitscope window auto scrolls back to the top. Then I scroll down to the 81st file, double click on it the first time and it auto scrolls to the top again, rinse and repeat. It would be nice if the gitscope tool window did not auto scroll when opening a file for the first time. Or maybe make it a settings toggle option. Thanks for the great plugin!
Exception in 2023.1.5
The following error raise on Intellij start up and plugin doesn't work
java.lang.IllegalArgumentException: Argument for @NotNull parameter 'value' of state/MyModelConverter.fromString must not be null
at state.MyModelConverter.$$$reportNull$$$0(MyModelConverter.java)
at state.MyModelConverter.fromString(MyModelConverter.java)
at state.State.load(State.java:92)
at service.ViewService.load(ViewService.java:78)
at service.ViewService.initLater(ViewService.java:129)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:788)
at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:739)
at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:731)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:758)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:667)
at com.intellij.ide.IdeEventQueue._dispatchEvent$lambda$7(IdeEventQueue.kt:571)
at com.intellij.openapi.application.impl.ApplicationImpl.withoutImplicitRead(ApplicationImpl.java:1444)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:571)
at com.intellij.ide.IdeEventQueue.access$_dispatchEvent(IdeEventQueue.kt:68)
at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:349)
at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:348)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:787)
at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:348)
at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:343)
at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$1(IdeEventQueue.kt:995)
at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:105)
at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:995)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$4(IdeEventQueue.kt:343)
at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:829)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:385)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)
Plugin error during IntelliJ startup
IntelliJ version: 2023.2.3
Git Scope version: 2023.1.5
Git scope plugin is enabled.
At start up IntelliJ displays the following stack trace in the "IDE Internal Errors" popup.
com.intellij.openapi.diagnostic.RuntimeExceptionWithAttachments: Access from Event Dispatch Thread (EDT) is not allowed; see https://jb.gg/ij-platform-threading for details
Current thread: Thread[AWT-EventQueue-0,6,main] 110392481 (EventQueue.isDispatchThread()=true)
SystemEventQueueThread: (same)
at com.intellij.openapi.application.impl.ApplicationImpl.createThreadAccessException(ApplicationImpl.java:1083)
at com.intellij.openapi.application.impl.ApplicationImpl.throwThreadAccessException(ApplicationImpl.java:1078)
at com.intellij.openapi.application.impl.ApplicationImpl.assertIsNonDispatchThread(ApplicationImpl.java:1073)
at com.intellij.dvcs.repo.AbstractRepositoryManager.getRepositoryForFile(AbstractRepositoryManager.java:77)
at git4idea.diff.GitDiffProvider.createCurrentFileContent(GitDiffProvider.java:124)
at com.intellij.openapi.vcs.changes.FakeRevision.getContent(FakeRevision.java:38)
at implementation.lineStatusTracker.MyLineStatusTrackerImpl.updateLineStatusByChangesForEditor(MyLineStatusTrackerImpl.java:204)
at implementation.lineStatusTracker.MyLineStatusTrackerImpl.updateOpenTabs(MyLineStatusTrackerImpl.java:152)
at implementation.lineStatusTracker.MyLineStatusTrackerImpl.update(MyLineStatusTrackerImpl.java:112)
at service.ViewService.lambda$onUpdate$8(ViewService.java:410)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:792)
at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:739)
at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:733)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:761)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:690)
at com.intellij.ide.IdeEventQueue._dispatchEvent$lambda$10(IdeEventQueue.kt:593)
at com.intellij.openapi.application.impl.ApplicationImpl.runWithoutImplicitRead(ApplicationImpl.java:1485)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:593)
at com.intellij.ide.IdeEventQueue.access$_dispatchEvent(IdeEventQueue.kt:67)
at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:369)
at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:368)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:787)
at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:368)
at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:363)
at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$1(IdeEventQueue.kt:997)
at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:105)
at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:997)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$7(IdeEventQueue.kt:363)
at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:861)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:405)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)
Double click on file opens with cursor at the top of the file
Minor improvement: When double-clicking on a file in any of the created scopes, the file is opened with the cursor placed at the top of the file even if the file was already open in a tab. Would be good if the plugin could switch to the tab if it is already open and with that preserve the location of the cursor.
Support for tags and commits in addition to target branches
I would be very useful to be able to select any commit or tag as the target, not only a branch.
I might be too complicated if there is no support in the IntelliJ APIs used by this plugin?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.