- 3 Typescript
- 4 React JS
- 5 AngularJS integration
- 8 See also
As of 20150909, it derives from js-mode. That means the former function will run js-mode-hook, as well as js2-mode-hook. The key bindings will default to js-mode-map where they're not set in js2-mode-map. And in Emacs 25 or later (including the snapshot builds), js2-mode uses the indentation code from js-mode.
js2-mode supports jsx with
js2-jsx-mode. It supports indentation of JSXElement expressions wrapped within parentheses or as function arguments. Indentation is customizable via
(add-hook 'js2-mode-hook #'js2-refactor-mode)
- a kill command that respects the AST
- rename the variable at point and its occurences in the lexical scope
- move the current line up or down without breaking the AST
- extract code to a method, a function, a let binding, etc
- add a parameter, transform one into a variable
js3-mode is a fork of js-mode and js2-mode that supports comma-first style and other quirks.
Notably, js3-mode does not support js2-mode's bounce-indent, though it does support several popular indentation styles.
- Autocompletion on variables and properties
- Function argument hints
- Querying the type of an expression
- Finding the definition of something
- Automatic refactoring
To see what Tern is all about, you should try the online demo !
Indium: a REPL, inspector, stepping debugger and more
- a REPL (with auto completion) & object inspection;
- an inspector, with history and navigation;
- a scratch buffer (M-x indium-scratch);
- a stepping Debugger, similar to edebug, or cider.
See its installation instructions.
It works with a Chrome(ium) and Nodejs backend. The firefox backend is in the TODO list.
For Typescript support, see TypeScript.
rjsx-mode is a special mode for editing JSX files. We get js2-mode features plus proper syntax checking and highlighting of JSX code blocks.
Highlighting Angular directives in templates
See the packages that allow to have multiple modes in the same buffer at the same time:
The following packages are available on MELPA.
This will be done with web-beautify.