From 81b38d0aba7f669a34dd7d6441fec50d51a5173f Mon Sep 17 00:00:00 2001 From: syl20bnr Date: Mon, 13 Apr 2015 22:57:47 -0400 Subject: [PATCH] Edit purescript layer README and key bindings --- contrib/lang/purescript/README.md | 46 ++++++++++++++++++++------ contrib/lang/purescript/keybindings.el | 28 ---------------- contrib/lang/purescript/packages.el | 22 +++++++++--- 3 files changed, 52 insertions(+), 44 deletions(-) delete mode 100644 contrib/lang/purescript/keybindings.el diff --git a/contrib/lang/purescript/README.md b/contrib/lang/purescript/README.md index 9f6578a50..12d73f49e 100644 --- a/contrib/lang/purescript/README.md +++ b/contrib/lang/purescript/README.md @@ -2,11 +2,22 @@ ![logo](img/purescript-logo.png) + +**Table of Contents** + +- [Purescript contribution layer for Spacemacs](#purescript-contribution-layer-for-spacemacs) + - [Description](#description) + - [Install](#install) + - [Key bindings](#key-bindings) + + + ## 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 -----------------|------------------------------------------------------------ -` m p l` | Equivalent of `:m /path/to/current/module/file.purs` - Load for importing -` m p i` | Equivalent of `:i your.current.module.name` - Import for use in PSCI -` m p p r` | Load or reload files defined in the project file .psci -` m p r` | Equivalent of `:r` - Reset -` m p q` | Equivalent of `:q` - Quit -` m p p` | Launch a psci console buffer -` m i f` | Format imports +` m i =` | Format imports +` m i \`` | Return to where you were editing before navigating to imports ` m i a` | Align imports ` m i n` | Navigate to the imports -` 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 +-----------------|------------------------------------------------------------ +` m s b` | Equivalent of `:m /path/to/current/module/file.purs` - Load for importing +` m s i` | Launch a psci console buffer +` m s m` | Equivalent of `:i your.current.module.name` - Import for use in PSCI +` 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 diff --git a/contrib/lang/purescript/keybindings.el b/contrib/lang/purescript/keybindings.el deleted file mode 100644 index 33518073e..000000000 --- a/contrib/lang/purescript/keybindings.el +++ /dev/null @@ -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 - ) diff --git a/contrib/lang/purescript/packages.el b/contrib/lang/purescript/packages.el index 3cde99a65..05b2443e4 100644 --- a/contrib/lang/purescript/packages.el +++ b/contrib/lang/purescript/packages.el @@ -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!))))