我期待为Scala创建自己的IDE。这应该是一件容易的事情,而不是一个完全成熟的事情。尽管如此,它应该具有智能自动完成功能(Aka intellisense)的基本功能之一。由于缺乏文档,我向这个社区寻求帮助。我期待制作一个基本代码片段,以便将其添加到我当前的代码中。这就是我到目前为止所做的:
val engine = new ScriptEngineManager().getEngineByName("scala")
val settings = engine.asInstanceOf[scala.tools.nsc.interpreter.IMain].settings
// MyScalaClass is just any class in your project
settings.embeddedDefaults[TestClass]
settings.usejavacp.value = true
val reporter = new StoreReporter()
val compiler = new Global(settings, reporter)
val r = new Response[Unit]
val af = AbstractFile.getFile("/home/me/test.txt")
val filePath = af.path
val content = scala.io.Source.fromFile(filePath).mkString
val sf = new BatchSourceFile(af, content)
val pos = new OffsetPosition(sf, content.length-1)
println("Content: ")
println (content)
println("Offset: "+content.length)
val allFiles = List(sf)
compiler.askReload(allFiles, r)
val response = new Response[List[compiler.Member]]
compiler.askTypeCompletion(pos, response)
//compiler.askScopeCompletion(pos, response)
val responseList = response.get(15000)
println("Size: "+responseList.size)
responseList.foreach(println _)
“responseList”它很空了......
答案 0 :(得分:0)
如果没有看到实际的测试代码,那就太难了。您可能需要在askTypeCompletion
(基本上是类型成员)与askScopeCompletion
之间选择一些逻辑。如果没有" dot"在你的左边,askTypeCompletion
可能找不到任何东西。
您可以查看它的tested。