Tuesday, June 24, 2014

LiClipse 1.0 released (Julia now supported)

LiClipse 1.0 has just been released.

It's now based on the latest Eclipse (4.4) and PyDev/other dependencies were also upgraded.

Support for the Julia Language: julialang.org was added in this release (so, 15 languages are now supported).

Also, the language support on LiClipse was improved so that a language can specify how to make a launch for it (see: http://brainwy.github.io/liclipse/launch.html for more details):

F9: Launches the currently opened editor using the executable specified in the language (and for those using PyDev, Shift+F9 will launch the editor in debug mode)
Ctrl+Shift+F9: Terminates the last launch and relaunches it
Ctrl+Alt+F9: Terminates all launches
Ctrl+F11: Relaunches the last launch

Also noteworthy is that when starting up LiClipse, when selecting the theme to use, an option to use the dark theme from Eclipse 4.4 is presented... I still prefer the one from LiClipse as it works better for me -- especially for those on windows -- but the option is there :)

Tuesday, May 6, 2014

Eclipse and Dark theme shortcomings

Well, last year, after having support to go on with LiClipse, I set out to having a Dark Theme in Eclipse given the new themeing capabilities of e4.

After some work, LiClipse (http://brainwy.github.io/liclipse) was released, and I'm pretty positive that it's currently the best possible experience with a dark theme on Eclipse (i.e.: through some adaptations to Eclipse Color Theme, the same UI is used to change editors as well as views and other decorations -- I went as far as creating new versions of some icons so that they work on the dark theme, added custom painters for trees and tables, etc).

Still...

There are some shortcomings when it comes to a dark theme in Eclipse which are not addressable from a plugin:

- It's not possible to style links: they always follow the platform settings (so, they can become unreadable inside Eclipse on a dark theme).

- Scrollbars are not themeable, thus, they stand out too much in a dark theme and things look ugly (IMHO).

- Tooltips can't be themed either (so when hovering the tooltip still has the background color from the OS).

Also, I'm not happy with some hacks I had to do:

- I had to add a custom painter to the tree so that it shows the expand/collapse decorations using a proper foreground color as the one from the system usually is unusable.

- The tree custom painter also erases the selection and redraws it as it's not possible to customize the selection color of the tree.

- For the table I also had to resort to a custom painter, but the situation is a bit worse than with the tree painter as it's not possible to customize the selection color when it doesn't have focus.

Note that those are the nastier I remember (and for which I created bugs in Eclipse itself).

Now, most of these issues only appear if you're using an OS that's not dark-themed, so, in Ubuntu which ships with a default dark theme, things may look nicer than on Windows -- where scrollbars aren't even customizable, so, it's always ugly (and it seems windows 8 trimmed many of its options, so, some things aren't even customizable anymore).

I bet no one will change the OS for that, so, it's either living with ugly scrollbars in a dark theme in Eclipse, choosing a different IDE or using a light theme, which is a bit lame: many UI toolkits such as Qt or JavaFX (and even swing) do a fine work on customizing the application look and feel, which takes me to the next point:

Most things are shortcomings in SWT, but it seems as SWT is not moving forward... Or maybe it is but not in those directions (which is a bit weird since it appeared as that was the most important point of going to e4)?

I saw some work on using SWT on top of JavaFX too (although it's probably a big effort migrating Eclipse to it)...

It seems like the Eclipse community should have decided where it's going at this point, so, can someone shed some light here? It seems like fixing those in SWT wouldn't be that hard -- but then again it needs development time from someone close to SWT...

[Edit]
Per request, I'm adding the issues I created on Eclipse:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=414080 (table selection foreground without focus)
https://bugs.eclipse.org/bugs/show_bug.cgi?id=401015 (style links)
https://bugs.eclipse.org/bugs/show_bug.cgi?id=434201 (respect foreground for tree item arrows)
https://bugs.eclipse.org/bugs/show_bug.cgi?id=430278 (style scrollbars)
https://bugs.eclipse.org/bugs/show_bug.cgi?id=401227 (toolitem foreground)
https://bugs.eclipse.org/bugs/show_bug.cgi?id=401015 (style hyperlinks)
https://bugs.eclipse.org/bugs/show_bug.cgi?id=434309 (style tree/table selection)

Tuesday, January 28, 2014

LiClipse: mark occurrences (and 14 languages out of the box)

LiClipse 0.9.7 has been released.

The main targets on LiClipse are improving the usability of Eclipse and providing editors which are more lightweight than their counterparts (so, LiClipse can be used as a base editor inside Eclipse and extended with heavier counterparts where needed).

The latest language supported out of the box is the Kivy Language, so, it's currently supporting 14 languages out of the box -- see: http://brainwy.github.io/liclipse/ for details, also, it should be straightforward adding a new language, without even restarting Eclipse (mostly by creating a new .liclipse file in the proper directory... see: http://brainwy.github.io/liclipse/supported_languages.html).

In this release, LiClipse is supporting mark-occurrences (which can be toggled with Alt+Shift+O). Also, the themeing was improved and EGit views are properly themed.

On the usability front, a major gripe I had with Eclipse is that whenever I had a new workspace, the first thing I'd do is bind Ctrl+Tab and Ctrl+Shift+Tab to cycle through the next/previous editors (which is Ctrl+F6 on Eclipse). Now, LiClipse adds this binding by default!

To finish, LiClipse editors now provide proper syntax highlighting when doing comparisons inside Eclipse So, for instance, if  you're comparing using EGit against the latest version of a file, LiClipse will properly provide syntax highlighting in the compare editor.

Friday, October 25, 2013

Spell Checking in Eclipse / LiClipse 0.8.0

Well, one thing that I set to do was adding spell-checking to LiClipse, so, the first thing to note is that although the Eclipse platform does have that notion, there's only a default implementation on JDT and not on the platform (see: https://bugs.eclipse.org/bugs/show_bug.cgi?id=185695 for the request).

So, I guess that the platform guys do have lots of other priorities, so, I ended up extracting the code from JDT into a new plugin -- the code lives at: https://github.com/fabioz/eclipse.spellchecker (it's pretty much just getting the JDT code into a new repo and making it compile -- hopefully sometime it's removed from JDT and goes into the platform, but I know that may still take a lot of time... and maybe living as a separate plugin is a better option after all). Anyway, it's now integrated by default in LiClipse so that LiClipse-based editors can have spell checking (by default, every partition which maps to the string color will have spell checking enabled, but it's possible to customize it -- see:  http://brainwy.github.io/liclipse/spell_checking.html for details).

 Also, I've just released LiClipse 0.8.0. One of the nicest things is that now adding a language or editing an existing one should refresh the internal structure automatically, just requiring an editor restart to get the latest changes (previously on some situations this didn't happen properly), so, it's pretty straightforward to create a new language without ever closing LiClipse.

Creating a language is also streamlined, so, from the preferences > LiClipse and right-clicking one of the links to a directory tracked or by using the context menu on a file > languages there are options to create a new language on a directory tracked for language files.

Enjoy!

Fabio

LiClipse Homepage: http://brainwy.github.io/liclipse/
More details on release: https://groups.google.com/forum/#!topic/liclipse/RjXAHwTqtKA

Thursday, October 3, 2013

First LiClipse public release

The first LiClipse public release is now available!

It just came out of Alpha (when it was only available for supporters of the crowdfunding campaign that got the perks to use it before the public release).

Its homepage: http://brainwy.github.io/liclipse/ has details on where to get it.

So, what do Eclipse users gain from it?

Well, there are 3 major features which I think make it very attractive:

1. Theming: LiClipse extends the features from Eclipse Color Theme to theme the whole IDE and not only the editors, so, dark themes look nice in the IDE.

2. Multiple region edition: The basic concept for this is already available on a number of editors when renaming with Ctrl+2, R, which links multiple regions with the same text for edition, but LiClipse takes this concept to the next level, enabling multiple areas to be selected and edited in various ways.

It's hard to explain it properly, so, I created video showing this feature (and the HTML editor): http://brainwy.github.io/liclipse/multi_edition_video.html -- but be warned: after using it for a while, it can be really hard not having it anymore!

3. Support for multiple languages: Out of the box, LiClipse currently supports 10 different languages (CoffeScript, C++, CSS, Django Templates, HTML, JavaScript, Python, RST, SCSS and XML), but it should be easy to add support to new languages (by creating a proper .liclipse file and adding it to plugins\com.brainwy.liclipse.editor\languages, more details at: http://brainwy.github.io/liclipse/supported_languages.html).

Also, it's worth to note that it's HTML editor has gotten special attention so far and IMO it's already among the best editors for HTML (and the Django Templates inherits from it!).

Enjoy!

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).




Thursday, March 14, 2013

First Post

Ok, I'm the PyDev author, so, usually I posted everything on http://pydev.blogspot.com. My main topics are usually on PyDev itself and sometimes on Python and Eclipse...

Now, I'm going to change this a bit: I'll be posting things on Eclipse (and the hopefully funded LiClipse effort: http://igg.me/at/liclipse, which I believe should affect the whole Eclipse ecosystem) at this blog (http://liclipse.blogspot.com)