All Projects → weavejester → integrant-repl

weavejester / integrant-repl

Licence: other
Reloaded workflow functions for Integrant

Programming Languages

clojure
4091 projects

Projects that are alternatives of or similar to integrant-repl

roll
Roll — backend for Clojure
Stars: ✭ 73 (-36.52%)
Mutual labels:  integrant, reloaded-workflow
quac
Quoine Exchange API Console
Stars: ✭ 14 (-87.83%)
Mutual labels:  repl
appium-java-repl
Simple Java REPL for controlling mobile apps through Appium.
Stars: ✭ 20 (-82.61%)
Mutual labels:  repl
d3-fdg-svelte
d3 Force Directed Graph example (d3-force) implemented in sveltejs. REPL:
Stars: ✭ 31 (-73.04%)
Mutual labels:  repl
s7-imgui
Using s7 scheme alongside Dear ImGui to (interactively) build (cross platform) GUI apps.
Stars: ✭ 29 (-74.78%)
Mutual labels:  repl
robotframework-debuglibrary
A debug library for RobotFramework, which can be used as an interactive shell(REPL) also.
Stars: ✭ 96 (-16.52%)
Mutual labels:  repl
pyhstr
hstr, but for Python shells
Stars: ✭ 12 (-89.57%)
Mutual labels:  repl
ol
Otus Lisp (Ol in short) is a purely* functional dialect of Lisp.
Stars: ✭ 157 (+36.52%)
Mutual labels:  repl
all-seeing-bot
Repl.it discord moderation bot
Stars: ✭ 73 (-36.52%)
Mutual labels:  repl
klisp
A Lisp written in about 200 lines of Ink, featuring an interactive literate programming notebook
Stars: ✭ 28 (-75.65%)
Mutual labels:  repl
solidity-shell
An interactive Solidity Shell
Stars: ✭ 434 (+277.39%)
Mutual labels:  repl
minitox
Minimal client for Tox
Stars: ✭ 65 (-43.48%)
Mutual labels:  repl
cicada
Cicada Language
Stars: ✭ 9 (-92.17%)
Mutual labels:  repl
endbasic
BASIC environment with a REPL, a web interface, a graphical console, and RPi support written in Rust
Stars: ✭ 220 (+91.3%)
Mutual labels:  repl
java-sheets
☕ Run Java Snippets in your Browser
Stars: ✭ 19 (-83.48%)
Mutual labels:  repl
cljs-browser-repl
A ClojureScript REPL and tutorial in your browser!
Stars: ✭ 35 (-69.57%)
Mutual labels:  repl
klipse-repl
Beginners friendly Clojure REPL
Stars: ✭ 44 (-61.74%)
Mutual labels:  repl
composer-repl
A REPL for PHP built into Composer (using PsySH)
Stars: ✭ 81 (-29.57%)
Mutual labels:  repl
redelay
Clojure library for first class lifecycle-managed state.
Stars: ✭ 44 (-61.74%)
Mutual labels:  integrant
Nota
A calculator with a beautiful interface for the Terminal, Including unicode-based charting and rich mathematical notation rendering
Stars: ✭ 45 (-60.87%)
Mutual labels:  repl

Integrant-REPL

A Clojure library that implements the user functions of Stuart Sierra's reloaded workflow for Integrant.

It's very similar to reloaded.repl, except that it works for Integrant, rather than Component.

Install

Add the following dependency to your dev profile:

[integrant/repl "0.3.2"]

Usage

Require the integrant.repl namespace in your user.clj file, and use the set-prep! function to define a zero-argument function that returns a prepped Integrant configuration.

For example:

(ns user
  (:require [integrant.repl :refer [clear go halt prep init reset reset-all]]))

(integrant.repl/set-prep! #(ig/prep {::foo {:example? true}}))

To prepare the configuration, you can now use:

user=> (prep)
:prepped

The configuration is stored in integrant.repl.state/config. To initiate the configuration, use:

user=> (init)
:initiated

This will turn the configuration into a running system, which is stored in integrant.repl.state/system.

Because these two steps are common, we can instead use:

user=> (go)
:initiated

This performs the (prep) and (init) steps together. Once the system is running, we can stop it at any time:

user=> (halt)
:halted

If we want to reload our source files and restart the system, we can use:

user=> (reset)
:reloading (...)
:resumed

Behind the scenes, Integrant-REPL uses tools.namespace. You can set the directories that are monitored for changed files by using the refresh-dirs function:

user=> (require '[clojure.tools.namespace.repl :refer [set-refresh-dirs]])
nil
user=> (set-refresh-dirs "src/clj")
("src/clj")

License

Copyright © 2020 James Reeves

Released under the MIT license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].