Table of Contents

Purescript layer

Table of ContentsClose


1 Description

This layer provides basic Purescript editing support for spacemacs thanks to the following packages:

2 Install

To use this configuration layer, add it to your ~/.spacemacs. You will need to add purescript to the existing dotspacemacs-configuration-layers list in this file.

You'll also need to make sure the PureScript compiler and its associated binaries (psc-ide-server, psci,…) are on your path. Installation instructions can be found here.

3 Configuration

3.1 Add import on completion

Set purescript-add-import-on-completion to nil to make psc-ide stop adding imports on completion. Default value it t.

3.2 Error popup

If you set purescript-enable-rebuild-on-save to non-nil, you will get a popup buffer showing you your current warnings/errors one at a time. This is primarily meant as an alternative to using flycheck. Default value is nil.

4 Key bindings

4.1 Purescript

4.1.1 Imports

Key Binding Description
SPC m i = Format imports
SPC m i \ Return to where you were editing before navigating to imports
SPC m i a Align imports
SPC m i n Navigate to the imports

4.1.2 psc-ide

psc-ide command are available under SPC m m:

Key Binding Description
SPC m m s Start psc-ide-server
SPC m m l Load definitions for the modules inside your project
SPC m h t Show type at point
SPC m g g Goto definition for identifier at point
SPC m m b Rebuilds the current file and displays any warnings or errors
SPC m m i a Add an import for the identifier at the current cursor position
SPC m m i s Inserts a suggestion for the warning/error at the current cursor position
SPC m m t Add a new clause for the function signature at point
SPC m m c s Casesplits on the identifier at the current cursor position
SPC m m q Quit the current psc-ide-server
SPC m m L Load a specific module (This is mostly used for troubleshooting)

4.2 REPL

psci provides a very basic REPL for purescript. The following key bindings are available:

Key Binding Description
SPC m s b Equivalent of :m /path/to/current/module/file.purs - Load <file> for importing
SPC m s i Launch a psci console buffer
SPC m s m Equivalent of :i - Import <module> for use in PSCI
SPC m s p Load or reload files defined in the project file .psci

Author: Sylvain Benner

Created: 2016-10-03 Mon 00:55