Repository navigation
neorepl 0.5.0
CIDER in a terminal.
Features
- #45: The REPL shows the delimiter that pairs with the one at the cursor, and a closer that pairs with nothing, or with the wrong kind, in red, rather than JLine moving the cursor to the opener for half a second.
- #48: The REPL says when the server it started runs another cider-nrepl than the one jack-in adds, as when a Leiningen project's
:pluginsor~/.lein/profiles.cljhas one. - #49: The REPL takes readline's settings from
~/.inputrc, or the file$INPUTRCnames, soset editing-mode vithere picks the vi keymap, and$if neoreplholds what's for neorepl alone. - #50: The completion menu shows a candidate's namespace next to its type, unless the candidate names it already.
- #51: Enter in an unfinished form starts a line indented for it, the way cljfmt indents by default.
- #52: The REPL highlights its commands as they're typed,
,docand the like, and a command name that isn't one in red. - #53: C-x C-e in the REPL opens what's typed in
$EDITORand brings back what's saved, and,editwithout a name opens the current namespace's file. - #55:
neorepl refslists the functions that use a var, or with--deps, the ones it uses, as,refsand,depsdo in the REPL and therefstool does for MCP, with cider-nrepl. - #59:
neorepl eval --ns NSevaluates in a namespace, loading it first unless it's there, and leaves the session in its own, as the MCPevaltool'snsdoes. - #59:
neorepl eval -f FILE --line N:COLevaluates only the top-level form at that spot, in the file's namespace, after itsnsform, and with-takes FILE's text from standard input, so an editor can evaluate the form at the cursor in a buffer it hasn't saved. - #59:
doc/editors.mdsets up Neovim, Emacs and Helix to evaluate in neorepl, with the REPL beside them. - #60: Eldoc shows under the input, wherever the cursor is, with the parameter the argument at the cursor goes into in bold and the arglists that can't take that many arguments faint.
- #60: Eldoc matches the arguments of macros and special forms by their shape, so in
defna docstring goes todoc-string?and a map after it toattr-map?. - #64:
neorepl eval --reload, and the MCP eval tool'sreload, reload the namespaces whose files changed before evaluating, with cider-nrepl's clj-reload, which keeps whatdefoncedefined, and don't evaluate when that fails. - #64:
,autoreloadhas the REPL reload what changed before each evaluation, and before,test,,inspectand,ns. - #65:
,nswithout a name browses the namespaces, the project's or every loaded one, filtering them as their names are typed, and their public vars and docs, switching to a namespace or opening a var in$EDITOR. - #66:
,specbrowses the specs, filtering them as their names are typed, a spec's form with the specs it names to go to, and examples generated from it. - #69: The REPL shows what the server's own threads print, like a web server's handlers, above the prompt, with nREPL 1.5 or later and babashka.
- #71: The REPL shows the values sent to
tap>above the prompt, and,tapopens the last one in the inspector, with cider-nrepl 0.64 or later. - #70:
neorepl profileand,profiletime every call of the functions named, or of a namespace's, and show what was measured, withunprofileto stop and--clear, or,profile-clear, to start over, on cider-nrepl's profiler. - #74:
,setlists the REPL's settings and turns them on or off, C-x C-h and C-x C-q toggle eldoc and quiet, and~/.config/neorepl/config.ednsays what they start as. - #75: The REPL's
prettysetting, on C-x C-p, prints values pretty or plain, andprint-lengthandprint-levellimit how much of them it shows. - #77: C-x Enter in the REPL evaluates only the form at the cursor, or the one right before it, and brings back what's typed, with the cursor where it was.
- #77: The REPL's prompt shows whether the last evaluation worked, and how long it took, at its right, unless the
outcomesetting's off.
Changes
- #63: neorepl takes babashka 1.13.227 or newer, which has the JLine and socket classes it went without, and a test failure on a babashka server from 1.13.227 keeps its own file, as one in a helper does.
- #60: Eldoc looks names up in the background, so typing no longer waits up to half a second on the server for a function it hasn't looked up yet.
- #45: The REPL shows more of what reads like a special form as one: the forms macros expand into, like
let*, and the defining, binding and threading macros,deftest,->andwith-openamong them.
Bug fixes
- #54:
neorepl mcpsends a session's evaluations one at a time, so cancelling one no longer has nREPL drop the calls queued behind it, and a call cancelled while it waits is never sent. - #56: A ClojureScript test's error outside an assertion shows up at the test's line, rather than at line
NaN. - #56: Running a ClojureScript namespace's tests, or switching to them with
,ns, from the namespace they test no longer fails on piggieback as a circular dependency, and,nsloading a namespace no longer leaves anilin*2. - #58: Lookups take an empty list in a server's answer for the nil it stands for, so
docno longer prints[]for what nbb doesn't find, anddocandwhereno longer fail on a var made withinternwithout cider-nrepl. - #58: Code that throws on nbb fails the evaluation, which nbb's server says only with an
:ex, soneorepl evalexits 1 and the MCPevaltool reports an error. - #58:
source,macroexpandandaproposwork on Basilisp. - #58:
,nsswitches namespaces on nbb, whose server takes no notice ofin-ns. - #67:
neorepl serversays the server's up once its port file is there, rather than as nREPL says where it listens, before writing the file, so a command run right after finds it. - #70:
neorepl untraceand,untraceleave alone the functions the server's own tools call, which untracing traced first, taking the server down. - #74: A reload right after jack-in, by
,autoreloadorneorepl eval --reload, waits for the one jack-in starts in the background, rather than racing it.