Current State of Leksah

253 views
Skip to first unread message

Hamish Mackenzie

unread,
Sep 15, 2012, 2:30:35 AM9/15/12
to haske...@googlegroups.com, lek...@googlegroups.com
Current stable version is 0.12.3 and it is being maintained and we are still happy to help people add to it features.

There is also a "Leksah 1" version that is in its infancy.  It uses a plugin system to try to make it easier to replace components and this should make it easier to migrate to shared solutions as they become available.  The plan is to port the existing Leksah 0.X functionality over to this new framework.  We also want to revisit the build system and metadata (we kind of hoped scion or something would be suitable).

If anyone has more radical ideas on how a Haskell IDE written in Haskell should work now is a great time to join in an help out on Leksah 1.  There really are no fixed plans if you have ideas you would like to try we really would be happy to help.  Years ago I had some rough ideas about for Haskell IDE, I even wrote a prototype, then I found out about Leksah.  My initial was reaction when I saw it was "doh I wasted all that time!", but it turned out most of the bits I had done were not in Leksah yet. I dropped Jurgen an email and within a very short space of time we had integrated all of the features of my prototype into Leksah's source.

You can find the source for Leksah 1 here...

Here are some of the other things that are in progress (all could use help)...

Removing The Gtk Dependancy
We would still like to support Gtk, but it is difficult to work with on Windows and OS X and it is inflexible in some ways.
The solution we are working on is to replace it with HTML5 and GHCJS.  You will be able to run Leksah in 3 different ways...
  • Gtk Only - Basically as it is now but some new features may use WebKitGtk
  • WebKitGtk - All UI components done as HTML5 and rendered using WebKitGtk
  • Browser Only - Leksah will just be a server app that you point your browser at (this is where GHCJS comes in).
We have added WebKitGtk DOM bindings (needed for WebKitGtk mode).  These need testing and also there some thought needs to go into making them more user friendly.  They are generated from the WebKit IDL files using a custom version of domconv.

Still to do
  • Add a domconv java script binding generator (for browser only mode) 
  • Possibly create a low level UI library to sit on top of WebKit and Gtk2Hs
  • Upate https://github.com/leksah/billeksah
  • Find and integrate a decent JavaScript text editor (assuming Yi is too slow in GHCJS)
  • Make it all look beautiful with CSS/HTML

Luite is working on a GHCJS code generator with better performance, but in the mean time the current one is probably ok for wiring up UI components to replace Gtk.  All the heavy lifting (indexing metadata, compiling and running code etc.) will probably need to be done in the server component.


HTerm/WebKitGtk
One of the problems with Leksah is that supporting Windows means we have not been able to integrate a decent terminal emulator.  However it looks like by using WebKitGtk and HTerm this may now be possible.  This might be a good way to integrate some other editors (Yi, Emacs, VIM).


Yi Integration
This was a lot of work and is still more a proof of concept this currently uses Pango Yi code and this needs work.  I think HTerm might work better (as described above).


VCS
There is branch VCS support that is yet to be integrated (hopefully we will have it in Leksah 0.13).  We need someone to merge the latest master branch code in, test it and fix a few UI issues with the Log window.

Reply all
Reply to author
Forward
0 new messages