Closed DavyLandman closed 4 months ago
I don't see any reason not to implement the desired situation now. The more intermediate solutions we introduce the larger legacy we create.
The only reason we run the summarize on safe is because the current implementations are too slow to run during editing.
So let's have a build function that produces the same summaries. We can merge the output as we do know. And a simple analyzer contribution that also produces summaries for faster executing analyses.
This was the original plan which was delayed because the rascal type-checker was too slow. It follows the original design from the oopsla paper on IMP.
For backwards compatibility let's:
This is now implemented in #357 and released in v0.11.0
Is your feature request related to a problem? Please describe. Currently the summarizer is only run on a save. Apart from the issues with that (see #354), it also delays feedback to the user. I would like an option to run the summary as quickly as we can.
Describe the solution you'd like Give the
summarizer
a new kw param:bool runOnlyOnSave = true
that a user can turn off if they've written a fast-enough summarizer.Rascal-LSP would then run the summarizer on every change. Rate-limiting it based on the runtime of the past 5 summarizes of that file.
Describe alternatives you've considered Alternatives considered:
summarizer
that is run more frequentlybuild
contribution, that is triggered on save (like we had in eclipse). I think that due to the insights in #355, this might be an even better solution long term.Additional context