[ANN] rep 0.2.0 - A single-shot NREPL client designed for shell invocation

38 views
Skip to first unread message

Jason Felice

unread,
Oct 13, 2020, 4:06:14 PM10/13/20
to clo...@googlegroups.com
This release is a complete rewrite in C.  All functionality has been preserved, but this version is much more portable and can be added to package managers which cannot package GraalVM.

Additionally, the --port option has been extended to be able to find the nREPL port in a file "near" the source code, and an additional format method is available for list values in nREPL replies.

rep

A single-shot nREPL client designed for shell invocation.

This connects to a running nREPL server (like kind started with lein repl, for example), sends some code to be evaluated, and prints the results and output.

$ rep '(clojure.tools.namespace.repl/refresh)'
:reloading ()
:ok

Unlike other nREPL clients, rep does not try to maintain a persistent connection, meaning that thread-local variables and bindings like *e and *1 will not persist across invocations of rep. Perhaps there are other limitations because of this?

Installation

$ make && sudo make install

Usage, Options, and Examples

Building with Nix

You can use Nix as the build tool.

$ nix-build .

result symlink will appear in the current directory point to the build output.

Running Tests

To run all the tests that CI runs, the way CI runs them (do this before issuing a pull request):

$ nix-build release.nix

Using with Kakoune

The rc/ folder contains scripts which add a ,e user mode to Kakoune. To link this to Kakoune’s autoload directory, do the following:

$ make && make install
$ ln -sf /usr/local/share/kak/autoload/plugins/rep.kak ~/.config/kak/autoload/

rep must be in the path for the plugin to work.

License

Copyright © 2018 Jason M. Felice

Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.

Reply all
Reply to author
Forward
0 new messages