Giter VIP home page Giter VIP logo

chriscarini / automatic-github-issue-navigation-configuration-jetbrains-plugin Goto Github PK

View Code? Open in Web Editor NEW
6.0 6.0 0.0 1.69 MB

A plugin that automatically configures the IDEs Issue Navigation for GitHub projects.

Home Page: https://plugins.jetbrains.com/plugin/19543-automatic-github-issue-navigation-configuration

License: Apache License 2.0

Java 100.00%
github github-issues intellij intellij-plugin jetbrains jetbrains-plugin

automatic-github-issue-navigation-configuration-jetbrains-plugin's People

Contributors

allcontributors[bot] avatar chriscarini avatar dependabot[bot] avatar github-actions[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

automatic-github-issue-navigation-configuration-jetbrains-plugin's Issues

`java.lang.StringIndexOutOfBoundsException`

java.lang.StringIndexOutOfBoundsException: begin 7, end -1, length 56
	at java.base/java.lang.String.checkBoundsBeginEnd(String.java:4602)
	at java.base/java.lang.String.substring(String.java:2705)
	at com.chriscarini.jetbrains.github.utils.GitHubUri.parseSsh(GitHubUri.java:27)
	at com.chriscarini.jetbrains.github.issue.navigation.GitHubIssueNavigationStartupActivity.lambda$runActivity$0(GitHubIssueNavigationStartupActivity.java:54)
	at java.base/java.lang.Iterable.forEach(Iterable.java:75)
	at com.chriscarini.jetbrains.github.issue.navigation.GitHubIssueNavigationStartupActivity.lambda$runActivity$1(GitHubIssueNavigationStartupActivity.java:36)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
	at com.chriscarini.jetbrains.github.issue.navigation.GitHubIssueNavigationStartupActivity.runActivity(GitHubIssueNavigationStartupActivity.java:34)
	at com.intellij.ide.startup.impl.StartupManagerImpl.runActivityAndMeasureDuration(StartupManagerImpl.kt:327)
	at com.intellij.ide.startup.impl.StartupManagerImpl.access$runActivityAndMeasureDuration(StartupManagerImpl.kt:72)
	at com.intellij.ide.startup.impl.StartupManagerImpl$runPostStartupActivities$4$2.invoke$lambda$0(StartupManagerImpl.kt:280)
	at com.intellij.util.concurrency.ContextRunnable.run(ContextRunnable.java:24)
	at com.intellij.openapi.project.SmartModeScheduler$addLast$1.invoke(SmartModeScheduler.kt:84)
	at com.intellij.openapi.project.SmartModeScheduler$addLast$1.invoke(SmartModeScheduler.kt:84)
	at com.intellij.openapi.project.SmartModeScheduler.addLast$lambda$0(SmartModeScheduler.kt:84)
	at com.intellij.openapi.project.SmartModeScheduler$RunnableDelegate.run(SmartModeScheduler.kt:47)
	at com.intellij.openapi.project.SmartModeScheduler.doRun(SmartModeScheduler.kt:136)
	at com.intellij.openapi.project.SmartModeScheduler.runAllWhileSmart(SmartModeScheduler.kt:128)
	at com.intellij.util.concurrency.ContextRunnable.run(ContextRunnable.java:24)
	at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:208)
	at com.intellij.openapi.application.TransactionGuardImpl.access$100(TransactionGuardImpl.java:21)
	at com.intellij.openapi.application.TransactionGuardImpl$1.run(TransactionGuardImpl.java:190)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:861)
	at com.intellij.openapi.application.impl.ApplicationImpl$4.run(ApplicationImpl.java:478)
	at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:79)
	at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:121)
	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:789)
	at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:740)
	at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:734)
	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:759)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:685)
	at com.intellij.ide.IdeEventQueue._dispatchEvent$lambda$10(IdeEventQueue.kt:589)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWithoutImplicitRead(ApplicationImpl.java:1485)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:589)
	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:992)
	at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:105)
	at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:992)
	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)

Received `StringIndexOutOfBoundsException`

I received a StringIndexOutOfBoundsException from this plugin in my IDE today. Could you please take a look? Here's the stacktrace:

java.lang.StringIndexOutOfBoundsException: begin 53, end -1, length 62
	at java.base/java.lang.String.checkBoundsBeginEnd(String.java:4606)
	at java.base/java.lang.String.substring(String.java:2709)
	at com.chriscarini.jetbrains.github.utils.GitHubUri.parseSsh(GitHubUri.java:27)
	at com.chriscarini.jetbrains.github.issue.navigation.GitHubIssueNavigationStartupActivity.lambda$runActivity$0(GitHubIssueNavigationStartupActivity.java:54)
	at java.base/java.lang.Iterable.forEach(Iterable.java:75)
	at com.chriscarini.jetbrains.github.issue.navigation.GitHubIssueNavigationStartupActivity.lambda$runActivity$1(GitHubIssueNavigationStartupActivity.java:36)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
	at com.chriscarini.jetbrains.github.issue.navigation.GitHubIssueNavigationStartupActivity.runActivity(GitHubIssueNavigationStartupActivity.java:34)
	at com.intellij.ide.startup.impl.StartupManagerImpl.runActivityAndMeasureDuration(StartupManagerImpl.kt:327)
	at com.intellij.ide.startup.impl.StartupManagerImpl.access$runActivityAndMeasureDuration(StartupManagerImpl.kt:72)
	at com.intellij.ide.startup.impl.StartupManagerImpl$runPostStartupActivities$4$2.invoke$lambda$0(StartupManagerImpl.kt:280)
	at com.intellij.util.concurrency.ContextRunnable.run(ContextRunnable.java:24)
	at com.intellij.openapi.project.SmartModeScheduler$addLast$1.invoke(SmartModeScheduler.kt:89)
	at com.intellij.openapi.project.SmartModeScheduler$addLast$1.invoke(SmartModeScheduler.kt:89)
	at com.intellij.openapi.project.SmartModeScheduler.addLast$lambda$0(SmartModeScheduler.kt:89)
	at com.intellij.openapi.project.SmartModeScheduler$RunnableDelegate.run(SmartModeScheduler.kt:49)
	at com.intellij.openapi.project.SmartModeScheduler.doRun(SmartModeScheduler.kt:137)
	at com.intellij.openapi.project.SmartModeScheduler.runAllWhileSmart(SmartModeScheduler.kt:129)
	at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:208)
	at com.intellij.openapi.application.TransactionGuardImpl.access$100(TransactionGuardImpl.java:21)
	at com.intellij.openapi.application.TransactionGuardImpl$1.run(TransactionGuardImpl.java:190)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:861)
	at com.intellij.openapi.application.impl.ApplicationImpl$4.run(ApplicationImpl.java:478)
	at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:79)
	at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:121)
	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: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:685)
	at com.intellij.ide.IdeEventQueue._dispatchEvent$lambda$10(IdeEventQueue.kt:589)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWithoutImplicitRead(ApplicationImpl.java:1485)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:589)
	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:992)
	at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:105)
	at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:992)
	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)

Add more issue navigation links by default or upon configuration

Hi,

I just found the plugin and I'm happy to say it works!

I have a proposal: it might by default, or upon configuration, add more configs than just the \(#(\d+)\) which it does now.
That way the overall behaviour may be more like the default behaviour of GitHub.

My suggestions are:

  • new IssueNavigationLink("\\s#(\\d+)", String.format("%s/issues/$1", url))
    matching every possible reference as long as it's separated by a space (i.e. #123), not only those which are added on a squash-merge (i.e. (#123) what it does right now)
    • new IssueNavigationLink("-\\s#(\\d+)", String.format("%s/issues/$1", url))
      a more conservative version, which only matches issues in lists (e.g. - #123)
  • new IssueNavigationLink("\\s([^/]+/[^#]+)#(\\d+)", "https://github.com/$1/issues/$2")
    This one will match the more verbose Org/repo#123, once more as long as it's separated by a space
    (it needs some refinement to use isKnownGitHubDomain, but I want to pass the idea)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.