This layer provides basic Purescript editing support for spacemacs.
- Syntax highlighting through purescript-mode
- Automatic insert of imports through psc-ide-emacs
- REPL through psci
- Syntax checking through flycheck
- Autocompletion through company
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.
Set purescript-add-import-on-completion
to nil to make psc-ide
stop adding
imports on completion. Default value is t
.
If you would like node_modules/.bin
to be automatically added to the buffer
local exec_path
, e.g. to support project local purs/pulp installations, set the
node-add-modules-path
variable in the purescript
config section. Note that
doing this introduces a security risk:
(setq-default dotspacemacs-configuration-layers
'((purescript :variables node-add-modules-path t)))
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.
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 |
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) |
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 your.current.module.name - Import <module> for use in PSCI |
SPC m s p | Load or reload files defined in the project file .psci |