928983da47
This commit defines: - spacemacs-default-jump-handlers: a list of functions that can jump to definition in ALL modes. - spacemacs-jump-handlers-MODE: a list of functions that can jump to definition in MODE. - spacemacs-jump-handlers: a buffer-local list of functions that can jump to definition. This is made up of the values of the two previous variables whenever a given major mode is activated. - spacemacs/jump-to-definition: a function that tries each function in spacemacs-jump-handlers in order, and stops when one of them takes us somewhere new. - spacemacs|define-jump-handlers: a macro that * defines spacemacs-jump-handlers-MODE, possibly filled with initial functions * defines a function that is added to the hook of the given MODE * binds “SPC m g g” of that MODE to spacemacs/jump-to-definition This is an attempt to harmonize all the different approaches to jumping. Specifically, - Existing intelligent jump packages that work for only a single mode should go to the beginning of spacemacs-jump-handlers-MODE. E.g. anaconda for python, ensime for scala, etc. - Packages like gtags that work for several modes (but potentially not all) and which is dumber than the intelligent jumpers should go the the END of spacemacs-jump-handlers-MODE. - Packages like dumb-jump that work for all modes should go to spacemacs-default-jump-handlers. In all cases the order of the jump handlers in each list should be from most to least intelligent. Fixes #6619 |
||
---|---|---|
.. | ||
img | ||
config.el | ||
packages.el | ||
README.org |
Purescript layer
Description
This layer provides basic Purescript editing support for spacemacs thanks to the following packages:
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 it 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 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
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) |
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 your.current.module.name - Import <module> for use in PSCI |
SPC m s p |
Load or reload files defined in the project file .psci |