|Re: [ide-dev] The LangEclipseIDE project|
On 07/03/2015 06:35 PM, Bruno Medeiros wrote:
Ok, great to hear. I'll have a look if there is something we could use.
Calling command line tools is not necessary in Scala IDE, since all the tools are already written in Scala and therefore can simply added as a library to the IDE.
We use the reconciliation time because the Scala compiler is slow as hell and takes enormous resources during compilation. It can't be aborted during compilation of a single file either. Therefore, calling it on every keystroke would more or less be impossible.
Given that the Scala compiler is so slow a lot of APIs can't be used or make some features difficult to implement. Code completion for example can take some seconds before completion. Because the JDT API just takes a list of completions we have to block users until the compiler is finished. If the API would take a potentially infinite stream of completions, we wouldn't have to block but could show new completions once they appear. This forces us more or less to re-implement all APIs in a non-blocking/reactive way and makes it more difficult to use work from others because for most languages one does not need to think about the compiler being to slow.
Back to the top