init commit
This commit is contained in:
@@ -35,7 +35,7 @@ defmodule CljElixir.NRepl.Handler do
|
||||
code = Map.get(msg, "code", "")
|
||||
|
||||
# Capture stdout inside the Agent process where eval actually runs
|
||||
{output, result} = SessionManager.eval_with_capture(manager, session, code)
|
||||
{output, result, ns} = SessionManager.eval_with_capture(manager, session, code)
|
||||
|
||||
responses = []
|
||||
|
||||
@@ -51,7 +51,7 @@ defmodule CljElixir.NRepl.Handler do
|
||||
responses =
|
||||
case result do
|
||||
{:ok, value} ->
|
||||
responses ++ [%{"id" => id, "session" => session, "value" => value, "ns" => "user"}]
|
||||
responses ++ [%{"id" => id, "session" => session, "value" => value, "ns" => ns}]
|
||||
|
||||
{:error, error} ->
|
||||
responses ++
|
||||
|
||||
@@ -87,21 +87,22 @@ defmodule CljElixir.NRepl.SessionManager do
|
||||
def handle_call({:eval_with_capture, id, code}, _from, state) do
|
||||
case Map.get(state.sessions, id) do
|
||||
nil ->
|
||||
{:reply, {"", {:error, "unknown session"}}, state}
|
||||
{:reply, {"", {:error, "unknown session"}, "user"}, state}
|
||||
|
||||
pid ->
|
||||
{output, result} =
|
||||
{output, result, ns} =
|
||||
Agent.get_and_update(
|
||||
pid,
|
||||
fn repl_state ->
|
||||
{output, eval_result, new_state} = eval_capturing_output(code, repl_state)
|
||||
ns = CljElixir.REPL.current_ns(new_state)
|
||||
|
||||
{{output, eval_result}, new_state}
|
||||
{{output, eval_result, ns}, new_state}
|
||||
end,
|
||||
:infinity
|
||||
)
|
||||
|
||||
{:reply, {output, result}, state}
|
||||
{:reply, {output, result, ns}, state}
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user