Haskell-IDE für Linux
-
Könnt ihr mir eine gute Haskell-IDE für Linux empfehlen? Nicht emacs oder vi, und lieber auch nicht Eclipse.
-
Muss es unbedingt eine IDE sein, oder tut es auch ein GUI editor?
Wenn ja, sublime text 3 hat mit SublimeHaskell sehr gute completions und syntax highlighting. Zusaetzlich kommen dann noch diverse commands fuer linting, building, auto fix, goto definition, etc dazu.
-
Danke, aber gibts da auch was OpenSource?
-
Wie ist Atom?
-
Ich habe Atom nicht fuer haskell benutzt. Persoenlich bin ich der meinung das atom generell ein absolutes beispiel dafuer ist, wie software nicht entwickelt werden sollte. Ich halte nichts von diesem "put javascript everywhere...and if you can build something native, try javascript first" gedankengang.
Atom brauch mehr ram als chrome, was unter anderem daran liegt, das jede electron app ein full-featured chrome browser ist...crasht regelmaessig, hat diverse memory leaks, etc.
Auch wenn der erste paragraph recht subjektiv ist, sind die aussagen im 2. zutreffend und objektiv.
-
Atom verbraucht zwar sehr viele Ressourcen und ist beim Starten bzw. Laden von großen Dateien langsam aber durch die ganzen Erweiterungen ist es sehr angenehm damit zu arbeiten und bei mir ist Atom über Wochen stabil am laufen.
-
Findet ihr Atom oder Sublime Text 3 besser?
-
Sublime.
Pro:
- native
- weniger resourcen
- gutes file indexing (besser als atom)
- textmate themes funktionieren out-of-the-box
Con:
- closed-source
- eigene themes bauen ist pain in the ass weil xml (persoenliche meinung)
Atom hingegen
Pro:
- einfaches erstellen von themes weil css
... ende
Con:
- alle positiven punkte von sublime negiert.
Ich habe alle punkte weggelassen die beide machen. Sind effektiv identisch, bis auf angesprochene punkte...beide customizable bis sonstwo, command-palette, shitload an plugins, etc.
Zu den plugins sollte man evtl noch erwaehnen, das es bei beiden faule aepfel geben kann...einige schlecht maintainte plugins verursachen durchaus mal nen crash, oder weisen harte memory leaks auf. Aber auch dafuer bieten beide editoren jeweils plugin-checker-plugins.
-
Ich habe mal Sublime Text 3 unter Windows installiert. Es kommt beim Installieren von hsdev folgender Fehler:
cabal install hsdev Warning: cannot determine version of C:\Program Files\Haskell Platform\8.0.2\mingw\bin\gcc.exe : "" `gcc.exe' failed in phase `C Compiler'. (Exit code: -1073741502)
-
gerade mal nach der Meldung gegoogelt. Liegt am Creators Update von Windows 10. In GHC 8.2 soll es gefixt sein.
-
Bei windows fragen kann ich dir nicht behilflich sein.
-
Ich warte einfach auf GHC 8.2.1, der am 21.06.2017 rauskommen soll. https://ghc.haskell.org/trac/ghc/roadmap
-
Kannst die zeit ja nutzen um dich schonmal mit den settings, themes und must-have plugins vertraut zu machen...vor allem shortcuts.
Dann weisst wenigstens schonmal ob der editor dir gefaellt oder nicht.
-
Siehe https://github.com/SublimeHaskell/SublimeHaskell
Ich bin zur Installation von Package Controll vorgegangen wie auf https://packagecontrol.io/installation: In der Console habe ich
import urllib.request,os,hashlib; h = 'df21e130d211cfc94d9b0905775a7c0f' + '1e3d39e33b79698005270310898eea76'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)
gemacht und Sublime Text 3 neu gestartet. Hat der das jetzt nur runtergeladen oder auch installiert?
Wie mache ich jetzt "Use Package Control to install SublimeHaskell"? Ich finde kein Package Control in Sublime Text 3.
-
OK, mit der manuellen Installation gehts.
-
Ich habe jetzt eine Datei untitled.hs mit dem Code
putStrLn "Hallo"
erstellt. Syntaxhighlighting funktioniert. Wie kann ich die aus Sublime ausführen?
-
OK, geht jetzt mit Tools -> Build und dem Quellcode
module main where main = IO :: () putStrLn "Hallo"
o.ä.