Implementing the Language Server Protocol for the OpenModelica Modelling Language
2024 (English)Independent thesis Basic level (degree of Bachelor), 10,5 credits / 16 HE credits
Student thesisAlternative title
Implementering av Language Server-protokollet för modelleringsspråket OpenModelica (Swedish)
Abstract [en]
With the growing use of Integrated Development Environments (IDEs), software developers have gotten used to various language integrations when writing code in editors, such as completions, goto definition, diagnostics, and information on hover. Popular programming languages are typically supported by a wide range of different IDEs, but smaller languages often have few editor integrations—or none at all. The Language Server Protocol (LSP) defines an API that makes it possible to implement language integrations that work with any editor that supports it, making it easier to develop integrations for a language across multiple IDEs. This work aims to implement a basic language server for the equation-based modelling language OpenModelica, which currently lacks proper IDE support. The solution is developed with incremental analysis in mind while considering potential unique challenges in implementing a language server for an equation-based language. We devise and present an extensible, multilayered approach and use it to implement incremental multi-file support and goto declaration. We conclude that these features entail no significant challenges for equation languages in particular.
Abstract [sv]
Med den ökande användningen av integrerade utvecklingsmiljöer (IDE:er) har mjukvaruutvecklare vant sig vid olika språkintegrationer i textredigerare, såsom "completions", "goto definition", diagnostik och information vid hovring. Populära programspråk har vanligtvis stöd av flera olika IDE:er, men mindre språk har ofta få integrationer med textredigerare—eller inga alls. Language Server Protocol (LSP) definierar ett API som gör det möjligt att implementera språkintegrationer som fungerar med alla textredigerare som stödjer protokollet, vilket gör det lättare att utveckla integrationer för ett språk för flera IDE:er. Detta arbete syftar till att implementera en enkel språkserver för det ekvationsbaserade modelleringsspråket OpenModelica, som för nuvarande saknar stöd i IDE:er. Lösningen utvecklas med inkrementell analys i åtanke, tillsammans med potentiella unika utmaningar kopplade till utvecklingen av en språkserver för ett ekvationsbaserat språk. Vi konstruerar och presenterar en modell med flera lager och som går att vidareutveckla samt använder den för att implementera hantering av flera filer och "goto declaration". Vi drar slutsatsen att dessa funktioner inte innebär några särskilda betydande utmaningar för ekvationsspråk.
Place, publisher, year, edition, pages
2024. , p. 10
Keywords [en]
Modelica, OpenModelica, Language Server Protocol, IDE
Keywords [sv]
Modelica, OpenModelica, Language Server Protocol, IDE
National Category
Computer Sciences
Identifiers
URN: urn:nbn:se:liu:diva-205888ISRN: LIU-IDA/LITH-EX-G--24/046--SEOAI: oai:DiVA.org:liu-205888DiVA, id: diva2:1883042
Subject / course
Computer Programming
Presentation
2024-06-14, Herbert Simon, Mäster Mattias Väg 7, 583 30 Linköping, 13:00 (Swedish)
Supervisors
Examiners
Note
2024-08-122024-07-082024-08-12Bibliographically approved