How to create an Eclipse plug-in for an SDK - eclipse-plugin

I am trying to create an eclipse plug-in for an existing SDK. My main goal is to allow user to create a project that will automatically have the SDK jar file and will also load couple of examples. The main purpose is to free the user from the hassle of adding jar file and looking up the examples.
I am fairly new to this area of development. I have never created a plugin and was wondering if there are any specific tutorials or development guide for creating such a plugin.
Any help is appreciated!

It's a bit unclear what your requirements are, what the SDK are, what type of users you developing for. But the simplest solution would be to create a set of Eclipseprojects with a proper setup. Then your user would just import them and continue to build from them.
A more elaborate solution would be a new project wizard. So when the user goes to file -> new project, they will find a specific wizard this type of development. If this is what you are looking for, then this tutorial will offer a good starting point.

Related

New Elixir project in Intellij

I've recently started using Elixir and I'd like to keep my code files in quite decent order. So I installed Elixir plugin for Intellij: https://github.com/KronicDeth/intellij-elixir, but stuck with trying to start an Elixir project. Could you give me some tips how to make new Elixir project?
I'm the maintainer of intellij-elixir. Please file support question as Issues on github: https://github.com/KronicDeth/intellij-elixir/issues. In fact, someone already asked a similar question (https://github.com/KronicDeth/intellij-elixir/issues/77). In summary, right now you can't create "Elixir Project". There isn't yet an "Elixir Project" feature/action although you're welcome to open an issue to make that a feature request. (It's nice if you open it instead of me opening it for you as you'll be subscribed to updates then.) With the feature set as is, you can create any type of project you like because all that matters is that the file extension is .ex for the Syntax Highlighting, Grammar parsing, Inspections and Quick Fixes to work. I just create the default Java project when testing intellij-elixir in Intellij or an empty directory or project layout created by mix new in Rubymine. Since two people at least have brought this up I'll add something to README after I'm finished with https://github.com/KronicDeth/intellij-elixir/issues/59.

objective-c static library intellij appcode

New to objective-c. Finally found a tutorial that describes how to create and use a static library in x-code. I'm surprised that building and using libraries is such an arduous process. Is there a more efficient way to create and use static libraries?
I installed JetBrain app-code. But I can't follow the same steps since I can't figure out how to create a workspace in app-code.
Could someone please lists the steps for creating and using a static library in app-code?
Also, how can I change my build path in app-code? I tried to change the path in project properties...there is a text-box but its value keeps reverting back to the default?
I think I'm missing something, because the jet-brain products I've worked with (resharper for C#, and intell-j for Java) are very high quality.
Thanks in advance.
at this moment, AppCode doesn't have full project configuration facilities: you cannot create targets in it. This functionality will be added in the future versions.
Meanwhile, you can use Xcode to setup you project and then switch back to AppCode.
As for the build path reverting to the default, could you please file a bug report in the tracker?

Eclipse 3.7 RCP Application with multiple plugins

What is the right way to make an RCP application that is “ready for plugins”? I have struggled to do this basic concept and am trying to accomplish this in Eclipse 3.7 (latest 3.x version).
Step 1
I would like to explore this by using 3 eclipse plugin projects:
• HelloWorldRCP
• HelloWorldPluginA
• HelloWorldPluginB
Would it make sense to make HelloWorldRCP with all the common things such as a menu-bar with an Edit menu including cut, copy and paste menu items? The HelloWorldPluginA could add an additional menu-item called “Alpha” and HelloWorldPluginB could add yet another menu-item called “Beta”? However, the cut, copy and paste functionality could still work within Plugin A and B?
Step 2
Next, how do I deploy this as a “product”? I have made a new product configuration and defined the dependencies from the default runtime configuration that was made. I do notice that there are a lot of dependency jars that are included, but I don’t think I use them. For example, I don’t use data-binding to my knowledge, but it keeps coming up as a required dependency.
I go to Export | Eclipse Product and an executable environment is created in my desired folder. However, when I copy this to another machine it seems to keep referencing the original machines Java installation location. How does one get around this?
I have tried to bundle a jre with the Product Export but nothing is created. I have also just tried copying my jre6 as a jre folder. This does seem to work.
Next problem here is the 32/64 bit Java execution environments. What is advised here? I have been aiming to build on 32 bit only and then hopefully that will run on 32 or 64bit platforms. Is this correct?
Step 3
I need to web-start this now. The old way of initiating an Eclipse 3.5 application, using a startup.jar has changed. I now use the equinox launcher and reference it in the jnlp instead of the startup.jar. However, I keep getting an exception which seems related to the 32/64 bit equinox win32_64 jar. I notice that the export writes a folder and not a jar. I read somewhere that this is a “clever trick” to allow compatibility for both 32 and 64bit runtime environments.
The problem here is that I need a jar and not a folder so that I can sign the jars required and deploy accordingly.
Does anyone have a Java Web-start example for and Eclipse 3.7 RCP application? Or any advice?
You are going to need a lot of time to learn everything you've asked about here.
Here is one of the best places to start... http://www.vogella.com/eclipse.html
That site covers a lot of basics. But you need a little more than basics.
The best example of a working RCP product with some of the features you require can be found at ... http://max-server.myftp.org/trac/mp3m
This guy (Kai) makes all of the source code available via SVN, and he has some very advanced stuff going on in his application. He also has a good blog with some advanced RCP tips and tricks. http://www.toedter.com/blog/
Another thing you'll want to investigate is Tycho. I realize that you didn't mention anything about building your application, but I've found that using Tycho for building has made my most recent foray into Eclipse RCP 100 times better than the other times I've done RCP work. So, my advice, get to know Tycho. http://wiki.eclipse.org/Tycho/Reference_Card
The learning curve of Eclipse RCP is somewhat steep, but I think it's worth the effort.
Good Luck!

regarding update site

I have some questions regarding the eclipse update feature functionality. In generally,what eclipse update is doing is,if it is installing new software it is copies the jar from the specific URL and paste it into the eclipse plugin folder. So If I create my own update functionality to copy from the specific URL and paste into the eclipse plugin folder, will that be enough to finish the job of update site? My requirement is I need to create different look and feel for the update functionality. I don't want to use the UI of eclipse update functionality. What's the correct way to implement update functionality? Please correct me if I am wrong.
Assuming we are talking Eclipse 3.5 or later, then you will be using p2, so have a look at Customizing the p2 UI.
It is not generally enough to "just" copy stuff to plugins/, as that will not get OSGi to install the new bundle. Use p2 to install your stuff, as it will do the right thing.
As for a completely different UI experience, have a look at the Eclipse Market UI...

Is there a tool to automate all these steps in Mac OSX something like ant?

I am following this tut
http://monoclestudios.com/cocos2d_whitepaper.html
to integrate coco2sd. I have created a project, modified the sources, added external directory to project, delete some files within and added coco2sd to proect as they requested.
There are a lot more to do by hands.
If I had to do it again oh my, so is there a tool to automate ?
It is possible — although not exactly easy - to add your own new project templates to Xcode.