Editing support for software languages: implementation practices in language server protocols
- Djonathan Barros,
- ,
- Wesley K. G. Assunção,
- Thorsten Berger
- Western Parana State University,
- Ruhr University Bochum,
- Johannes Kepler University Linz,
- Chalmers University of Technology
Research Output:
Conference Article in Proceeding or Book/Report chapter
Article in proceedings
Peer-reviewOpen access
Publication Information
Output type
Research Output:
Conference Article in Proceeding or Book/Report chapter
Article in proceedings
Peer-reviewOriginal language
EnglishPages from-to (Number of pages)
Pages 232 - 243Publication milestones
- Published - 23/10/2022
Publication status
Published - 23/10/2022
Publisher
Association for Computing Machinery, United StatesISBN (Electronic)
9781450394666Publication IDs
- ORCID: /0000-0002-2604-0487/work/130083233
- Scopus: 85141876964
Host publication title
Proceedings of the 25th International Conference on Model Driven Engineering Languages and SystemsAbstract
Effectively using software languages, be it programming or domain-specific languages, requires effective editing support. Modern IDEs, modeling tools, and code editors typically provide sophisticated support to create, comprehend, or modify instances---programs or models---of particular languages. Unfortunately, building such editing support is challenging. While the engineering of languages is well understood and supported by modern model-driven techniques, there is a lack of engineering principles and best practices for realizing their editing support. Especially domain-specific languages---often created by smaller organizations or individual developers, sometimes even for single projects---would benefit from better methods and tools to create proper editing support.
We study practices for implementing editing support in 30 so-called language servers---implementations of the language server protocol (LSP). The latter is a recent de facto standard to realize editing support for languages, separated from the editing tools (e.g., IDEs or modeling tools), enhancing the reusability and quality of the editing support. Witnessing the LSP's popularity---a whopping 121 language servers are in existence today---we take this opportunity to analyze the implementations of 30 language servers, some of which support multiple languages. We identify concerns that developers need to take into account when developing editing support, and we synthesize implementation practices to address them, based on a systematic analysis of the servers' source code. We hope that our results shed light on an important technology for software language engineering, that facilitates language-oriented programming and systems development, including model-driven engineering.
We study practices for implementing editing support in 30 so-called language servers---implementations of the language server protocol (LSP). The latter is a recent de facto standard to realize editing support for languages, separated from the editing tools (e.g., IDEs or modeling tools), enhancing the reusability and quality of the editing support. Witnessing the LSP's popularity---a whopping 121 language servers are in existence today---we take this opportunity to analyze the implementations of 30 language servers, some of which support multiple languages. We identify concerns that developers need to take into account when developing editing support, and we synthesize implementation practices to address them, based on a systematic analysis of the servers' source code. We hope that our results shed light on an important technology for software language engineering, that facilitates language-oriented programming and systems development, including model-driven engineering.
Publication metrics
PlumX, opens in new tab
Citations
16
Captures
10
Access to documents
Related Event
Title
International Conference on Model Driven Engineering Languages and Systems
Event type
ConferenceDegree of recognition
International eventDate
23/10/2022 - 28/10/2022Location
MontrealCanada
