Пример #1
0
    public static void Update()
    {
        while (updatedSockets.Count > 0)
        {
            Socket socket = updatedSockets.Dequeue();
            if (!socketCode.ContainsKey(socket))
            {
                continue;
            }
            string code = socketCode[socket];

            try {
                ClojureAssetPostprocessor.SetupLoadPath(); // TODO this is sloppy and should be moved

                var    result   = RT.var("unityRepl", "repl-eval-string").invoke(code, new AsyncReplTextWriter(socket));
                byte[] byteData = Encoding.ASCII.GetBytes(System.Convert.ToString(result));
                socket.BeginSend(byteData, 0, byteData.Length, 0, (ar) => { }, socket);

                output = "--> " + code + result + "\n" + output;
                socketCode.Remove(socket);
            } catch (System.IO.EndOfStreamException e) {
                // incomplete form, wait
            } catch (System.Exception e) {
                Debug.LogException(e);
                socketCode.Remove(socket);

                byte[] byteData = Encoding.ASCII.GetBytes(e.ToString());
                socket.BeginSend(byteData, 0, byteData.Length, 0, (ar) => { }, socket);
            }
        }
    }
Пример #2
0
 static ClojureRepl()
 {
     // TODO read from config
     ClojureAssetPostprocessor.SetupLoadPath();
     ClojureRepl.StartREPL();
 }