Hi,
is there a way to switch off the REPL and then on again, from a task?
Specifically, I want to start a julia instance and pass a script in with the –L parameter that will open a socket, listen for connections and the process messages from that socket. This server listening code is all wrapped in @async macro calls. So when I start things this way, julia shows the REPL and at the same time listens for incoming messages. I can use the REPL etc. This is exactly what I want.
But when I receive a message, I want to temporarily switch the REPL off, i.e. it should visually disappear while I process that message, and then I want to switch it back on once I’m done processing that message.
Can that be done somehow?
Thanks,
David
--
David Anthoff
University of California, Berkeley
Ah, I should have been clearer. I just want to hide the prompt temporarily.
The complete setup is slightly more complicated, but you can imagine just the following: start a normal julia REPL. Then include a file that will start a server listening on some socket. This server is all async, so as soon as the server is started, the prompt appears again and one can use this REPL window in the normal way. Now some other process connects to the socket, and sends some code that this server will eval. Before the server evals this code, I would like it to switch off the prompt, then eval the code, then switch the prompt on again.
The setup is that VS Code starts a new julia process, and shows the normal julia REPL in a terminal emulation within VS Code. This instance is running the server I just described. The julia VS Code extension that will send code to this REPL window if a user hits Ctrl+Enter in any of the open editor windows.
Not sure this is much clearer, let me know if you need more info!
Best,
David
The complete setup is slightly more complicated, but you can imagine just the following: start a normal julia REPL. Then include a file that will start a server listening on some socket. This server is all async, so as soon as the server is started, the prompt appears again and one can use this REPL window in the normal way. Now some other process connects to the socket, and sends some code that this server will eval. Before the server evals this code, I would like it to switch off the prompt, then eval the code, then switch the prompt on again.
I think most of them just have the code pasted into the REPL. That would work for us as well, but then we can’t do things like eval code in the context of a specific module.
From: julia...@googlegroups.com [mailto:julia...@googlegroups.com] On Behalf Of cdm
Sent: Monday, November 14, 2016 6:27 PM
To: julia-users <julia...@googlegroups.com>
Subject: Re: [julia-users] Re: Hide and disable REPL
do you know of there are analogs of your process flow
That deletes everything, but really I just want to hide the current prompt. So say this is how the console looks:
````
julia> println(5)
5
julia>function foo(x)
println(x)
````
So in this case the users is in the middle of entering something new into the REPL (i.e. the definition of foo). Assume that at this point my background task receives a message. I then want to be able to delete line 3+5, and position the cursor on column 1 line 3. Then I’ll execute the code that was sent to the server. Once that is finished, I want to print line 3+4, as it was before I hid the current prompt, again, starting at whatever the current cursor position is.
For example, say the background task received some code that printed “Foooooo” to the console, then I want the console to look like this, immediately after that code was executed:
````
julia> println(5)
5
Foooooo
julia>function foo(x)
println(x)
````
I.e. the user could continue editing the stuff that he/she was working on before the background task briefly took over.
Thanks,
David
From: julia...@googlegroups.com [mailto:julia...@googlegroups.com] On Behalf Of Steven G. Johnson
Sent: Tuesday, November 15, 2016 5:29 AM
To: julia-users <julia...@googlegroups.com>
Subject: Re: [julia-users] Re: Hide and disable REPL
atreplinit(f) | |
Register a one-argument function to be called before the REPL interface is initialized in | |
interactive sessions; this is useful to customize the interface. |
That deletes everything, but really I just want to hide the current prompt.
<SNIP>