11# Changelog
22
3- ## 0.1 .0-snapshot (unreleased)
3+ ## 0.2 .0-snapshot (unreleased)
44
5- Initial prototype.
5+ ## 0.1.0 (2026-05-11)
66
7- - TCP prepl client with a small EDN-ish reader (now handles maps,
7+ Initial release.
8+
9+ - TCP prepl client with a small EDN-ish reader (handles maps,
810 vectors, and lists with simple leaf values).
911- Two-socket session model: a user socket drives the REPL with raw
1012 streaming output, and a separate tool socket carries helper-command
1113 requests with reliable request/response correlation via a small
1214 ` port.tooling/-eval ` bootstrap.
15+ - ` M-x port ` jacks in: detects ` deps.edn ` / ` project.clj ` / ` bb.edn ` ,
16+ picks a free port, spawns a JVM running a prepl server, polls until
17+ reachable, and connects. If a session is already active it just
18+ pops to the REPL, SLIME-style.
19+ - Single-buffer REPL that renders ` :ret ` , ` :out ` , ` :err ` , and ` :tap `
20+ messages. Eldoc, completion-at-point, and persistent input history
21+ are wired into the prompt; killing the REPL buffer disconnects the
22+ session.
23+ - Persistent REPL input history. Each REPL buffer reads/writes
24+ ` <project-root>/.port-history ` (configurable via
25+ ` port-repl-history-file ` ); ` M-p ` / ` M-n ` walk the history across
26+ sessions. Capacity is ` port-repl-history-size ` (default 1000)
27+ and adjacent duplicates are dropped.
28+ - Interactive eval commands: last-sexp, defun-at-point, region, buffer.
29+ Values returned through the tool-socket path are pretty-printed
30+ via ` clojure.pprint ` , capped by ` port-print-length ` (default 50)
31+ and ` port-print-level ` (default 5). Multi-line results are
32+ truncated to the first line in the minibuffer; the full text
33+ appears in the REPL when ` port-eval-display' is ` both'.
34+ - Helper commands powered by Clojure evaluation: doc, source, apropos,
35+ macroexpand-1, macroexpand, load-file, set-ns.
1336- Eldoc support: arglists for the function whose call surrounds point,
1437 resolved on the tool socket and delivered asynchronously via
1538 ` eldoc-documentation-functions ` .
@@ -20,28 +43,11 @@ Initial prototype.
2043 the source lives inside a jar, the file's contents are slurped
2144 over the tool socket and shown in a read-only ` *port-jar: ...* `
2245 buffer.
23- - ` M-x port ` jacks in: detects ` deps.edn ` / ` project.clj ` , picks a free
24- port, spawns a JVM running a prepl server, polls until reachable, and
25- connects. If a session is already active it just pops to the REPL,
26- SLIME-style.
27- - Single-buffer REPL that renders ` :ret ` , ` :out ` , ` :err ` , and ` :tap `
28- messages.
29- - Interactive eval commands: last-sexp, defun-at-point, region, buffer.
30- Values returned through the tool-socket path are pretty-printed
31- via ` clojure.pprint ` , capped by ` port-print-length ` (default 50)
32- and ` port-print-level ` (default 5). Multi-line results are
33- truncated to the first line in the minibuffer; the full text
34- appears in the REPL when ` port-eval-display' is ` both'.
35- - Helper commands powered by Clojure evaluation: doc, source, apropos,
36- macroexpand-1, macroexpand, load-file, set-ns.
37- - ` port-mode ` minor mode for Clojure source buffers.
38- - Persistent REPL input history. Each REPL buffer reads/writes
39- ` <project-root>/.port-history ` (configurable via
40- ` port-repl-history-file ` ); ` M-p ` / ` M-n ` walk the history across
41- sessions. Capacity is ` port-repl-history-size ` (default 1000)
42- and adjacent duplicates are dropped.
4346- Structured stacktrace buffer (` *port-stacktrace* ` ): on `: exception
4447 true` (and on ` : tag : err ` from the tool socket) Port renders a
4548 concise one-line summary inline and pops a navigable buffer with
4649 the cause chain, ex-data, and a filtered trace. ` RET ` on a frame
4750 jumps to the source when the file resolves locally.
51+ - ` port-mode ` minor mode for Clojure source buffers. No hard
52+ dependency on ` clojure-mode ` ; hook it onto whichever Clojure mode
53+ you use (` clojure-mode ` , ` clojure-ts-mode ` , or both).
0 commit comments