Edit purescript layer README and key bindings

This commit is contained in:
syl20bnr 2015-04-13 22:57:47 -04:00
parent 7c43c35d8e
commit 81b38d0aba
3 changed files with 52 additions and 44 deletions

View file

@ -2,11 +2,22 @@
![logo](img/purescript-logo.png)
<!-- markdown-toc start - Don't edit this section. Run M-x markdown-toc/generate-toc again -->
**Table of Contents**
- [Purescript contribution layer for Spacemacs](#purescript-contribution-layer-for-spacemacs)
- [Description](#description)
- [Install](#install)
- [Key bindings](#key-bindings)
<!-- markdown-toc end -->
## Description
This layer provides basic Purescript editing support for spacemacs:
- purescript-mode
- psci
This layer provides basic Purescript editing support for spacemacs
thanks to the following packages:
- [purescript-mode][]
- [psci][]
## Install
@ -18,15 +29,28 @@ To use this contribution add it to your `~/.spacemacs`
## Key bindings
### Purescript
#### Imports
Key Binding | Description
-----------------|------------------------------------------------------------
`<SPC> m p l` | Equivalent of `:m /path/to/current/module/file.purs` - Load <file> for importing
`<SPC> m p i` | Equivalent of `:i your.current.module.name` - Import <module> for use in PSCI
`<SPC> m p p r` | Load or reload files defined in the project file .psci
`<SPC> m p r` | Equivalent of `:r` - Reset
`<SPC> m p q` | Equivalent of `:q` - Quit
`<SPC> m p p` | Launch a psci console buffer
`<SPC> m i f` | Format imports
`<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
`<SPC> m i r` | Return to where you were editing before navigating to imports
### 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
[purescript-mode]: https://github.com/dysinger/purescript-mode
[psci]: https://github.com/ardumont/emacs-psci

View file

@ -1,28 +0,0 @@
;;; keybindings.el --- Purescript Layer keybindings File for Spacemacs
;;
;; Copyright (c) 2012-2014 Sylvain Benner
;; Copyright (c) 2015 Ryan L. Bell & Contributors
;;
;; Author: Ryan L. Bell
;; URL: https://github.com/syl20bnr/spacemacs
;;
;; This file is not part of GNU Emacs.
;;
;;; License: GPLv3
(evil-leader/set-key-for-mode 'purescript-mode
;; -- ----- purescript-mode bindings ------------------
"mia" 'purescript-align-imports
"mif" 'purescript-mode-format-imports
"min" 'purescript-navigate-imports
"mir" 'purescript-navigate-imports-return
;; ------- inferior-psci-mode bindings ---------------
"mpl" 'psci/load-current-file!
"mpi" 'psci/load-module!
"mppr" 'psci/load-project-modules!
"mpr" 'psci/reset!
"mpq" 'psci/quit!
"mpp" 'psci
)

View file

@ -14,17 +14,29 @@
(defvar purescript-packages
'(
purescript-mode
psci))
psci
))
(defun purescript/init-purescript-mode ()
(use-package purescript-mode
:defer t
:config
(add-hook 'purescript-mode-hook
(lambda () (turn-on-purescript-indentation)))))
:init
(progn
(add-hook 'purescript-mode-hook 'turn-on-purescript-indentation)
(evil-leader/set-key-for-mode 'purescript-mode
"mi=" 'purescript-mode-format-imports
"mi`" 'purescript-navigate-imports-return
"mia" 'purescript-align-imports
"min" 'purescript-navigate-imports))))
(defun purescript/init-psci ()
(use-package psci
:defer t
:init
(add-hook 'purescript-mode-hook 'inferior-psci-mode)))
(progn
(add-hook 'purescript-mode-hook 'inferior-psci-mode)
(evil-leader/set-key-for-mode 'purescript-mode
"msb" 'psci/load-current-file!
"msi" 'psci
"msm" 'psci/load-module!
"msp" 'psci/load-project-modules!))))