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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions