A JavaScript development environment for Emacs https://indium.readthedocs.io
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.

1.7 KiB


Contributions are welcome. If you discover bugs or issues, or have ideas for improvements or new features, please file a report on the issue tracker for this repository. Follow the guidelines below to make sure everything goes smoothly.

Issue reporting

  • Check that the issue has not already been reported
  • Check that the issue has not already been fixed in the latest code
  • Open an issue with a clear title
  • Write as grammatically correct as you can in the description.

Pull requests

  • Perform all changes on a topic branch for easier merging
  • Follow the coding conventions already in use
  • Verify Emacs Lisp code with checkdoc
  • Add unit tests whenever possible
  • Open a merge request relating to a single issue.

Coding Conventions


  • Use an indium- prefix for all public names.
  • Use an indium-- prefix for all internal names.


Write meaningful docstrings for all functions and vars.

  • Document all functions and variables as directed by checkdoc.
  • Consider using Flycheck to automate checkdoc while you're editing.

Unit tests

  • Try to add unit tests for all contributions
  • Bug fixes should ideally come with regression tests.

Common Lisp functions

Use cl-lib instead of cl. The cl library pollutes the global namespace and its usage is therefore discouraged.

  • Use cl-lib, which adds prefixes to all cl function names
  • Use noflet instead of flet when you need to dynamically rebind functions.

seq.el and map.el

Use seq- and map- functions for manipulating collections whenever possible.