Accessing IntelliJ IDEA functionality via API - api

I need to be able to add a svn precommit check to ensure that all java files being committed are properly indented - adhering to our project specific settings. We use IntelliJ IDEA 9.0 for our development. I was wondering if it is possibe to directly access IntelliJ IDEA 9.0's indentation functionality via an API so that I can call it from svn pre-commit hook. Any better ideas? (I don't intend to write plugins)

Commit dialog already has certain Before commit actions including Reformat code. Just make sure it's enabled. There should be also an API to provide custom actions for this dialog which will be performed by plug-ins. Check the IDEA Community edition source code to see how to use it.

Related

How can I run .http files without IntelliJ?

IntelliJ and VS Code support a "editor-based REST client" that allows you to write and save HTTP requests in a file and execute them (example).
I think it would be a good idea to include something like this in a project for a REST API so developers can see various endpoints and test them without leaving the editor, but I don't want to tie them to a specific IDE.
Is it possible to run .http files without requiring my team members adopt IntelliJ or VSCode?
If you are using VS Code you can use httpYAC. It is compatible with the IntelliJ http-Client.
You can try restcli:
https://github.com/restcli/restcli
A missing commandline application for execute IntelliJ HTTP Client file.

Eclipse Editor monitor file changes from out of Eclipse

I am developing a Plugin for eclipse, and notice that when user changes file from out of IDE, e.g., do a git pull using shell, my editor does not pick up the change. I try to use IResourceChangeListener but realize it only monitors changes happening in the workspace.
I have seen eclipse TextEditor can monitor external file change, but failed to find how it implements this from code. My editor is not a text editor so I cannot extend from TextEditor to get this for free.
Can anyone give me a hint how to properly implement this feature for eclipse? Thanks!
According to Eclipse FAQ you need to monitor non Eclipse file changes in separate thread.
Fortunately Java have file change notification API which can be used to implement this.

Intellij - how to make a plugin that can perform IDE actions via a CLI or web service?

I need some help getting started making a specific IntelliJ plugin.
I want to make an IntelliJ plugin that makes it so you can launch intelliJ actions from CLI (or from a web service if it's easier).
For example, I'm done building my project with a gradle script... but i want to get it ready in intelliJ too. Right now I have to do this manually with a point-and-clicks.
Instead I want to have this the ability to externally trigger some IntelliJ commands. In my example I would want to fire off these requests from my gradle script:
run-intellij-command {project-path} --action refresh-gradle
run-intellij-command {project-path} --action build-project
run-intellij-command {project-path} --action start-debugging --configurationName={configuration-name}
Does anyone have an example of how I can get started with this?
Really hoping there is an intellij plugin project that already does something similar like reacting to cli commands or hosts a web service that can be called?
Thanks!
Also created this https://youtrack.jetbrains.com/issue/IDEA-184885
hoping to see this feature become a reality some day
You can use the ApplicationStarterEx interface to implement that. Provide a class implementing the interface, and register it in your plugin.xml as the <appStarter> extension point.
To execute your code, use Tools | Create Command-line Launcher, and then run idea <startername> <arguments> from the command line, where startername is what you return from ApplicationStarter.getCommandName().
I'm not aware of any existing open-source plugins that implement similar functionality.

IntelliJ change lists without source control

We are being forced to work with Rational Team Concert [RTC] source control, which has very weak integration with IntelliJ (There is an IntelliJ plugin, but it's just buggy and extremely painful to work with).
So I plan to manage the source control outside IntelliJ using the windows shell extension or the eclipse plugin console.
Is it possible to manage IntelliJ change lists manually without connecting with any source control?
The only solution that I could think of so far, is having a mock SVN server to connect IntelliJ to, but this has many downsides to it...
Please help, I don't want to move to Eclipse :\
What I usually see is the use of an intermediate SCM tool which can interface with IntelliJ without disrupting the target SCM used (here RTC, through a local workspace or sandbox)
For instance, you can use git, as in "In git, what is a changelist?".
Once you are ready to commit, you can refresh your pending changes view in IntelliJ IDEA (if you are using the "JazzConnect-IntelliJ")

How to write an IntelliJ IDEA Plugin?

IDEA has many plugins to use. I.e. IDEtalk is one of them which I use. How can I code a simple plugin that just connects to Internet and shows a web page? (no need for an address bar but it is not a problem to be). I want my plugin's shortcut's button locate at my IDE as like IDEtalk, Commander, Maven Projects etc.
Any ideas?
Check the documentation and the source code of the other plug-ins available in the public git repository of the Community Edition.
There is a Creating Your First Plugin guide on JetBrains web site. It covers all the needed steps from plugin creation to deployment to the plugin repository.
You might also want take a look in the source code of a simple plugin like Twitter Integration Plugin which I recently implemented. Or check a more complex one like this one.