
What IDE support is available for Haskell (Visuall Haskell, EclipseFP), anything else?

What IDE support is available for Haskell (Visuall Haskell, EclipseFP), anything else?
in addition to the vim plugins already mentioned, i've got a few old ones at http://www.cs.kent.ac.uk/people/staff/cr3/toolbox/haskell/Vim/ the page is many years old, but the logs indicate that many folks stumble across it via google, without ever telling me, and i've noticed that the haskell.org wiki now points to it, so i've just added my current vim files for haskell: compiler/ghc.vim: basic quickfix settings for ghc ftplugin/haskell.vim: basic settings allowing vim to recognise imports (also load other haskell plugins from here) ftplugin/haskell_doc.vim: extensive functionality based on haddock's html files for libraries, including doc lookup & id completion i don't know how i ever haskelled without that last plugin - completing long library ids or adding imports, is just part of the fun, mostly i like to lookup docs quickly (if you're using hugs, also try :find), or just get a menu of possible imports an id might come from. the files ought to be portable, but might retain some settings specific to windows as that is my working platform, please check and adjust as necessary. together with the pre-installed syntax-colouring for haskell, this enables much of vim's general ide functionality for haskell, but i'm sure one could do more. just pick and mix with the other vim files mentioned in this thread or on haskell.org (which perhaps should be more prominent, even though there isn't one mode to rule them all for vim!-) if you can stay within haskell98, HaRe refactoring support for emacs and vim is still around: http://www.cs.kent.ac.uk/projects/refactor-fp/ claus ps since surprisingly many haskellers are not quite aware of vim's ide functions, here is a partial list: syntax highlighting, quickfix (run source through ghci, jump to errors listed), tags (jump to definitions; using 'ghc -e :ctags Main.hs' to generate tag file for Main.hs and imports, exported ids only at the moment; or use another tag file generator), completion with respect to current file, imported modules, tag files, haddock files (using haskell_doc.vim), (or define your own completion function), list lines using id under cursor, match open/ close brackets and parens, fold away sections of modules, ... not to mention the general editor, search&replace functions.. see the help files (:help), in vim, or online at http://vimdoc.sourceforge.net/htmldoc/usr_toc.html

On Sun, 22 Apr 2007 22:13:45 +0100
"Claus Reinke"
the page is many years old, but the logs indicate that many folks stumble across it via google, without ever telling me, and i've noticed that the haskell.org wiki now points to it, so i've just added my current vim files for haskell:
[...] Thank you very much for your reply.
if you can stay within haskell98, HaRe refactoring support for emacs and vim is still around: http://www.cs.kent.ac.uk/projects/refactor-fp/
What about shim (http://shim.haskellco.de/trac/) ? Is it going to get vim support or the only the other editor's users are happy?
ps since surprisingly many haskellers are not quite aware of vim's ide functions, here is a partial list: syntax highlighting, quickfix (run source through ghci, jump to errors listed), tags (jump to definitions; using 'ghc -e :ctags Main.hs' to generate tag file for Main.hs and imports, exported ids only at the moment; or use another tag file generator), completion with respect to current file, imported modules, tag files, haddock files (using haskell_doc.vim), (or define your own completion function), list lines using id under cursor, match open/ close brackets and parens, fold away sections of modules, ... not to mention the general editor, search&replace functions..
I must admit I wasn't aware of all the above. Thank you for enlightenment ;) Sincerely, Gour

Gour writes:
On Sun, 22 Apr 2007 22:13:45 +0100 "Claus Reinke"
wrote:
if you can stay within haskell98, HaRe refactoring support for emacs and vim is still around: http://www.cs.kent.ac.uk/projects/refactor-fp/
What about shim (http://shim.haskellco.de/trac/) ?
Is it going to get vim support or the only the other editor's users are happy?
I use emacs exclusively for hacking Haskell, but I wanted to see if it's possible to connect to the shim server-process from vim and started working on omnicompletion: http://shim.haskellco.de/trac/attachment/wiki/ScreenShots/vim-shim.png http://shim.haskellco.de/trac/wiki/ShimVim http://darcsweb.haskellco.de/darcsweb.cgi?r=shim;a=tree;f=/vim I don't think I will spend much more time working on this, but if anyone wants to try it out or improve it, I would be happy to answer questions and review patches. Thanks, Benedikt

I use emacs exclusively for hacking Haskell, but I wanted to see if it's possible to connect to the shim server-process from vim and started working on omnicompletion:
http://shim.haskellco.de/trac/attachment/wiki/ScreenShots/vim-shim.png
http://shim.haskellco.de/trac/wiki/ShimVim
http://darcsweb.haskellco.de/darcsweb.cgi?r=shim;a=tree;f=/vim
I don't think I will spend much more time working on this, but if anyone wants to try it out or improve it, I would be happy to answer questions and review patches.
thanks, i too had been wondering about the "vim and" part of shim, especially about the interprocess communication. you're using vim's python embedding for that, but many vim users won't have python. more importantly: is that python solution (using unix sockets portable, ie, would it work for windows vim users if they were asked to install python for that purpose? claus

"Claus Reinke"
I use emacs exclusively for hacking Haskell, but I wanted to see if it's possible to connect to the shim server-process from vim and started working on omnicompletion: http://shim.haskellco.de/trac/attachment/wiki/ScreenShots/vim-shim.png http://shim.haskellco.de/trac/wiki/ShimVim http://darcsweb.haskellco.de/darcsweb.cgi?r=shim;a=tree;f=/vim I don't think I will spend much more time working on this, but if anyone wants to try it out or improve it, I would be happy to answer questions and review patches.
thanks, i too had been wondering about the "vim and" part of shim, especially about the interprocess communication. you're using vim's python embedding for that, but many vim users won't have python.
I'm not sure if it's possible to use the vim scripting language for that, but i used the python embedding so that I could base everything on the python omnicompletion.
more importantly: is that python solution (using unix sockets portable, ie, would it work for windows vim users if they were asked to install python for that purpose?
I don't think it's portable, but Tim Newsham added support for TCP sockets to the haskell and emacs side and it should be pretty easy to adapt the python vim script. Of course, you have to be careful with TCP since you can't use file permissions to make sure that nobody else connects to the socket. Thanks, Benedikt

On Sun, Apr 22, 2007 at 07:34:27PM +0200, Philipp Volgger wrote:
What IDE support is available for Haskell (Visuall Haskell, EclipseFP), anything else?
Hi Philipp. I've written some completion scripts for vim. Don't know wether you can call it an ide. Also tagging source is supported by one command. With a little effort you can configure vim to create a new cabal project using one command some settings, too. If you're interested drop me a mail. You can see some screenshots here http://www.mawercer.de/marcweber/vim/ss/vim/ There is also some emacs support I don't know much about. All further information I could give you you can find on http://haskell.org/haskellwiki/Libraries_and_tools/Program_development -> 2. Editor support Marc

Hi,
On Sun, Apr 22, 2007 at 07:34:27PM +0200, Philipp Volgger wrote:
What IDE support is available for Haskell (Visuall Haskell, EclipseFP), anything else? In addition, there are plugins for XCode, IntelliJ IDEA and KDevelop (don't have a specific link for the last one).
http://www.hoovy.org/HaskellXcodePlugin/ http://www.workingmouse.com/research/IntelliJIdea-Haskell/ Ciao, Leif
Hi Philipp. I've written some completion scripts for vim. Don't know wether you can call it an ide. Also tagging source is supported by one command. With a little effort you can configure vim to create a new cabal project using one command some settings, too.
If you're interested drop me a mail. You can see some screenshots here http://www.mawercer.de/marcweber/vim/ss/vim/
There is also some emacs support I don't know much about. All further information I could give you you can find on http://haskell.org/haskellwiki/Libraries_and_tools/Program_development -> 2. Editor support
Marc _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

On 2007-04-22, Marc Weber
I've written some completion scripts for vim. Don't know wether you can call it an ide. Also tagging source is supported by one command.
what tagging program do you use?
With a little effort you can configure vim to create a new cabal project using one command some settings, too.
If you're interested drop me a mail. You can see some screenshots here http://www.mawercer.de/marcweber/vim/ss/vim/
I am interested as well - just upload it somewhere (or mail me, if preferred). Best regards Georg Sauthoff

On Fri, Apr 27, 2007 at 08:05:53PM +0000, Georg Sauthoff wrote:
On 2007-04-22, Marc Weber
wrote: Hi,
I've written some completion scripts for vim. Don't know wether you can call it an ide. Also tagging source is supported by one command.
what tagging program do you use? I'm using hasktags beeing distributed with ghc. There has been another topic about tagging programs for haskell some time ago.
You can find some basic installation instructions here.. http://www.mawercer.de/marcweber/vimlib_haskell.html But it's a little bit out of date. I'll work on it again next week. (I don't know how much I'll continue working on improving the vim scripts because I should hack vim to make it haskell scriptable .. ;) Then this kind of hacking will be both: faster and better The files beeing created are now located in ~/vl_store . Function completion should work out of the box (as long as you only want to complete functions defined in current buffer). You can see a lot of AddTabCompletion '\s+\w\s*"$' '' ' ++' 'ts' lines. The syntax has changed. see vl_repo/ftplugin/haskell_vimlib.vim for examples. To create tags use :TagCurrentDirTagGroupHaskell (use this to update tags as well) and use :ModuleCacheAddCurrentDir to add all modules to the list of know modules (those will be used for completion regardless of you .cabal whatsoever settings) If you run into any trouble don't hesitate to ask. If you want I can show you how to set it up in a shared ssh session. Marc

On 2007-04-28, Marc Weber
On Fri, Apr 27, 2007 at 08:05:53PM +0000, Georg Sauthoff wrote:
what tagging program do you use? I'm using hasktags beeing distributed with ghc. There has been another topic about tagging programs for haskell some time ago.
Yes, the latest threads are: http://article.gmane.org/gmane.comp.lang.haskell.cafe/19001/ http://article.gmane.org/gmane.comp.lang.haskell.cafe/10396/ The last time I looked for haskell tag tools - hasktag, etc. looked a bit limitated for my use and thus I hacked my own tool - looking at the threads, it seems, that I am not alone ;).
You can find some basic installation instructions here.. http://www.mawercer.de/marcweber/vimlib_haskell.html
Thanks.
But it's a little bit out of date. I'll work on it again next week. (I don't know how much I'll continue working on improving the vim scripts because I should hack vim to make it haskell scriptable .. ;) Then this kind of hacking will be both: faster and better
Fair enough. [..]
If you run into any trouble don't hesitate to ask. [..]
Great, but it looks manageable. Best regards Georg Sauthoff

On 22/04/07, Philipp Volgger
What IDE support is available for Haskell (Visuall Haskell, EclipseFP), anything else?
There is pretty decent Emacs support. haskell-mode [1] provides the basis of this support. There are Emacs Lisp libraries for Haskell indentation, Haskell syntax highlighting, and many other things. Make sure you read the notes on the Haskellwiki [2], as they contain a lot of helpful hints for getting the best out of the mode. There are also libraries for integration of common Haskell tools like hoogle [3] and hpaste [4] in the form of hoogle.el [5] and hpaste.el [6]. Enjoy! [1]: http://www.haskell.org/haskell-mode/ [2]: http://haskell.org/haskellwiki/Haskell_mode_for_Emacs [3]: http://haskell.org/hoogle [4]: http://hpaste.org [5]: http://haskell.org/haskellwiki/Hoogle.el [6]: http://haskell.org/haskellwiki/Hpaste.el -- -David House, dmhouse@gmail.com

What IDE support is available for Haskell (Visuall Haskell, EclipseFP), anything else?
I'm working in Haste2[1]. But it is unreleased :P [1] http://www.dtek.chalmers.se/~davve/haste2-new.png /David

This looks nice! Is there a project page for Haste2? How far along is
it? Is it based on gtk2hs?
On 4/23/07, David Waern
What IDE support is available for Haskell (Visuall Haskell, EclipseFP), anything else?
I'm working in Haste2[1]. But it is unreleased :P
[1] http://www.dtek.chalmers.se/~davve/haste2-new.png
/David
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

This looks nice! Is there a project page for Haste2? How far along is it? Is it based on gtk2hs?
Yes, it's based on the Scintilla[1] editor and gtk2hs. I've only been working on it for a couple of weeks, and that includes creating the Scintilla binding for gtk2hs, so it doesn't have that many feature yet. There's no homepage either. [1] http://www.scintilla.org/ /David

Hi David,
Yes, it's based on the Scintilla[1] editor and gtk2hs. I've only been working on it for a couple of weeks, and that includes creating the Scintilla binding for gtk2hs, so it doesn't have that many feature yet. There's no homepage either.
Have you seen the GuiHaskell project, and were you aware that there is a summer of code project on it? This will provide some way of interfacing to all compilers, and various buttons, but none of the editing features. If you want to have any input, we'd be greatful. This hopefully might allow us to have a shared common bit. Thanks Neil [1] http://www-users.cs.york.ac.uk/~ndm/guihaskell/

Have you seen the GuiHaskell project, and were you aware that there is a summer of code project on it? This will provide some way of interfacing to all compilers, and various buttons, but none of the editing features.
Yes, I was aware of it. My plan was to experiment with the editor, the GHC API and Haddock 2.0, so the project is a little bit different.
If you want to have any input, we'd be greatful. This hopefully might allow us to have a shared common bit.
I'm all for sharing common bits! Let's pay some attention to each others repositories. Here's mine: http://repos.mine.nu/davve/darcs/haste2/ There's probably a lot of stuff in Cabal (that just needs to be exposed) that we could use also. /David

On 23/04/07, David Waern
What IDE support is available for Haskell (Visuall Haskell, EclipseFP), anything else?
I'm working in Haste2[1]. But it is unreleased :P
That's really clean-looking and undistracting. When do you expect to release it on the unsuspecting public? ;-) Cheers, D.

On 23/04/07, David Waern
wrote: What IDE support is available for Haskell (Visuall Haskell, EclipseFP), anything else?
I'm working in Haste2[1]. But it is unreleased :P
That's really clean-looking and undistracting. When do you expect to release it on the unsuspecting public? ;-)
Thanks! I'll probably release it when my Scintilla patch for gtk2hs is completed, if it gets accepted. /David
participants (12)
-
Andrew Wagner
-
Benedikt Schmidt
-
Claus Reinke
-
David House
-
David Waern
-
Dougal Stanton
-
Georg Sauthoff
-
Gour
-
Leif Frenzel
-
Marc Weber
-
Neil Mitchell
-
Philipp Volgger