\begin{hcarentry}[updated]{yi}
\label{yi}
\report{Jean-Philippe Bernardy}%05/09
\status{active development}
\participants{Nicolas Pouillard, Jeff Wheeler, and many others}
\makeheader

Yi is an editor written in Haskell and extensible in Haskell. We leverage the
expressiveness of Haskell to provide an editor which is powerful and easy to
extend.

Defining characteristics:
\begin{itemize}
\item A purely functional buffer representation;
\item Powerful EDSLs to describe editor actions and keybindings;
\item Syntax-highlighters as Alex files;
\item XMonad-style static/dynamic configuration via Dyre;
\item Commands are evaluated through the Hint package
\item UIs written as plugins.
\end{itemize}

Features:
\begin{itemize}
\item Special support for Haskell: layout-aware edition, paren-matching, beautification of lambdas and arrows, GHCi interface, Cabal build interface, \dots
\item unix console UI;
\item Support for Linux and MacOS platforms;
\item Syntax highlighting for many mainstream languages beside Haskell;
\end{itemize}

Recent developments include performance improvements, a more precise
syntax-highlighting mode for Haskell, as well as progress on the Gtk
front-end. Jeff Wheeler is now in charge of making releases.

\FurtherReading
\begin{compactitem}
\item More information can be found at:
 \url{http://haskell.org/haskellwiki/Yi}

\item The source repository is available:
 \texttt{darcs get}
 \text{\url{http://code.haskell.org/yi/}}
\end{compactitem}
\end{hcarentry}
