Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Long term goal: Integrate with various Git GUIs #45

Open
jimthedev opened this issue Oct 28, 2015 · 5 comments
Open

Long term goal: Integrate with various Git GUIs #45

jimthedev opened this issue Oct 28, 2015 · 5 comments

Comments

@jimthedev
Copy link
Member

Would be great it we could provide a way for git GUIs to inject themselves in the place of inquirer so that they could use their own GUIs to ask users for prompts. This might be a pie in the sky idea but it would be pretty freaking cool.

@pauleveritt
Copy link

Here are the docs for writing IntelliJ plugins but it's going to be an open question whether the plug point that you want is available. [VCS Integration Plugins](VCS Integration Plugins) looks like it is in the ballpark.

I've asked internally and pointed to this ticket. Will need patience, still cleaning up from last week's update-the-universe cycle.

@jimthedev
Copy link
Member Author

@pauleveritt Thanks and no worries on timing. I am still working on several major changes that would be breaking changes for any IDE plugins. It will still be nice to read up and familiarize myself a bit with the ecosystem. Thanks a bunch.

@vjpr
Copy link

vjpr commented Jun 15, 2016

Just wanted to mention there is an IntelliJ plugin for writing plugins at runtime that can rapidly speed up the development process. https://github.com/dkandalov/live-plugin

VCS Plugin Docs - http://www.jetbrains.org/intellij/sdk/docs/reference_guide/vcs_integration_for_plugins.html

I found a silly IntelliJ plugin that adds a button to the commit dialog to use as a starting point: https://github.com/darekkay/what-the-commit

The hook is in META_INF:

...
    <actions>
        <action id="WhatTheCommit.Button" class="com.eclectide.intellij.whatthecommit.WhatTheCommitAction"
                text="What The Commit"
                description="Load random message" icon="/load.png">
            <add-to-group group-id="Vcs.MessageActionGroup" anchor="first"/>
        </action>
    </actions>
...

For showing a dialog: http://www.jetbrains.org/intellij/sdk/docs/user_interface_components/dialog_wrapper.html?search=dialog


This plugin (https://github.com/jshiell/checkstyle-idea/) adds a checkbox to the "Before Commit" section of the commit dialog. I think this is the best approach because it makes it easy to disable it (good reducing frustration during early adoption in a code base).

Most of the code needed is here:
https://github.com/jshiell/checkstyle-idea/blob/e04092ab57bfb0a5ad8a26114faca9ecc4318afd/src/main/java/org/infernus/idea/checkstyle/handlers/ScanFilesBeforeCheckinHandler.java


The checkinHandlerFactory extension point is what we are looking for:

https://github.com/jshiell/checkstyle-idea/blob/e547d13ef4d168a6a2400c76d31bee825b27c3e3/src/main/resources/META-INF/plugin.xml#L184

All the VCS extension points can be found here: https://upsource.jetbrains.com/idea-ce/file/idea-ce-1731d054af4ca27aa827c03929e27eeb0e6a8366/platform/platform-resources/src/META-INF/VcsExtensionPoints.xml

Because of this, I don't think live-plugin will do, it would need to be a proper plugin.


Turns out live-plugin does support extension points (dkandalov/live-plugin#61). Should be very easy to make.

@darrachequesne
Copy link

Hi! We add the need for an IntelliJ integration at work, so we made this really basic plugin: https://plugins.jetbrains.com/plugin/9861-git-commit-template

Source is here: https://github.com/MobileTribe/commit-template-idea-plugin

Open to suggestions!

@motin
Copy link

motin commented Sep 28, 2018

Using SourceTree, it is possible to add a custom action that launches git cz in the current repository's directory in a new terminal window. The custom action can be assigned a keyboard shortcut. This is as close of a GUI integration that is possible at the moment it seems. :)
Code here for anyone interested: https://gist.github.com/motin/5896c5b04d039aac48e6a2985d12171b

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants