Customize different Eclipse installations with custom name and application logo

I have two separated installations of Eclipse on my mac, one is configured for Java development and one for Python. Technically I could use only one installation for both by installing all the required plugins, but I prefer to have two speparated apps! I don’t use OSX dock to gather my applications, instead I usually launch apps using Spotlight (in this way I’m able to open whatever program I need without moving my fingers from the keyboard). The “problem” is that in this way when I type “Ec…” in order to search the app to launch, is very hard to understand which is the Java configured one and which the Python one.
So, since on OSX every .app file is merely a folder containing a series of files like: the real executable program, a .plist containing application settings an .icns file and so on, it’s possible to just rename the .app file from to for example and the app will still work.
This solve the problem of Spotlight listing, but using command+tab to switch among applications would force me to move over each app in order to know its name and then choose the right one… the only effective solution is to replace the original Eclipse logo with a custom one. Fortunately this is very simple, these are the necessary steps:

  1. Use Google images to find a logo to use and download it (In my case I searched for “python logo” specifying “large” in the search option)
  2. Use the free online converter here: to turn the downloaded image into a .icns file:

    • upload the downloaded image
    • click on “options” and check only “Convert to icns icons (Mac OS X)” and “Convert to 32-bit icons” options)
    • download the generated file
  3. Use the generated file as the app icon:

    • locate your
    • right click and choose “show package content”
    • switch to Contents/Resources and place the generated .icns file here
    • switch to Contents/MacOS and in the eclipse.ini file change “-Xdock:icon=” in order to use the .icns of your choice
    • switch to Contents/ and in the Info.plist under “Icon file” do the same
    • make a copy of (command+C/command+V) to force OSX cache refresh
    • you should see “Eclipse” with the new icon and “” with the old icon
    • delete the orignal
    • rename the copy as you like
    • finish!

(if you don’t care about original icon you can simply replace it with the generated one without updating the configurations files!)
(this trick can be used to customize any mac application)

The image above is a sample screenshot showing how I have customized my Eclipse icons (the Star Wars death star is used for Java configured eclipse, the python logo for PyDev installation):


Extending Eclipse using JavaScript and Monkey Script engine

I was wondering how to wrap a string with quotes in Eclipse by using a shortcut, then I realized that there is not such command, so I started thinking for a solution and initially I created an Aptana’s snippet, but I was not satisfied, because I want to have an handy shortcut to invoke my snippet. By googling, I discovered Eclipse Monkey Script engine, that is an extremely powerful tool for every JavaScript developer who wants to extend Eclipse features by writing few lines of JavaScript code. In order to use the js engine, you must have the package org.eclipse.eclipsemonkey (which is installed by default by Aptana) installed. Unfortunately I can’t find a complete and exhaustive reference for this project, which seems forgotten by authors, so I learnt what I know reading different posts.
Basically, Monkey Script allow developers to access editor’s instance, get selected test, get document content, edit it and update it. Moreover is possible to print text to consol, read and create files on the filesystem… and finally the scripts created will be accessible from Eclipse menu (under “Scripts”) and invokable through user defined shortcut… really nice!
So, backing to my experiment, I created this monkey script:

* Key: M1+M2+C
* Menu: Custom Scripts > Wrap with double quotes
* DOM:
* Kudos: Davide Zanotti
function main() {
	// no editor... exit
	if (typeof editors.activeEditor == 'undefined') {
		return alert('No active editor');
	// get a reference to the editor in use
	var editor = editors.activeEditor;
	// beginning of text selection
	var startOffset = editor.selectionRange.startingOffset;
	// end of text selection
	var endOffset = editor.selectionRange.endingOffset;
	// selected text
    var selection = editor.source.substring(startOffset, endOffset);
	try {
		// surround selection with quotes
	   editor.applyEdit(startOffset, endOffset - startOffset, '"' + selection + '"');
	} catch (e) {
		alert('Error ' + e.code + ': ' + e.message);

It’s important to notice some points, first you MUST write an “header” using the comment syntax “/* */” into which you MUST declare at least 2 parameter: the “Menu” path (you can nest several menu items by writing several “>”) and the “DOM” package (which allows you to access specific objects like “editors“). You can write several js functions, but you must provide a main() function, which is called automatically by Eclipse once you launch your script, otherwise you can call the main function as you like but you must then provide the “OnLoad” param in the header, specifying which function will be called.
To define a shortcut you can use the “Key” parameter and define your own keys combination by choosing among the four modifiers: M1, M2, M3, M4, that are a platform-independent way of representing keys (these stand for ALT, COMMAND, CTRL, and SHIFT). The strange (at least to me) parameter “Kudos” is used to declare the author of the monkey script.
To test my little script or create your own, you have simply to create a new project into Eclipse by calling it as you like (ie: “custom-extensions”), then create a “scripts” folder into which you will save your .js files… that’s all, try yourself and enjoy :)

This is how it looks:

eclipse monkey script menu

eclipse monkey script menu

ps: I’m going to explore the Monkey Script API in order to write more complex and useful extensions :P

Installing Eclipse + Aptana + Subclipse SVN

Recently I’ve updated my Eclipse version and I installed certain plugin which has created some kind of conflict and confusion in my workspace. What I was trying to do was installing an SVN plugin in order to work on a google code SVN repository, but I had several errors and I lost several hours trying to figure out what was wrong. So I decided to do a fresh and clean installation, once understood the problem. So, I would like to write a sort of tutorial which will explain how to get a sound and working installation of Eclipse, Aptana and Subclipse (which as far I read, is actually the best plugin available for SVN on Eclipse).

Continue reading

Aptana’s Javascript editor is too cool!

I’ve just discovered that the last version of the Aptana Studio (in my case the Eclipse plugin version) has an integrated support for javadoc syntax inside js files. The beauty of this feature is that, once you have defined a function, you can just type /** and press enter and Aptana will generate automatically all the comments for you:


Furthermore it will show tips including parameters description when you will use your previous defined function:


…and if you want to add extra “@tag”, the editor will suggest you all tags available:


Too cool!!! I love Aptana :-)