Skip to content

Latest commit

 

History

History
67 lines (52 loc) · 2.01 KB

CONTRIBUTING.md

File metadata and controls

67 lines (52 loc) · 2.01 KB

Contributing

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
  • 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)”.

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
  • Run make test and ensure no errors other than known-bugs.
  • Open a pull request relating to a single issue.

Coding Conventions

Naming

Use a swift-mode: prefix.

Docstrings

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.

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.