Giter Site home page Giter Site logo

example-config's Introduction

Example Config

An example Emacs configuration for Clojure development with CIDER and clj-refactor.

Usage

You can use this configuration as your base Emacs configuration, or adapt it to your own configuration.

  1. Clone, copy, or merge this repository as your ~/.emacs.d/ directory
  2. Copy or merge the provided profiles_sample.clj to your ~/.lein/ directory as profiles.clj
  3. Add a flycheck-clojure configuration to your Clojure project(s)' project.clj. You can see an example of this step in the flycheck-clojure repository.

Load a Clojure file, and execute cider-jack-in (C-c M-j).

clj-refactor's prefix is C-c RET. It uses mnemonic keywords to provide shortcuts for common tasks. One example of its functionality is introduce let, which would be C-c RET i l. To view a complete list of its functionality, hit C-c RET C-h.

Happy Clojure hacking!

Featured packages

Package versions

Our dependencies largely come from MELPA Stable, which aims to hold only stable versions of packages. The main exception is clj-refactor and its dependencies. clj-refactor is available on MELPA Stable, but it has a very out-dated version.

Using Emacs package management

Where possible, we make use of a helper function, require-package, that checks if a package is installed locally. If it is not installed locally, it will attempt to download and install that package from the package repositories. When you first use this config, Emacs will download all of the requirements that are not included with this configuration (i.e., the ones that we do not get from MELPA stable).

Here is a link to more detailed information about package management in Emacs.

User Customizations

Most users will eventually want more in their emacs config than the clojure-specific tools included here. If you wish to add additional functionality to your emacs config beyond what is in this setup, simply add a file called "user-customizations.el" to your .emacs.d/lisp/ directory. Within that file, you have access to the (require-package ...) function defined here (explained above), so for example, you could have:

;; a line inside your own user-customizations.el in .emacs.d:

(require-package 'rainbow-delimiters)

This would be all that is needed for emacs to automatically download the Rainbow Delimiters package from Melpa. Additional configs of any kind could be added to this user-customizations.el file. If the file is ommitted, no problem, no customizations are run.

######Need Inspiration? Here is one example of a user-customizations.el in action

Rationale

See this issue for the discussion which resulted in creating this sample configuration. The goal of this to provide a reference Emacs config which is specially focused on Clojure development with all the bells and whistles but does not have much else in it.

License

Copyright © 2015 contributors

Distributed under the GNU General Public License, version 3

example-config's People

Contributors

bbatsov avatar benedekfazekas avatar brabster avatar bruceadams avatar expez avatar kornysietsma avatar mwfogleman avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.