spacemacs/contrib/lang/javascript
syl20bnr 318bd23dc4 Add pre and post init functions support to configuration-layers
Now in addition to the <layer>/init-<pkg> function there are
- <layer>/pre-init-<pkg> (executed before <layer>/init-<pkg>)
- <layer>/post-init-<pkg> (executed after <layer>/init-<pkg>)

The init function is mandatory, if it is not present then the
package is ignored and not installed.

This mechanism allows soft (implicit) cross layers dependencies
between packages (see company for more info).

It is now possible to remove flycheck from spacemacs layer and
move it to its own syntax-checking layer.
2015-04-03 17:12:56 -04:00
..
img
config.el Add pre and post init functions support to configuration-layers 2015-04-03 17:12:56 -04:00
packages.el Add pre and post init functions support to configuration-layers 2015-04-03 17:12:56 -04:00
README.md Update wrong code snippets in READMEs 2015-02-17 22:36:12 -05:00

JavaScript contribution layer for Spacemacs

js coffee

Table of Contents

Description

This layer adds support for the JavaScript language using js2-mode.

Main features:

  • Smart code folding
  • Refactoring: done using js2-refactor.
  • Auto-completion and documentation: provided by tern
  • CoffeeScript support

Install

To use this contribution add it to your ~/.spacemacs

(setq-default dotspacemacs-configuration-layers '(javascript))

You will also need to install tern to use the auto-completion and documentation features:

$ npm install -g tern

Key Bindings

js2-mode

Key Binding     |                 Description

--------------------|------------------------------------------------------------ SPC m w | toggle js2-mode warnings and errors

Folding (js2-mode)

Key Binding       |                 Description

----------------------|------------------------------------------------------------ SPC m z c | hide element SPC m z o | show element SPC m z r | show all element SPC m z e | toggle hide/show element SPC m z F | toggle hide functions SPC m z C | toggle hide comments

Refactoring (js2-refactor)

Bindings should match the plain emacs assignments.

Key Binding         |                 Description

------------------------|------------------------------------------------------------ SPC x m j | move line down, while keeping commas correctly placed SPC x m k | move line up, while keeping commas correctly placed SPC m k | deletes to the end of the line, but does not cross semantic boundaries SPC m r 3 i | converts ternary operator to if-statement SPC m r a g | creates a /* global */ annotation if it is missing, and adds var to point to it SPC m r a o | replaces arguments to a function call with an object literal of named arguments SPC m r b a | moves the last child out of current function, if-statement, for-loop or while-loop SPC m r c a | converts a multiline array to one line SPC m r c o | converts a multiline object literal to one line SPC m r c u | converts a multiline function to one line (expecting semicolons as statement delimiters) SPC m r e a | converts a one line array to multiline SPC m r e f | extracts the marked expressions into a new named function SPC m r e m | extracts the marked expressions out into a new method in an object literal SPC m r e o | converts a one line object literal to multiline SPC m r e u | converts a one line function to multiline (expecting semicolons as statement delimiters) SPC m r e v | takes a marked expression and replaces it with a var SPC m r i g | creates a shortcut for a marked global by injecting it in the wrapping immediately invoked function expression SPC m r i p | changes the marked expression to a parameter in a local function SPC m r i v | replaces all instances of a variable with its initial value SPC m r l p | changes a parameter to a local var in a local function SPC m r l t | adds a console.log statement for what is at point (or region) SPC m r r v | renames the variable on point and all occurrences in its lexical scope SPC m r s l | moves the next statement into current function, if-statement, for-loop, while-loop SPC m r s s | splits a String SPC m r s v | splits a var with multiple vars declared into several var statements SPC m r t f | toggle between function declaration and function expression SPC m r u w | replaces the parent statement with the selected region SPC m r v t | changes local var a to be this.a instead SPC m r w i | wraps the entire buffer in an immediately invoked function expression SPC m r w l | wraps the region in a for-loop

Auto-complete and documentation (tern)

Key Binding      |                 Description

---------------------|------------------------------------------------------------ SPC m c | rename variable under the cursor using tern SPC m d | find docs of the thing under the cursor. Press again to open the associated URL (if any) SPC m g | jump to the definition of the thing under the cursor SPC m G | jump to definition for the given name SPC m C-g | brings you back to last place you were when you pressed M-.. SPC m t | find the type of the thing under the cursor