As webmodelica developer, I can access all functions required to implement the Webmodelica service via LSP, so the development of a new Webmodelica instance will be easy and painless #18
In order to develop a new Version of Webmodelica that is also based on LSP, we need the following functionality:
[ ] Recursively get a list of fully qualified names of models defined within a class or file, in order to select the Model that should be simulated. There should be an option to only include models that can actually be simulated in this list, in order to present only meaningful choices to the user.
[ ] Get a list of model parameters, in order to allow users to change them during the simulation. There should be an option to also list parameters of model components recursively.
[ ] Get the simulation parameters (StartTime, StopTime, Tolerance, Interval) defined in model annotations.
[ ] Access vendor-specific annotations, in order to read Webmodelica-specific information such as the main model within a package.
[ ] Simulate a model identified by its fully qualified name, in order to present simulation results and simulation errors to the user.
[ ] Receive simulation results, in order to present them to the user in a plot. Depending on the design of Webmodelica, it might either be better to transfer the data directly via LSP or to just report the location of the result file in order to save bandwith. Both options should be provided by Mo|E.
[ ] Receive HTML documentation of a class by its fully qualified name, in order to display an overview of a model to the user.
[x] Receive compile, instantiation and model check errors, in order to quickly find bugs introduced by changes to the model in the web interface.
[x] Receive code completion hints, in order to facilitate editing models in the web interface - especially for people who are not familiar with the model structure.
[ ] (Optional, but would be very nice): Obtain an SVG rendering of the diagram and icon view of a class by its fully qualified name.
In order to develop a new Version of Webmodelica that is also based on LSP, we need the following functionality: