This commit is contained in:
Kazu Yamamoto 2014-10-06 14:04:11 +09:00
parent ab7059d5e4
commit 44ed695535

View File

@ -1,40 +1,25 @@
% ghcmodHappyHaskellProgram-Kg.tex
\begin{hcarentry}[updated]{ghc-mod --- Happy Haskell Programming}
\report{Kazu Yamamoto}%05/14
\report{Kazu Yamamoto}%11/14
\status{open source, actively developed}
\makeheader
{\tt ghc-mod} is a package to enrich Haskell programming on editors including Emacs, Vim and Sublime. The {\tt ghc-mod} package on Hackage includes the {\tt ghc-mod} command, new {\tt ghc-modi} command and Emacs front-end.
For a long time, Kazu Yamamoto is the only active developer of ghc-mod.
Now two new developers joined:
Emacs front-end provides the following features:
Alejandro Serrano merged his results of Google Summer of Code. He
implements case splitting and sophisticated type hole handling.
Daniel Gröber brushed up the internal code by bringing the GhcMod
monad. So, the API of \texttt{ghc-mod} drastically changed.
The result was released \texttt{ghc-mod} version 5.0
\begin{description}
\item[Completion] You can complete a name of keyword, module, class, function, types, language extensions, etc.
\texttt{ghc-modi} used to suffer from inconsistency if an environment
changes. For instance, file names of modules change, new dependencies
are added to its cabal file, new libraries are installed, and so on.
\texttt{ghc-modi} v5.1.1 or later captures this kind of changes and
restarts a new session.
\item[Code template] You can insert a code template according to the position of the cursor. For instance, {\tt import Foo (bar)} is inserted if {\tt bar} is missing.
\item[Syntax check] Code lines with error messages are automatically highlighted. You can display the error message of the current line in another window. {\tt hlint} %\cref{hlint}
can be used instead of GHC to check Haskell syntax.
\item[Document browsing] You can browse the module document of the current line either locally or on Hackage.
\item[Expression type] You can display the type/information of the expression on the cursor.
\end{description}
\noindent
There are two Vim plugins:
\begin{itemize}
\item ghcmod-vim
\item syntastic
\end{itemize}
\noindent
Here are new features:
\begin{itemize}
\item New {\tt ghc-modi} command provides a persistent session to make response time drastically faster. So, now you can use Emacs front-end without stress.
\item Emacs front-end provides a way to solve the import hell.
\item GHC 7.8 is supported.
\end{itemize}
Kazu stepped down from the release manager and Daniel took it over.
\FurtherReading
\url{http://www.mew.org/~kazu/proj/ghc-mod/en/}