# Agda contribution layer for Spacemacs **Table of Contents** - [Agda contribution layer for Spacemacs](#agda-contribution-layer-for-spacemacs) - [Description](#description) - [Install](#install) - [Layer](#layer) - [Agda](#agda) - [Key bindings](#key-bindings) ## Description This layer adds support for the [Agda][] programming language. Some features: - Faces redefined to correctly play with themes. - Spacemacs bindings to Agda's interactive tools. **This layer is in construction, it needs your contributions and bug reports.** ## Install ### Layer To use this contribution add it to your `~/.spacemacs` ```elisp (setq-default dotspacemacs-configuration-layers '(agda)) ``` ### Agda Quick instructions to install Agda assuming you have cabal installed: ```sh cabal install alex happy "cpphs < 1.19" agda ``` Then check that `agda` is available on your `PATH` and seen by Emacs. ## Key bindings The key bindings of this layer don't follow the Spacemacs conventions, we opted to a simple transcription of stock Agda mode key bindings to Spacemacs leader key. All Agda specific bindings are prefixed with the major-mode leader SPC m. Key Binding | Description ----------------------|------------------------------------------------------------ SPC m = | Show constraints. SPC m ? | Show all goals. SPC m , | Shows the type of the goal at point and the currect context. SPC m . | Shows the context, the goal and the given expression's inferred type. SPC m a | Simple proof search. SPC m b | Go to the previous goal, if any and activate goal-navigation micro-state. SPC m c | Refine the pattern variables given in the goal. SPC m d | Infers the type of the given expression. SPC m e | Show the context of the goal at point. SPC m f | Go to the next goal, if any and activate goal-navigation micro-state. SPC m h | Compute the type of a hypothetical helper function. SPC m l | Load current buffer. SPC m n | Computes the normal form of the given expression, using the scope of the current goal or, if point is not in a goal, the top-level scope. SPC m o | Shows all the top-level names in the given module. SPC m r | Refine the goal at point. SPC m s | Solves all goals that are already instantiated internally. SPC m t | Show the type of the goal at point. SPC m x c | Compile current module. SPC m x d | Removes buffer annotations (overlays and text properties). SPC m x h | Toggle display of implicit arguments. SPC m x q | Quit and clean up after agda2. SPC m x r | Kill and restart the *agda2* buffer and load `agda2-toplevel-module'. SPC m w | Explains why a given name is in scope. [Agda]: http://wiki.portal.chalmers.se/agda/pmwiki.php