Skip to content

mooz/js2-mode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

e0c3028 · Dec 5, 2024
Apr 8, 2023
Feb 21, 2024
Oct 8, 2013
Jan 14, 2014
Mar 15, 2010
Nov 6, 2014
Nov 2, 2021
Dec 24, 2023
Dec 28, 2021
Dec 1, 2021
Dec 3, 2024
Dec 20, 2020

Repository files navigation

About Build Status GNU ELPA MELPA

Improved JavaScript editing mode for GNU Emacs (description here).

For some of the latest changes, see latest user-visible changes.

Installation

The stable versions are hosted at GNU ELPA (M-x list-packages).

You can also install the latest development version from MELPA.

Requirements

Emacs 24.1+ and cl-lib (either built-in or installed from GNU ELPA).

React and JSX

The currently recommended solution is to install Emacs 27 (you can build from source or e.g. install a snapshot from a PPA) and use js-mode as the major mode. To make use of the JS2 AST and the packages that integrate with it, we recommend js2-minor-mode. See the corresponding instructions in the Commentary.

js-mode in Emacs 27 includes full support for syntax highlighting and indenting of JSX syntax.

rjsx-mode is an alternative option which comes with certain tradeoffs.

Bugs

  • See broken syntax highlighting and timer errors? Recently upgraded Emacs from version 24.2 or earlier? Try reinstalling or byte-recompiling the package.

  • Any indentation problems should be reported with M-x report-emacs-bug (please try reproducing them with js-mode first, for clarity). Starting with Emacs 25, js2-mode delegates indentation to the indentation engine of js-mode.

Please report other problems at http://github.com/mooz/js2-mode/issues.

Contributing

js2-mode is subject to the same copyright assignment policy as Emacs itself, org-mode, CEDET and other packages in GNU ELPA.

Any legally significant contributions can only be accepted after the author has completed their paperwork. Please ask for the request form, and we'll send it to you.

See Also

Some third-party modes that use the generated syntax tree: