Skip to main content

Towards Multi-editor Support for Domain-Specific Languages Utilizing the Language Server Protocol

  • Conference paper
  • First Online:

Part of the book series: Communications in Computer and Information Science ((CCIS,volume 1161))

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

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

References

  1. Arnold, K., Gosling, J., Holmes, D.: The Java Programming Language. Addison Wesley Professional, Boston (2005)

    Google Scholar 

  2. Atom: A hackable text editor for the 21st century (2019). https://atom.io/

  3. BSP: Build server protocol (2019). https://github.com/scalacenter/bsp

  4. 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

  5. Campagne, F.: The MPS Language Workbench: Meta Programming System, 3rd edn. Campagnelab, New York (2016). version 1.5.1 edn

    Google Scholar 

  6. Eclipse: Eclipse LSP4E (2018). https://projects.eclipse.org/projects/technology.lsp4e

  7. Fette, I., Melnikov, A.: The websocket protocol. Technical report (2011)

    Google Scholar 

  8. Fowler, M.: Inversion of control containers and the dependency injection pattern (2004)

    Google Scholar 

  9. Fowler, M.: Language workbenches: The killer-app for domain specific languages (2005). https://www.martinfowler.com/articles/languageWorkbench.html

  10. Gamma, E., Beck, K.: Contributing to Eclipse: Principles, Patterns, and Plug-ins. Addison-Wesley Professional, Boston (2004)

    Google Scholar 

  11. 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

  12. JetBrains: IntelliJ IDEA (2018). https://www.jetbrains.com/idea/

  13. 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

  14. Kichwas Coders: Debugging protocol vs. language server protocol (2018). https://kichwacoders.com/2017/11/08/debug-protocol-vs-language-server-protocol/

  15. Krahn, H., Rumpe, B., Völkel, S.: Efficient editor generation for compositional DSLs in eclipse. arXiv preprint arXiv:1409.6625 (2014)

  16. Lamb, L., Robbins, A.: Learning the vi Editor, 6th edn. O’Reilly & Associates, Sebastopol (1998)

    MATH  Google Scholar 

  17. 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)

    Google Scholar 

  18. Microsoft: Code editing. Redefined (2018). https://code.visualstudio.com/

  19. Microsoft: Implementations - language servers (2018). https://microsoft.github.io/language-server-protocol/implementors/servers/

  20. Microsoft: Language server protocol specification - initialize (2018). https://microsoft.github.io/language-server-protocol/specification#initialize

  21. Microsoft: Monaco editor - about (2018). https://microsoft.github.io/monaco-editor/

  22. Microsoft: Overview - what is the language server protocol (2018). https://microsoft.github.io/language-server-protocol/overview

  23. Mikkonen, T., Taivalsaari, A.: Using JavaScript as a real programming language (2007)

    Google Scholar 

  24. Spönemann, M.: The language server protocol in Java (2018). https://typefox.io/the-language-server-protocol-in-java

  25. Popoola, S., Carver, J., Gray, J.: Modeling as a service: a survey of existing tools. In: MODELS (Satellite Events), pp. 360–367 (2017)

    Google Scholar 

  26. 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)

    Google Scholar 

  27. 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

  28. Sourcegraph: Languageserver.org (2018). https://langserver.org/

  29. Stroustrup, B.: The C++ Programming Language. Pearson Education India, Bengaluru (2000)

    Google Scholar 

  30. Theia.org: Theia - cloud and desktop IDE (2018). https://www.theia-ide.org

  31. Tomassetti, F.: The complete guide to (external) domain-specific languages (2017). https://tomassetti.me/domain-specific-languages

  32. Vogel, L., Milinkovich, M.: Eclipse Rich Client Platform. Vogella series, Lars Vogel (2015). https://books.google.de/books?id=AC4_CQAAQBAJ

  33. 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)

    Google Scholar 

  34. Völter, M.: DSL Engineering: Designing, Implementing and Using Domain-Specific Languages. CreateSpace Independent Publishing Platform, Lexington (2013)

    Google Scholar 

  35. Xtext: Xtext 2.11.0 release notes (2017). https://www.eclipse.org/Xtext/releasenotes.html#/releasenotes/2017/02/01/version-2-11-0

  36. Xtext: Idea support (2018). https://www.eclipse.org/Xtext/releasenotes.html

  37. Yakindu: Yakindu solidity tools (2019). https://yakindu.github.io/solidity-ide/

Download references

Author information

Authors and Affiliations

Authors

Corresponding authors

Correspondence to Hendrik Bünder or Herbert Kuchen .

Editor information

Editors and Affiliations

Appendix: Syntax of Entity DSL in Xtext Format

Appendix: Syntax of Entity DSL in Xtext Format

figure g

Rights and permissions

Reprints and permissions

Copyright information

© 2020 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics