318bd23dc4
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. |
||
---|---|---|
.. | ||
img | ||
config.el | ||
packages.el | ||
README.md |
JavaScript contribution layer for Spacemacs
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