0

스칼라 용으로 내 자신의 IDE를 만들기를 고대하고 있습니다. 완전한 무언가가 아닌 쉬운 일이되어야합니다. 그것도 지능적인 자동 완성 (일명 인텔리 센스)을 갖추어야하는 기본적인 기능 중 하나입니다. 문서가 부족하기 때문에이 커뮤니티에 도움을 요청하고 있습니다. 현재 코드에 추가하기 위해 기본적인 스 니펫을 만들기를 고대하고 있습니다. 이것은 내가 지금까지 무엇을 가지고 :지능형 자동 완성을 위해 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 (기본적으로 타입 멤버) vs askScopeCompletion 중에서 선택하는 로직이 필요할 것입니다. 왼쪽에 "점"이 없다면 askTypeCompletion은 아마도 아무 것도 찾지 못할 것입니다.

tested의 모습을 볼 수 있습니다.