Abstract
In model-driven software development (MDSD) projects, frequently domain experts and developers work together on the same model. However, they have quite different preferences concerning tools for working with a model. While developers require a powerful integrated development environment (IDE), domain experts are overwhelmed by the amount of functionality of an IDE and its confusing user interface. They prefer a simple editor, often provided as a web application, which does not require a local installation. Currently, both stakeholders typically agree on a common tool, which is frustrating for at least one of them. The Language Server Protocol (LSP) is a standard that aims to include language smarts into simple editors without turning them into IDEs. Originally, it has been designed for programming languages. In the present paper, we will give evidence based on a case study and a corresponding SWOT analysis that it is even more beneficial for a textual domain-specific language (DSL) as it is often used in MDSD. We will focus on the language workbench Xtext which supports the LSP. In particular, we will investigate how the LSP can be used to integrate a DSL into different development tools (editors and IDEs). Supplementing the SWOT analysis, we have also evaluated the practical relevance of the LSP.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
Arnold, K., Gosling, J., Holmes, D.: The Java Programming Language. Addison Wesley Professional, Boston (2005)
Atom: A hackable text editor for the 21st century (2019). https://atom.io/
BSP: Build server protocol (2019). https://github.com/scalacenter/bsp
Bünder, H.: Decoupling language and editor – the impact of the language server protocol on textual domain-specific languages. In: Hammoudi, S., Ferreira, P.L., Selić, B. (eds.) Proceedings of the 7\(^{th}\) International Conference on Model-Driven Engineering and Software Development (MODELSWARD 2019), pp. 131–142. Prag (2019). https://doi.org/10.5220/0007556301310142, publication status: Published
Campagne, F.: The MPS Language Workbench: Meta Programming System, 3rd edn. Campagnelab, New York (2016). version 1.5.1 edn
Eclipse: Eclipse LSP4E (2018). https://projects.eclipse.org/projects/technology.lsp4e
Fette, I., Melnikov, A.: The websocket protocol. Technical report (2011)
Fowler, M.: Inversion of control containers and the dependency injection pattern (2004)
Fowler, M.: Language workbenches: The killer-app for domain specific languages (2005). https://www.martinfowler.com/articles/languageWorkbench.html
Gamma, E., Beck, K.: Contributing to Eclipse: Principles, Patterns, and Plug-ins. Addison-Wesley Professional, Boston (2004)
Helms, M.M., Nixon, J.: Exploring SWOT analysis - where are we now?: a review of academic research from the last decade. J. Strategy Manag. 3(3), 215–251 (2010). https://doi.org/10.1108/17554251011064837
JetBrains: IntelliJ IDEA (2018). https://www.jetbrains.com/idea/
Kats, L.C., Visser, E.: The spoofax language workbench: rules for declarative specification of languages and IDEs. In: Proceedings of the ACM International Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA 2010, pp. 444–463. ACM, New York (2010). https://doi.org/10.1145/1869459.1869497
Kichwas Coders: Debugging protocol vs. language server protocol (2018). https://kichwacoders.com/2017/11/08/debug-protocol-vs-language-server-protocol/
Krahn, H., Rumpe, B., Völkel, S.: Efficient editor generation for compositional DSLs in eclipse. arXiv preprint arXiv:1409.6625 (2014)
Lamb, L., Robbins, A.: Learning the vi Editor, 6th edn. O’Reilly & Associates, Sebastopol (1998)
Maróti, M., et al.: Next generation (meta) modeling: web-and cloud-based collaborative tool infrastructure. In: MPM@ MoDELS, vol. 1237, pp. 41–60 (2014)
Microsoft: Code editing. Redefined (2018). https://code.visualstudio.com/
Microsoft: Implementations - language servers (2018). https://microsoft.github.io/language-server-protocol/implementors/servers/
Microsoft: Language server protocol specification - initialize (2018). https://microsoft.github.io/language-server-protocol/specification#initialize
Microsoft: Monaco editor - about (2018). https://microsoft.github.io/monaco-editor/
Microsoft: Overview - what is the language server protocol (2018). https://microsoft.github.io/language-server-protocol/overview
Mikkonen, T., Taivalsaari, A.: Using JavaScript as a real programming language (2007)
Spönemann, M.: The language server protocol in Java (2018). https://typefox.io/the-language-server-protocol-in-java
Popoola, S., Carver, J., Gray, J.: Modeling as a service: a survey of existing tools. In: MODELS (Satellite Events), pp. 360–367 (2017)
Rodriguez-Echeverria, R., Izquierdo, J.L.C., Wimmer, M., Cabot, J.: An LSP infrastructure to build EMF language servers for web-deployable model editors. In: Proceedings of the Second Workshop on Model-Driven Engineering Tools (MDETools 2018), pp. 1–10. CEUR (2018)
Rodriguez-Echeverria, R., Izquierdo, J.L.C., Wimmer, M., Cabot, J.: Towards a language server protocol infrastructure for graphical modeling. In: Proceedings of the 21th ACM/IEEE International Conference on Model Driven Engineering Languages and Systems, pp. 370–380. MODELS 2018. ACM, New York (2018). https://doi.org/10.1145/3239372.3239383
Sourcegraph: Languageserver.org (2018). https://langserver.org/
Stroustrup, B.: The C++ Programming Language. Pearson Education India, Bengaluru (2000)
Theia.org: Theia - cloud and desktop IDE (2018). https://www.theia-ide.org
Tomassetti, F.: The complete guide to (external) domain-specific languages (2017). https://tomassetti.me/domain-specific-languages
Vogel, L., Milinkovich, M.: Eclipse Rich Client Platform. Vogella series, Lars Vogel (2015). https://books.google.de/books?id=AC4_CQAAQBAJ
Vogel, L., Beaton, W.: Eclipse IDE: Java Programming, Debugging, Unit Testing, Task Management and Git Version Conrol with Eclipse, 3rd edn. Vogella Series, Vogella, Lexington (2013)
Völter, M.: DSL Engineering: Designing, Implementing and Using Domain-Specific Languages. CreateSpace Independent Publishing Platform, Lexington (2013)
Xtext: Xtext 2.11.0 release notes (2017). https://www.eclipse.org/Xtext/releasenotes.html#/releasenotes/2017/02/01/version-2-11-0
Xtext: Idea support (2018). https://www.eclipse.org/Xtext/releasenotes.html
Yakindu: Yakindu solidity tools (2019). https://yakindu.github.io/solidity-ide/
Author information
Authors and Affiliations
Corresponding authors
Editor information
Editors and Affiliations
Appendix: Syntax of Entity DSL in Xtext Format
Appendix: Syntax of Entity DSL in Xtext Format
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this paper
Cite this paper
Bünder, H., Kuchen, H. (2020). Towards Multi-editor Support for Domain-Specific Languages Utilizing the Language Server Protocol. In: Hammoudi, S., Pires, L., Selić, B. (eds) Model-Driven Engineering and Software Development. MODELSWARD 2019. Communications in Computer and Information Science, vol 1161. Springer, Cham. https://doi.org/10.1007/978-3-030-37873-8_10
Download citation
DOI: https://doi.org/10.1007/978-3-030-37873-8_10
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-37872-1
Online ISBN: 978-3-030-37873-8
eBook Packages: Computer ScienceComputer Science (R0)