0

Я с нетерпением жду, чтобы создать свою собственную среду IDE для Scala. Это должно быть что-то легкое, а не полноценное. Тем не менее, одна из основных особенностей должна иметь интеллектуальный автозаполнение (Aka intellisense). Из-за отсутствия документации я прошу об этом сообществе. Я с нетерпением жду создания базового фрагмента, чтобы добавить его в мой текущий код. Это то, что я до сих пор:Использование scala.tools.nsc.interpreter для интеллектуального автозаполнения

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

Это трудно, не видя фактический тестовый код. Вероятно, вам нужно иметь некоторую логику, которая выбирает между askTypeCompletion (в основном, тип членов) против askScopeCompletion. Если у вас нет «точки», askTypeCompletion, вероятно, ничего не найдет.

Вы можете посмотреть, как это tested.