Netbeans plugin

vicb edited this page Jan 30, 2012 · 7 revisions

Netbeans Plugin

Context

The Symfony2 eclipse plugin (SFEP) is packed with interesting features that can really help improving the productivity while developing with Sf2.

There seems to be a lot of people interested in adding Sf2 support to Netbeans and SFEP should probably be used as model of what Netbeans should support.

The goal of this page is to try to federate a community in order to improve the Sf2 support on Netbeans. Actually the goal would be even broader: creating an IDE agnostic base library to ease the integration in any IDE.

Many thanks to Robert who has kindly agreed to host this page on his SFEP wiki. Please do not open an issue asking him to do the job:

In general, i don't have the resources to look into the Netbeans API, but i will be happy to provide you with some general feedback if someone takes the endevour of writing a plugin for netbeans.

Goal

The ultimate goal as envisioned by Robert

Concerning the development of the Netbeans plugin, i would like to think of a "cross-IDE" Symfony Java library, which could then be maintained by both the eclipse and the netbeans development team.

This library could contain some IDE-independent classes to provide the basic functionality which every IDE integration depends on:

  • Parsing annotations (using ANTLR: http://www.antlr.org/)
  • Parsing XML/Yaml files
  • Indexing Symfony elements from annotations/xml/yaml files

There maybe other areas where an abstracted view on the Symfony model could be used by both IDEs, however I don't know the architecture of the Netbeans plugin system well enough to make any assumptions on that.

Roadmap

  • (current) Find volunteers ready to help with improving the Sf2 support in Netbeans (Netbeans and Eclipse plug-in development skills would really help),
  • Make a status on the current Sf2 support in Netbeans,
  • List the features we would like to see in Netbeans,
  • Estimate the effort for each of the features,
  • Prioritize the list according to what is most important / feasibility / development time.

When estimating the effort we might end up deciding that switching to Eclipse is really the way to go. This do not seem to be an easy task according to Robert

most of the Plugin-Code uses the "Eclipse Extension Points" of the PHP Development Tools Plugin. This provides most of the architecture to add framework specific logic like indexing additional AST elements etc. This means that most of the code is very tightly coupled to the eclipse/PDT API.

The only components which could probably ported is the Annotation parser, which uses an ANTLR grammar to create the lexer/parser for annotations [1] and the XML/Yaml parsers which are used to index stuff from xml and yaml files [2].

[1] https://github.com/pulse00/Symfony-2-Eclipse-Plugin/tree/master/com.dubture.symfony.annotation/Resources [2] https://github.com/pulse00/Symfony-2-Eclipse-Plugin/tree/master/com.dubture.symfony.core/src/com/dubture/symfony/core/parser

and Tomas Mysik of Netbeans

Any idea on how difficult it would be to port the Eclipse plugin (the one mentioned in my message above) to Netbeans ?

Porting the plugin is IMHO not possible. Only the same/similar functionality could be provided.

I think a lot of people would be interested and we might be able to achieve something with the help of the community.

Well, this is in fact "very easy" - NetBeans is open-source so everyone is welcome. In other words, anyone can clone NetBeans sources and provide patches, we will be more than happy to accept them. The biggest problem here is that the current infrastructure is not good enough to provide a perfect support (we will need to improve mainly the PHP editor area so the frameworks can "plug" their things in it) FAQ for NB developers can be found here [1].

Thanks. [1] http://wiki.netbeans.org/NetBeansDeveloperFAQ

Tasks

Make a status on the current Sf2 support in Netbeans

Netbeans 7.1 (current release):

Netbeans 7.2 (upcoming release):

Netbeans roadmap (info from Tomas Mysik)

Well, as I wrote, currently we are very limited by the PHP editor support; this one really needs to be extended so "custom" elements (mostly provided by frameworks) can be easily added. Unfortunately, it will be a lot of work and the development plan for NB 7.2 is already "closed". I hope we will be able to do it for NB 7.3 (or whatever version comes after NB 7.2).

My plan for NB 7.2 is to add Navigate to Action/View. More features are currently not possible due to fact I wrote above (also please notice that the development resources are limited as well).

Links:

What would I like to see supported in Netbeans

(TBD)

What we are planning to support in Netbeans

(TBD)

Volunteers

Please list your name and the skills you can bring to the project if you are willing to help:

  • Victor (Java basics, testing)

Resources