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.
- 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
- Use concise English.
- Use code as our common language.
-
An example is worth a thousand words. For example:
It should be indented like this:
guard var x = xx else { foo() foo() }
But actually it is indented like this:
guard var x = xx else { foo() foo() }
-
A link to the language specification or other project is also worth a thousand words. For example, “I want this feature (links to a elisp function of other project)”.
-
- 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
- Run
make test
and ensure no errors other than known-bugs. - Open a pull request relating to a single issue.
Use a hylo-mode:
prefix.
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.
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.