Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
大魔头
@notyy
@Centaur
我想知道scalaconsole编辑窗的代码是怎么执行的,从什么地方入手看代码?
我要做个类似云IDE的东西
···
private def runScript(script: String) = {
commandQueue.put('Normal, script)
}
···
···scala
private def runScript(script: String) = {
commandQueue.put('Normal, script)
}
···
oldpig
@Centaur
你应该是要做web版吧
那上面这些都没用,这些主要是javafx环境用的
大魔头
@notyy
是的
oldpig
@Centaur
resources/org/scalaconsole/fxui/main/ace.html
主要看这个文件
大魔头
@notyy
浏览器上有ace这个js库,可以做web ide,用户提交代码时,发到服务端执行
我看看
oldpig
@Centaur
scalaconsole其实是用webview展示的这个html
大魔头
@notyy
输入的script怎么执行的呢?
原来你这个就是用的ace
oldpig
@Centaur
执行就是在scala的ILoop里执行的
大魔头
@notyy
搜到了,我都不知道还有这东西,多谢了
oldpig
@Centaur
最核心的运行代码在src/org/scalaconsole/fxui/main/MainStage.scala里
大魔头
@notyy
太棒了,我抄一下 :+1:
大魔头
@notyy
/** Reads using standard JDK API */
class SimpleReader(
  in: BufferedReader,
  out: JPrintWriter,
  val interactive: Boolean)
extends InteractiveReader
这个Reader里面有个out,感觉怪怪得
大魔头
@notyy
ILoop这个流式的处理机制和我的Request,response机制有点不匹配~还得调整调整 :worried:
大魔头
@notyy
其实还简单了,ILoop对象里封装了一个run方法我可以直接用
大魔头
@notyy
@Centaur 我看你有些代码好像是为了让输入和ILoop的输出交错着显示,我看到ILoop对象里有个runForTranscript貌似能达到同样的目的