Skip to content

Latest commit

 

History

History
96 lines (80 loc) · 4.72 KB

README.org

File metadata and controls

96 lines (80 loc) · 4.72 KB

Purescript layer

img/purescript-logo.png

Table of Contents

Description

This layer provides basic Purescript editing support for spacemacs.

Features:

  • Syntax highlighting through purescript-mode
  • Automatic insert of imports through psc-ide-emacs
  • REPL through psci
  • Syntax checking through flycheck
  • Autocompletion through company

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.

Configuration

Add import on completion

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

Node Modules

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)))

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.

Key bindings

Purescript

Imports

Key bindingDescription
SPC m i =Format imports
SPC m i \Return to where you were editing before navigating to imports
SPC m i aAlign imports
SPC m i nNavigate to the imports

psc-ide

psc-ide command are available under SPC m m:

Key bindingDescription
SPC m m sStart psc-ide-server
SPC m m lLoad definitions for the modules inside your project
SPC m h tShow type at point
SPC m g gGoto definition for identifier at point
SPC m m bRebuilds the current file and displays any warnings or errors
SPC m m i aAdd an import for the identifier at the current cursor position
SPC m m i sInserts a suggestion for the warning/error at the current cursor position
SPC m m tAdd a new clause for the function signature at point
SPC m m c sCasesplits on the identifier at the current cursor position
SPC m m qQuit the current psc-ide-server
SPC m m LLoad a specific module (This is mostly used for troubleshooting)

REPL

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

Key bindingDescription
SPC m s bEquivalent of :m /path/to/current/module/file.purs - Load <file> for importing
SPC m s iLaunch a psci console buffer
SPC m s mEquivalent of :i your.current.module.name - Import <module> for use in PSCI
SPC m s pLoad or reload files defined in the project file .psci