Giter VIP home page Giter VIP logo

ultra's Introduction

Ultra

Build Status Dependency Status

Hey, you know who has two thumbs and strong opinions? That's right, it's me.

Ultra is a Leiningen plugin for an absolutely kick-ass development environment.

I've written a blog post describing Ultra in greater depth here.

Installation

To install and configure Ultra, add something like the following to your ~/.lein/profiles.clj

{:user {:plugins [[venantius/ultra "0.3.3"]]
        :ultra {:color-scheme :solarized_dark}}}

Requirements

Colorized nREPL output requires Leiningen version 2.4.2 or higher.

The plugin at large needs JDK 7+.

ClojureScript Support

At the moment, Ultra doesn't have ClojureScript support at the REPL. See brandonbloom/fipp#7.

Features

For a detailed list of features, check out the wiki. Here's the highlight reel:

A colorized REPL! colorized repl

Clearer test output! test output demo

Better stacktraces! test stacktrace demo

Java object introspection! java introspection

Configuration

All of the above features are enabled by default, but can be turned off by setting a false flag in your profile. If you wanted Ultra to essentially no-op, your profile would look like this:

{:user {:plugins [[venantius/ultra "0.3.3"]]
        :ultra {:repl         false
                :stacktraces  false
                :tests        false
                :java         false}}}

Color schemes

At the moment Ultra supports the following color schemes:

  • :solarized_dark
  • :default

If you want to set the colors yourself instead of using a theme you can configure them directly, e.g.:

{:user {:plugins [[venantius/ultra "0.3.3"]]
        :ultra {:color-scheme {:delimiter [:red]
                               :tag [:red]
                               :nil [:cyan]
                               :boolean [:cyan]
                               :number [:cyan]
                               :string [:cyan]
                               :character [:cyan]
                               :keyword [:green]
                               :symbol nil
                               :function-symbol [:blue]
                               :class-delimiter [:blue]
                               :class-name nil
                               :exception nil}}}}

Contributing

Please open an issue here before submitting pull requests; I prefer to have documentation and consensus that either of our time will be well spent by working on it. When opening an issue -- particularly for bugs -- please refer to CONTRIBUTING.md

Bug fixes and code cleanup are always appreciated and won't get too much pushback; new features will be held to a higher standard - this whole project is something of a massive exercise in ego, after all.

Pull Requests for new color schemes welcome; please include screenshots in your submission.

Motivation

...or, why didn't you just put all of this stuff in your ~/.lein/profiles.clj?

In short, my :user profile was starting to become bloated. It was difficult to tell whether plugins were interfering with each other, and my :injections key in particular was starting to look a little unwieldy.

At some point I realized I was up to my neck in alligators and that it was time to push things into a standalone repository.

Special Thanks

Ultra wraps, calls, or draws inspiration from the following libraries, and their owners and authors deserve credit for doing most of the hard work.

License

In some cases, I've borrowed code snippets from libraries above and re-written them. Where that is the case, the Copyright of the original author[s] remains in effect. Any modifications to their code, as well as all original content, is Copyright © 2015 W. David Jarvis.

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

ultra's People

Contributors

dizzeepascall avatar leonidas-from-xiv avatar tcrayford avatar venantius avatar

Watchers

 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.