Skip to content

clojure-emacs/cider-nrepl

Repository files navigation

CircleCI Coverage Clojars Project cljdoc badge Downloads

CIDER nREPL

A collection of nREPL middleware, originally designed to enhance CIDER. cider-nrepl is also used:

and other Clojure development tools based on nREPL.

If you're just a user trying to get started with CIDER, then you probably don't want to read this. You should follow the steps in CIDER's user manual instead.

Tip

People who are new to nREPL might benefit from reading its user manual.

Documentation

Please refer to the documentation site for information on how to setup cider-nrepl or how to leverage its nREPL API.

Release policy

We're following SemVer (as much as one can be following it when the major version is 0). At this point bumps of the minor (second) version number are considered major releases and always include new features or significant changes to existing features. API compatibility between major releases is not a (big) concern (although we try to break the API rarely and only for a good reason).

The development cycle for the next major release starts immediately after the previous one has been shipped. Bugfix/point releases (if any) address only serious bugs and never contain new features.

Contributing

Issues

Report issues and suggest features and improvements on the GitHub issue tracker. Don't ask questions on the issue tracker - use the #cider channel on the Clojurians Slack instead.

Patches

Patches in any form are always welcome! GitHub pull requests are even better! :-)

Before submitting a patch or a pull request make sure all tests are passing and that your patch is in line with the contribution guidelines.

Local development

Local development tasks, like running the tests or locally installing cider-nrepl are offered by our Makefile. We recommend using it, since some aspects (e.g. the use of mranderson) can be intricate to newcomers.

These are its main tasks for local development:

# Run tests, using mranderson (slower but more realistic)
make test

# Run tests, without using mranderson (considerably faster)
make quick-test

# Install the project in your local ~/.m2 directory, using mranderson (recommended)
PROJECT_VERSION=X.Y.Z make install

# Install the project in your local ~/.m2 directory, without using mranderson
# (it's faster, but please only use when you repeatedly need to install cider-nrepl)
PROJECT_VERSION=X.Y.Z make fast-install

# Runs clj-kondo, cljfmt and Eastwood (in that order, with fail-fast).
# Please try to run this before pushing commits.
make lint

# Regenerates our user manual.
# When you modify our middleware such that its schema changes, please reflect so in the `cider.nrepl` namespace
# and run:
make docs

Releasing to Clojars

The release process is scripted:

PROJECT_VERSION=X.Y.Z make release
git push origin master vX.Y.Z

This rolls the changelog, bumps the version in the docs, commits, tags and pushes; the CI takes it from there and deploys to Clojars. See the "Hacking on cider-nrepl" section of the manual for details.

Hall of Fame

Special credit goes to the following people for their contributions:

And a big thanks to all other contributors who have helped so far.

Let's also acknowledge some of the projects leveraged by cider-nrepl:

  • orchard - extracted from cider-nrepl, so that non-nREPL clients can leverage the generic tooling functionality (like inspect, apropos, var-info, etc
  • compliment - for Clojure code completion
  • clj-suitable - for ClojureScript code completion using runtime inspection
  • tools.namespace - for namespace reloading
  • clj-reload - for namespace reloading
  • cljfmt - for code formatting

License

Copyright © 2013-2026 Bozhidar Batsov

Distributed under the Eclipse Public License, the same as Clojure.

About

A collection of nREPL middleware to enhance Clojure editors with common functionality like definition lookup, code completion, etc.

Topics

Resources

Contributing

Stars

747 stars

Watchers

34 watching

Forks

Packages

 
 
 

Contributors

Languages