Skip to content

REPL polish after #73 (shared session extraction + session-aware commands) #74

Description

@hierophantos

Follow-ups from the gh#73 fix (e3e824c, Path B):

  1. 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.
  2. Make the introspection meta-commands session-aware:env, :specs, :macros, :instances, :methods, :satisfies, :type, :expand* read current-* 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.
  3. 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).
  4. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions