Add emberjs layer

This commit is contained in:
Robert O'Connor 2016-02-04 06:21:09 -05:00
parent 2f50f28419
commit 40f5a80f3f
No known key found for this signature in database
GPG Key ID: 1DB67AA126AFFA8D
3 changed files with 192 additions and 0 deletions

View File

@ -0,0 +1,115 @@
#+TITLE: emberjs layer
#+CAPTION: logo
[[file:img/ember.png]]
* Table of Contents :TOC_4_gh:noexport:
- [[#description][Description]]
- [[#features][Features:]]
- [[#install][Install]]
- [[#completion-system][Completion System]]
- [[#key-bindings][Key bindings]]
- [[#file-key-bindings][File key bindings]]
- [[#generator-key-bindings][Generator key bindings]]
- [[#destroy-the-inverse-of-generate-key-bindings][Destroy (the inverse of generate) key bindings]]
- [[#key-bindings-to-build-start-the-server-and-run-tests][Key bindings to build, start the server and run tests]]
* Description
This enables helpers for working with Ember.js projects.
This also includes [[https://github.com/ronco/ember-yasnippets.el][ember-yasnippets]]. See the README for ember-yansippets for the snippet keys.
To use this, you need to add add a =.dir-locals.el= file with the following in the root of your ember project:
#+BEGIN_SRC emacs-lisp
((nil . ((mode . ember))))
#+END_SRC
If you do not wish to do the following, you may also just do =M-x ember-mode=, however it will make things easier.
Additionally, temporary backup, autosave, and lockfiles interfere with broccoli watcher, so they need to either be moved out of the way or disabled.
Add the following to your =dotspacemacs/user-config=:
#+BEGIN_SRC emacs-lisp
(setq backup-directory-alist `((".*" . ,temporary-file-directory)))
(setq auto-save-file-name-transforms `((".*" ,temporary-file-directory t)))
(setq create-lockfiles nil)
#+END_SRC
** Features:
- Ability to easily switch between various files
- Key bindings for generators and also easily revert generator actions
- Ability to build, start server, and run tests
* Install
To use this contribution add it to your =~/.spacemacs=
#+begin_src emacs-lisp
(setq-default dotspacemacs-configuration-layers '(emberjs))
#+end_src
* Completion System
By default this will use =ido=,
but it may be configured to use helm by adding the following in your =dotspacemacs/user-config= function:
#+BEGIN_SRC emacs-lisp
(setq ember-completion-system 'helm)
#+END_SRC
* Key bindings
** File key bindings
| Key binding | Description |
|-------------+------------------------|
| SPC m f f c | ember-open-controller |
| SPC m f f m | ember-open-model |
| SPC m f f o | ember-open-router |
| SPC m f f p | ember-open-component |
| SPC m f f r | ember-open-route |
| SPC m f f j | ember-open-javascript |
| SPC m f f t | ember-open-template |
| SPC m f f x | ember-open-mixin |
| SPC m f f i | ember-open-initializer |
| SPC m f f u | ember-open-util |
| SPC m f f s | ember-open-service |
** Generator key bindings
| Key binding | Description |
|-------------+----------------------------|
| SPC m f g c | ember-generate-controller |
| SPC m f g m | ember-generate-model |
| SPC m f g o | ember-generate-router |
| SPC m f g p | ember-generate-component |
| SPC m f g r | ember-generate-route |
| SPC m f g j | ember-generate-javascript |
| SPC m f g t | ember-generate-template |
| SPC m f g x | ember-generate-mixin |
| SPC m f g i | ember-generate-initializer |
| SPC m f g u | ember-generate-util |
| SPC m f g s | ember-generate-service |
| SPC m f g g | ember-generate |
** Destroy (the inverse of generate) key bindings
| Key binding | Description |
|-------------+---------------------------|
| SPC m f d c | ember-destroy-controller |
| SPC m f d m | ember-destroy-model |
| SPC m f d o | ember-destroy-router |
| SPC m f d p | ember-destroy-component |
| SPC m f d r | ember-destroy-route |
| SPC m f d j | ember-destroy-javascript |
| SPC m f d t | ember-destroy-template |
| SPC m f d x | ember-destroy-mixin |
| SPC m f d i | ember-destroy-initializer |
| SPC m f d u | ember-destroy-util |
| SPC m f d s | ember-destroy-service |
| SPC m f d d | ember-destroy |
** Key bindings to build, start the server and run tests
| Key binding | Description |
|-------------+------------------------|
| SPC m f r b | ember-build |
| SPC m f r s | ember-serve-or-display |
| SPC m f r t | ember-test |

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

View File

@ -0,0 +1,77 @@
;;; packages.el --- emberjs layer packages file for Spacemacs.
;;
;; Copyright (c) 2012-2016 Sylvain Benner & Contributors
;;
;; Author: Robert O'Connor <robby.oconnor@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs
;;
;; This file is not part of GNU Emacs.
;;
;;; License: GPLv3
;;; Commentary:
;;; Code:
(defconst emberjs-packages
'(ember-mode
ember-yasnippets))
(defun emberjs/init-ember-mode ()
(use-package ember-mode
:defer t
:init
(spacemacs/declare-prefix-for-mode 'ember-mode "ff" "file")
(spacemacs/declare-prefix-for-mode 'ember-mode "fg" "generate")
(spacemacs/declare-prefix-for-mode 'ember-mode "fd" "destroy")
(spacemacs/declare-prefix-for-mode 'ember-mode "fr" "run")
;; key bindings
(spacemacs/set-leader-keys-for-minor-mode 'ember-mode
"ffc" 'ember-open-controller
"ffm" 'ember-open-model
"ffo" 'ember-open-router
"ffp" 'ember-open-component
"ffr" 'ember-open-route
"ffj" 'ember-open-javascript
"fft" 'ember-open-template
"ffx" 'ember-open-mixin
"ffi" 'ember-open-initializer
"ffu" 'ember-open-util
"ffs" 'ember-open-service
"fgc" 'ember-generate-controller
"fgm" 'ember-generate-model
"fgo" 'ember-generate-router
"fgp" 'ember-generate-component
"fgr" 'ember-generate-route
"fgj" 'ember-generate-javascript
"fgt" 'ember-generate-template
"fgx" 'ember-generate-mixin
"fgi" 'ember-generate-initializer
"fgu" 'ember-generate-util
"fgs" 'ember-generate-service
"fgg" 'ember-generate
"fdc" 'ember-destroy-controller
"fdm" 'ember-destroy-model
"fdo" 'ember-destroy-router
"fdp" 'ember-destroy-component
"fdr" 'ember-destroy-route
"fdj" 'ember-destroy-javascript
"fdt" 'ember-destroy-template
"fdx" 'ember-destroy-mixin
"fdi" 'ember-destroy-initializer
"fdu" 'ember-destroy-util
"fds" 'ember-destroy-service
"fdd" 'ember-destroy
"frb" 'ember-build
"frs" 'ember-serve-or-display
"frt" 'ember-test)))
(defun emberjs/init-ember-yasnippets ()
(use-package ember-yasnippets
:defer t))
;;; packages.el ends here