main = do c ← getChar
How to enter smth data to stdin?
Log window is read only. It is also not possible to stop this program.
Also this program blocks leksah if I run it in ghci mode. (if I select
"stop debug" menu, then leksah just closes down).
I am not sure how we should fix this. We can't send user input to the process that is being debugged using our command channel (our code waits for the prompt from ghci before sending commands).
If we set up some way to send data to stdin without waiting it may interfere with the GHCi commands we send (because it is still all going down the same pipe).
We need to find out if there is some way we can have separate stdin/stdout/stderr pipes for GHCi itself and the program GHCi is debugging.
In the mean time you could have you app open a socket or named pipe and write input to that from another terminal. Something like this (not tested)...
main = do
sock <- listenOn (PortNumber 8000)
-- Start a new terminal window (this command needs to be changed for OS X or Windows)
forkIO $ system "gnome-terminal -e \"telnet localhost 8000\""
(handle, _, _) <- accept sock -- Wait for the new terminal to connect
-- You might want to add a call to hSetBuffering here
line <- hGetLine handle
(You will need to add process and network to your package dependancies. Then Ctrl+R should add the import statements needed.)
This will allow interaction, but keep stdin clear for leksah to talk to ghci. Ideally you would keep stdout and stderr clear too and write to this socket instead, but Leksah should cope fairly well with arbitrary output.
> To unsubscribe, reply using "remove me" as the subject.
This is a known issue we have not addressed yet.