Friday, March 15, 2013

How will LiClipse be done?

One thing I've been asked some times about the current funding on keeping PyDev alive and creating LiClipse (http://igg.me/at/liclipse) is what will LiClipse base itself on (BTW, LiClipse is a short for Lightweight Eclipse).

Just to note, the major features planned are available at: http://igg.me/at/liclipse, but it's really light on how to achieve the support for the various editors and how it's it related to existing technologies, so, I plan to give you some information on that below...

I believe that the main technologies regarding that in Eclipse itself are DLTK and Xtext.

So, let's see: as far as Xtext goes, I think its approach is a bit heavyweight for what I'm planning, as the idea would be customizing the editor without relying on creating new plugins nor actually programming (note that Xtext may give you more things -- namely a context aware code-completion -- if you take the time to actually specify a language as it'd like, but unfortunately, from my experiments, doing that is not trivial).

As for DLTK, I think it may have a larger overlap -- in the editor UI, what I'm planning could probably be a building block for DLTK (and maybe Xtext) itself (and it could probably reuse a good part of DLTK, especially as far as the editor itself goes, so, it should be possible to do some refactors so that the base is used by both -- and for more advanced extensions -- where I'm thinking on extending with actual plugins -- there's probably more overlap, but note that although I definitely want that wider integration and providing back as EPL to the community, it may depend on the amount of funding I'm able to get)...

Think something closer to other all-purpose editors (as opposed to IDEs), such as Notepad++, Vi, TextMate, Sublime, etc (i.e.: the idea is supporting lots of languages out of the box, so, the idea is having it resembling formats such as ultraedit wordfiles or TextMate language files -- depending on how the funding goes, maybe I'll provide some way to convert from those formats too).