I want to create a Google Closure Compiler plugin for Eclipse. I already have a popup menu entry to compile a JavaScript file to its minified version. But it would be more than helpful if every time you save a *.js
that minified version would be generated automatically. I read/heard about natures and builders, extension points and IResourceChangeListener
. But I did not manage to figure out what I should use and especially how to get it to work.
Is there a working example of a plugin that does "the same kind of thing" so I can work from that or a tutorial to write such?
With the answer below I searched for projects that use the IResourceChangeListener
and came up with this code:
Manifest: http://codepaste.net/3yahwe
plugin.xml
: http://codepaste.net/qek3rw
Activator: http://codepaste.net/s7xowm
DummyStartup: http://codepaste.net/rkub82
MinifiedJavascriptUpdater: http://codepaste.net/koweuh
There in the MinifiedJavascriptUpdater.java
which holds the code for the IResourceChangeListener
the resourceChanged()
function is never reached.
Answer from here http://www.eclipse.org/forums/index.php/t/362425/
Solution is to get the code into the activator and get rid of the
MinifiedJavascriptUpdater
:You want a builder for this. Eclipse has extensive support for just what you want to do, the notion of generated artifacts that need to be maintained as things change. This Paper will get you started (even though it's very old, it's completely accurate).
All of the language plugins (JDT, CDT, etc) do this sort of thing when they compile code.