You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Extract a shared racket/prologos/repl-session.rkt (struct + load-prelude! + eval-in-session) used by BOTH lsp/server.rkt and repl.rkt (Path A — DRY). Requires decoupling the prelude-cache/observatory from lsp-state; re-validate tests/test-lsp-repl-01.rkt + tests/test-repl-session-01.rkt.
process-sexp-input has the same persistence gap as the (now-fixed) process-ws-input — sexp-mode REPL evals still use per-form process-command. Route through the session too (or note sexp mode is deprecated).
Verify defmacro/deftype at the REPL now that process-ws-input routes everything through process-string-ws (the old per-form special-casing was dropped, mirroring the LSP). Confirm they still register + persist.
None are blocking; the REPL is unblocked for interactive use.
Follow-ups from the gh#73 fix (e3e824c, Path B):
racket/prologos/repl-session.rkt(struct + load-prelude! + eval-in-session) used by BOTHlsp/server.rktandrepl.rkt(Path A — DRY). Requires decoupling the prelude-cache/observatory fromlsp-state; re-validatetests/test-lsp-repl-01.rkt+tests/test-repl-session-01.rkt.:env,:specs,:macros,:instances,:methods,:satisfies,:type,:expand*readcurrent-*params directly, so after REPL (repl.rkt / Emacs) loses ns/prelude/def context between evals — mirror the LSP session model #73 they see module-load defaults (empty) rather than the session. Wrap them in a read-only parameterize-from-session.process-sexp-inputhas the same persistence gap as the (now-fixed)process-ws-input— sexp-mode REPL evals still use per-formprocess-command. Route through the session too (or note sexp mode is deprecated).defmacro/deftypeat the REPL now thatprocess-ws-inputroutes everything throughprocess-string-ws(the old per-form special-casing was dropped, mirroring the LSP). Confirm they still register + persist.None are blocking; the REPL is unblocked for interactive use.