diff --git a/docs/index.org b/docs/index.org index 52e25ff7b..190483268 100644 --- a/docs/index.org +++ b/docs/index.org @@ -182,7 +182,7 @@ Modules that bring support for a language or group of languages to Emacs. + [[file:../modules/lang/faust/README.org][faust]] - TODO + [[file:../modules/lang/fsharp/README.org][fsharp]] - TODO + [[file:../modules/lang/go/README.org][go]] =+lsp= - TODO -+ [[file:../modules/lang/haskell/README.org][haskell]] =+intero +dante +lsp= - TODO ++ [[file:../modules/lang/haskell/README.org][haskell]] =+dante +intero +lsp= - TODO + hy - TODO + [[file:../modules/lang/idris/README.org][idris]] - TODO + java =+meghanada +lsp= - TODO diff --git a/init.example.el b/init.example.el index 8f4723917..609e159a1 100644 --- a/init.example.el +++ b/init.example.el @@ -112,7 +112,7 @@ ;;faust ; dsp, but you get to keep your soul ;;fsharp ; ML stands for Microsoft's Language ;;go ; the hipster dialect - ;;(haskell +intero) ; a language that's lazier than I am + ;;(haskell +dante) ; a language that's lazier than I am ;;hy ; readability of scheme w/ speed of python ;;idris ; ;;(java +meghanada) ; the poster child for carpal tunnel syndrome diff --git a/modules/lang/haskell/README.org b/modules/lang/haskell/README.org index 9f160ca88..d2cd8d55d 100644 --- a/modules/lang/haskell/README.org +++ b/modules/lang/haskell/README.org @@ -9,17 +9,17 @@ - [[#module-flags][Module Flags]] - [[#plugins][Plugins]] - [[#prerequisites][Prerequisites]] - - [[#stack][Stack]] - [[#cabal][Cabal]] - [[#lsp][LSP]] + - [[#stack][Stack]] - [[#haskell-packages][Haskell packages]] - [[#configuration][Configuration]] - [[#using-the-new-style-cabal-repl][Using the new-style cabal REPL]] - [[#troubleshooting][Troubleshooting]] * Description -This module adds [[https://www.haskell.org/][Haskell]] support, powered by either [[https://haskell-lang.org/intero][intero]] (the default), [[https://github.com/jyp/dante][dante]] -or [[https://github.com/emacs-lsp/lsp-haskell][LSP]]. +This module adds [[https://www.haskell.org/][Haskell]] support, powered by either [[https://github.com/jyp/dante][dante]] (the default), LSP or +[[https://haskell-lang.org/intero][intero]]. + Code completion (~company-ghc~) + Look up documentation (~hoogle~) @@ -38,54 +38,32 @@ Here are a few resources I've found indespensible in my Haskell adventures: + [[https://docs.haskellstack.org/en/stable/README/][The Haskell Tool Stack docs]] ** Module Flags -+ =+intero= Enables intero; a comprehensive, stack-based development environment - for Haskell. + =+dante= Enables dante; a fork of intero aimed at lightweightedness. It doesn't depend on =stack=, supports both ~cabal~-only and ~stack~ projects, but lacks eldoc support. + =+lsp= Enables lsp-haskell (this requires the ~:tools lsp~ to be enabled). ++ =+intero= (Deprecated) Enables intero; a comprehensive, stack-based + development environment for Haskell. ** Plugins + [[https://github.com/haskell/haskell-mode][haskell-mode]] + =+dante= + [[https://github.com/jyp/dante][dante]] + [[https://github.com/jyp/attrap][attrap]] -+ =+intero= - + [[https://github.com/chrisdone/intero][intero]] + =+lsp= + [[https://github.com/emacs-lsp/lsp-haskell][lsp-haskell]] ++ =+intero= + + [[https://github.com/chrisdone/intero][intero]] * Prerequisites Depending on whether you use Intero, Dante or LSP, your dependencies will differ: -+ Intero and LSP users need =stack= + Dante users need =cabal=, =ghc= and =ghc-mod= + LSP users need the =haskell-ide-engine= LSP server ++ Intero and LSP users need =stack= + All users will need the =hoogle= package -** Stack -To use Intero, you need =stack=: - -*** MacOS -#+BEGIN_SRC sh -brew install haskell-stack -stack setup -#+END_SRC -*** Arch Linux -#+BEGIN_SRC sh -sudo pacman -S stack -# Replace pacaur with your AUR package manager of choice -pacaur -S ncurses5-compat-lib -stack setup -#+END_SRC - -*** openSUSE -#+BEGIN_SRC sh :dir /sudo:: -sudo zypper install stack -stack setup -#+END_SRC - ** Cabal To use Dante, you need =cabal= (the haskell package builder) and =ghci= (the compiler, syntax checker & repl): @@ -127,6 +105,28 @@ make yay -S haskell-ide-engine-git #+END_SRC +** Stack +To use Intero or LSP, you need =stack=: + +*** MacOS +#+BEGIN_SRC sh +brew install haskell-stack +stack setup +#+END_SRC +*** Arch Linux +#+BEGIN_SRC sh +sudo pacman -S stack +# Replace pacaur with your AUR package manager of choice +pacaur -S ncurses5-compat-lib +stack setup +#+END_SRC + +*** openSUSE +#+BEGIN_SRC sh :dir /sudo:: +sudo zypper install stack +stack setup +#+END_SRC + ** Haskell packages You'll need to install the following packages using ~stack~ or ~cabal~: