@Dierk Thank you!
As I understand, as plugin developers we need to provide support for Java inline, and we'll examine what we can do with it.
And as possible future Frege developer, I appreciate solutions you provided
Writing the whole plugin in Frege sounds like a very ambitious task that we are not ready for yet :-)
Globalfor type inference. As we understand,
Globalis the result of parsing of the whole file. So there is a question: can we incrementally keep
Globalupdated? I mean: if an user changes a small part of file, can we get an actual
Globalwithout re-parsing the whole file? If so, could you, please, give us a hint how to do it or where we can see an example of that.
Globalis that we build a PSI tree and resolve all references on our own. As we understand, if we use
Global, the compiler will do it one more time. Can we reuse PSI trees and references somehow?
Globalin the way you mentioned. There is a more flexible (yet arguably less sophisticated) way to deal with this issue: one can use the
Interpreterjust like the REPLs do: https://github.com/Frege/frege-repl/blob/5701b6bbce25662b1ce172dd677a6fe2e058a885/frege-repl-core/src/main/frege/frege/repl/FregeRepl.fr#L556 . This allows to pass arbitrary strings for inspection (:type, :browse, etc.). That means that if you can partition the file into pieces that would compile separately, you can pass them into the Interpreter for inspection. In fact, that somehow mimics my working style when programming Frege where I have the REPL running, load my current file, reload on changes, and work with the REPL for compiler feedback and type information ;-)