Skip to content
Haskell IDE
Haskell Shell Other
Failed to load latest commit information.
appveyor Update travis and appveyor (use hackage ghcjs-dom) Jun 23, 2016
bew Migrate from Gtk2Hs to haskell-gi Apr 11, 2016
data Fix shortcut keys for opening and new files May 31, 2016
doc various typos and minor text corrections Aug 11, 2010
language-specs Add missing field and benchmark section to cabal.lang Feb 5, 2015
linux Use newer Fedora and build webkitgtk3 with patch Apr 18, 2016
main Refactored TextEditor and still incomplete CodeMirror support. Fixes … May 6, 2013
osx Use `cabal new-build` to build OS X binary DMG Jun 23, 2016
pics Some work on more convenient errors pane Sep 13, 2015
po New version of the pt_BR translation file. Mar 30, 2013
scripts Use `cabal new-build` to build OS X binary DMG Jun 23, 2016
src/IDE Use haskell-gi 0.18 Jun 23, 2016
tests Migrate from Gtk2Hs to haskell-gi Apr 10, 2016
travis Split travis (timed out jobs do not update cache) Jun 23, 2016
vendor Split travis (timed out jobs do not update cache) Jun 23, 2016
win32 Set Appveyor to build Windows MSI (fixes #294) Jun 23, 2016
xobl Support for GHC 8.0.1 and use latest haskell-gi May 25, 2016
.dockerignore Vagrant file for Leksah, GHCJS and "GHC on Wine" Jun 1, 2015
.gitignore Support for GHC 8.0.1 and use latest haskell-gi May 25, 2016
.gitmodules Set Appveyor to build Windows MSI (fixes #294) Jun 23, 2016
.travis.yml Split travis (timed out jobs do not update cache) Jun 23, 2016
Contributing.md Initial Contributing.md Aug 24, 2015
Dockerfile Use newer Fedora and build webkitgtk3 with patch Apr 18, 2016
LICENSE preparing first beta Jan 20, 2009
LICENSE.rtf Use WiX to make an MSI file for the windows binaries Mar 1, 2014
Readme.md Use haskell-gi 0.18 Jun 23, 2016
Setup.lhs Adding flags for hgettext conditional compilation support. Mar 26, 2013
SetupLocale.lhs Adding flags for hgettext conditional compilation support. Mar 26, 2013
appveyor.yml Fix appveyor build Jun 23, 2016
cabal.project Update travis and appveyor (use hackage ghcjs-dom) Jun 23, 2016
leksah.cabal Use haskell-gi 0.18 Jun 23, 2016
run-new-build.sh Fix gi struct code to use get/set (not Read/Write) Jun 12, 2016
sources.txt Switch to Gtk2Hs 0.13 and leksah-server 0.14 Jun 29, 2014
stack.yaml Remove dependency on haskell-gi label overloading Jun 8, 2016

Readme.md

Leksah, an Integrated Development Environment for Haskell

Build Status Hackage

Leksah aims to integrate various Haskell development tools to provide a practical and pleasant development environment. The user interface is a mix of GTK+ and WebKit based components.

Documentation can be found on leksah.org.

Getting Leksah

Leksah requires you have ghc >= 7.10.3 and cabal-install >= 1.24 installed

Alternatively, you can build Leksah from source

Installing from Hackage

Building on Linux

Install the GtkSourceView and WebKitGtk development packages for your distribution:

sudo apt-get install libgtksourceview-3.0-dev libwebkitgtk-3.0-dev

Make sure $HOME/.cabal/bin is in your PATH then:

cabal update
cabal install Cabal cabal-install
cabal install alex happy
cabal install gtk2hs-buildtools
cabal install leksah
leksah

Building on OS X

Install MacPorts.

Make sure /opt/local/bin and $HOME/Libraries/Haskell/bin are in your PATH.

To avoid a dependency on X11 add the following to /opt/local/etc/macports/variants.conf:

-x11 +no_x11 +quartz +gtk3

Use MacPorts to install python27 and rsync (sometimes it stops to ask for these to be activated so if you do them first it might help):

sudo port install python27 rsync

Use MacPorts to install GHC and the C libraries needed by Leksah (this will take a long time):

sudo port install ghc gtk3 webkit-gtk3 gtksourceview3 gtk-osx-application-gtk3 adwaita-icon-theme

Update Cabal and cabal-install

cabal update
cabal install Cabal cabal-install

Make sure the right cabal made it into your PATH.

cabal --version

Check that the versions match the ones you just installed (if not check the symbolic links in $HOME/Libraries/Haskell/bin).

Install gtk2hs-buildtools and leksah:

cabal install regex-tdfa-text --ghc-options=-XFlexibleContexts
cabal install alex happy
cabal install gtk2hs-buildtools
cabal install leksah
leksah

Building on Windows

Install GHC.

Update MinGW if necessary. The GHC installers currently come with old versions of MinGW and you will probably need to replace it with one that comes with gcc 4.8.1. The current 64bit GHC installer seems to be happy to work with newer MinGW. It may not be possible to use the current 32bit GHC installers at all. Make sure you replace MinGW so that GHC will find the new one (just adding it to the PATH will not work). The MinGW used by GHC is typically in a location like C:\Program Files\MinGHC-7.10.1\ghc-7.10.1\mingw. Move it out of the way and put a newer one in its place.

MinGW version used to build the Leksah binaries

Install the C libraries needed by Leksah. The easiest way to do this is to install Leksah using the MSI files. They include pkg-config and all the C libraries needed.

Make sure C:\Leksah\bin and %APPDATA%\cabal\bin are in your PATH and build:

cabal update
cabal install Cabal
cabal install alex happy
cabal install gtk2hs-buildtools
cabal install leksah
leksah

Building from source

Requirements: ghc >= 7.10.3, cabal-install >= 1.24

We have just completed a port of Leksah from Gtk2Hs to haskell-gi. Not all of the code is in Hackage yet so to build it you can either use Xobl or follow the instructions below.

Step 1. Install the following C libraries (for Windows and OS X, see the Hackage build instructions)

Fedora Ubuntu
gobject-introspection-devel libgirepository1.0-dev
webkitgtk3-devel libwebkitgtk-3.0-dev
gtksourceview3-devel libgtksourceview-3.0-dev

Step 2: Install tools

cabal install alex happy haskell-gi

(make sure ~/.cabal/bin is in PATH)

Step 3: Clone the repo

git clone https://github.com/leksah/leksah.git
cd leksah
git submodule update --init

Step 4: Install Leksah

cabal new-build

Step 5: Run leksah

leksah_datadir=`pwd` dist-newstyle/build/leksah-0.16.0.0/build/leksah/leksah

(the Cabal library has to be installed seperately because of a cabal bug

On OS X using MacPorts you may need to set XDG_DATA_DIRS like this:

XDG_DATA_DIRS=/opt/local/share cabal install ./ ./vendor/gi-gtk-hs ./vendor/ltk ./vendor/leksah-server ./vendor/haskellVCSGUI/vcsgui

Using stack build instead of cabal new-build

** NOTE : This is currently not working. If you can make it work let us know. **

Do Step 1 and Step 2 as above, then

Step 4: Install Leksah

cabal install gtk2hs-buildtools
cabal install ./vendor/haskell-gi ./vendor/haskell-gi-base
stack build

Step 5: Run leksah

**TODO add path to path to leksah executable**

Building Leksah for Windows using Docker

It may seem crazy, but this is currently the best way to bootstrap Leksah for Windows from source. This is mostly because Fedora and SUSE have a much more complete set of MinGW packages than any thing else (including Windows).

Get the leksah source:

git clone https://github.com/leksah/leksah
cd leksah
git submodule update --init

Get the Fedora 23 docker image and load it:

wget https://download.fedoraproject.org/pub/fedora/linux/releases/23/Docker/x86_64/Fedora-Docker-Base-23-20151030.x86_64.tar.xz
sudo docker load -i Fedora-Docker-Base-23-20151030.x86_64.tar.xz

Build Leksah using the Dockerfile:

sudo docker build -t leksah/build .

Copy the resulting msi file out of the container (version number in the file name will match the one in the leksah.cabal file):

sudo docker run --rm --volume $HOME/output:/output leksah/build cp /leksah/win32/leksah-0.16.0.0-ghc-7.10.3.msi /output
Something went wrong with that request. Please try again.