You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
2.2 KiB
55 lines
2.2 KiB
9 years ago
|
This JavaScript editing mode supports:
|
||
|
|
||
|
- strict recognition of the Ecma-262 language standard
|
||
|
- support for most Rhino and SpiderMonkey extensions from 1.5 and up
|
||
|
- parsing support for ECMAScript for XML (E4X, ECMA-357)
|
||
|
- accurate syntax highlighting using a recursive-descent parser
|
||
|
- on-the-fly reporting of syntax errors and strict-mode warnings
|
||
|
- undeclared-variable warnings using a configurable externs framework
|
||
|
- "bouncing" line indentation to choose among alternate indentation points
|
||
|
- smart line-wrapping within comments and strings
|
||
|
- code folding:
|
||
|
- show some or all function bodies as {...}
|
||
|
- show some or all block comments as /*...*/
|
||
|
- context-sensitive menu bar and popup menus
|
||
|
- code browsing using the `imenu' package
|
||
|
- many customization options
|
||
|
|
||
|
Installation:
|
||
|
|
||
|
To install it as your major mode for JavaScript editing:
|
||
|
|
||
|
(add-to-list 'auto-mode-alist '("\\.js\\'" . js2-mode))
|
||
|
|
||
|
Alternatively, to install it as a minor mode just for JavaScript linting,
|
||
|
you must add it to the appropriate major-mode hook. Normally this would be:
|
||
|
|
||
|
(add-hook 'js-mode-hook 'js2-minor-mode)
|
||
|
|
||
|
You may also want to hook it in for shell scripts running via node.js:
|
||
|
|
||
|
(add-to-list 'interpreter-mode-alist '("node" . js2-mode))
|
||
|
|
||
|
To customize how it works:
|
||
|
M-x customize-group RET js2-mode RET
|
||
|
|
||
|
Notes:
|
||
|
|
||
|
This mode includes a port of Mozilla Rhino's scanner, parser and
|
||
|
symbol table. Ideally it should stay in sync with Rhino, keeping
|
||
|
`js2-mode' current as the EcmaScript language standard evolves.
|
||
|
|
||
|
Unlike cc-engine based language modes, js2-mode's line-indentation is not
|
||
|
customizable. It is a surprising amount of work to support customizable
|
||
|
indentation. The current compromise is that the tab key lets you cycle among
|
||
|
various likely indentation points, similar to the behavior of python-mode.
|
||
|
|
||
|
This mode does not yet work with "multi-mode" modes such as `mmm-mode'
|
||
|
and `mumamo', although it could be made to do so with some effort.
|
||
|
This means that `js2-mode' is currently only useful for editing JavaScript
|
||
|
files, and not for editing JavaScript within <script> tags or templates.
|
||
|
|
||
|
The project page on GitHub is used for development and issue tracking.
|
||
|
The original homepage at Google Code has outdated information and is mostly
|
||
|
unmaintained.
|