Aardvark IntelliJ plugin

22 views
Skip to first unread message

chris

unread,
Feb 23, 2012, 9:34:42 AM2/23/12
to Aardvark
I was thinking this morning on my drive into work that it would be
really cool if there was an Aardvark IJ plugin that would download and
automatically create an IJ file based on an Aardvark file.

For example, to create a ronin app, you run vark -url http://www.ronin-web.org/init.vark
-name my_app

What would be cool is if you opened IJ, clicked on Create Project from
Aardvark file. Point to http://www.ronin-web.org/init.vark which would
parse the file looking for an init target, allow the user to fill in
all of the parameters specified by the target (in the ronin case one
field called name pre-populated with the value my_ronin_app) when the
user clicks OK runs that target.

Then the plugin could look for a target called configureIJProject
which would go and configure any additional parts of the project. I'm
thinking like creating run configs (continuing with the ronin example,
it would create a Run Server config).

That would be pretty awesome. I think.


Guess I found another Gosu project to add to my growing list of
projects

Chris

Carson Gross

unread,
Feb 23, 2012, 11:28:01 AM2/23/12
to aardv...@googlegroups.com
I like your line of thinking here.  Right now you can open the 'pom.xml' file that is generated in the ronin initialization script, and IJ will set the project up for you properly.  In general (I'm speaking for myself here, brian may or may not agree) I've come to the conclusion that the pom.xml is our best bet at standardized "project" file that works across IDEs: getting a plugin to resolve all the dependencies and libraries would be a tremendous amount of work, and the pom plugin in IJ is being maintained by the JetBrains guys, who know a thing or two about IntelliJ plugins.  ;)

That being said, however, I could see (and we've talked about this in the past) encoding the dependencies, source directory, etc. within a vark file, and then generating a pom.xml from that information.  The pom wouldn't be used for day-to-day development, but could be used by pom-aware tools as necessary.

It's a tough problem: the pom.xml appears to be the best cross-dev env project specification file, but maven... Man, maven.

Cheers,
Carson

Brian Chang

unread,
Feb 23, 2012, 6:45:42 PM2/23/12
to aardv...@googlegroups.com
As Carson said, I see POM files as the project definition standard.  In 0.4, you can parse a POM file (say, next to your build.vark) file and you'll have everything you need.

Also, I'm not totally in agreement with with the way Gus and Carson use init vark over HTTP.  I feel it would be a lot simpler if they had just written a Maven archetype.  But it's their code and they maintain it...  As a side note, note the irony, within the Gosu realm, that the owner of Aardvark is also possibly the strongest proponent of Maven.

build.vark and build.xml files are far too flexible to have any business defining a project.

You're welcome to write a configureIJProject enhancement as a third party library, but I won't want any IDE bias within Aardvark.  It would be really cool, though, to have a standard way of generating a IJ run configuration that matches what's in a Java task call.  We've already been doing that sort of thing at GW San Mateo.

Carson Gross

unread,
Feb 23, 2012, 6:49:20 PM2/23/12
to aardv...@googlegroups.com
I refuse to be involved with anything in which the term 'archetype' figures large.

Cheers,
Carson

Chris Gow

unread,
Feb 23, 2012, 8:28:25 PM2/23/12
to aardv...@googlegroups.com
Looks like the way to go is Maven then. I've been able to keep my head
in the sand and be blissfully ignorant of it up till now :)

I wasn't suggesting that Aardvark change in anyway to support this
functionality, the idea was that the IJ plugin would do some
"reflection" on the vark build file and if it came across a
configureIJProject target, it would run that.

Chris

Brian Chang

unread,
Feb 23, 2012, 8:57:49 PM2/23/12
to aardv...@googlegroups.com
Well first things first, the IJ Gosu plugin currently doesn't support parsing of .vark files.  :)

But sure, I could imagine one day for the IJ plugin to run such a target which would provide a JSON block to configure a run configuration.  Maybe.
Reply all
Reply to author
Forward
0 new messages