The Specification Language Server Protocol: A Proposal for Standardised LSP Extensions

08/06/2021
by   Jonas Kjær Rask, et al.
0

The Language Server Protocol (LSP) changed the field of Integrated Development Environments(IDEs), as it decouples core (programming) language features functionality from editor smarts, thus lowering the effort required to extend an IDE to support a language. The concept is a success and has been adopted by several programming languages and beyond. This is shown by the emergence of several LSP implementations for the many programming and specification languages (languages with a focus on modelling, reasoning, or proofs). However, for such languages LSP has been ad-hocly extended with the additional functionalities that are typically not found for programming languages and thus not supported in LSP. This foils the original LSP decoupling goal, because the move towards a new IDE requires yet another re-implementation of the ad-hoc LSP extension. In this paper we contribute with a conservative extension of LSP providing a first proposal towards a standard protocol decoupling the support of specification languages from the IDE. We hope our research attracts the larger community and motivates the need of a joint task force leading to a standardised LSP extension serving the particular needs of specification languages.

READ FULL TEXT
research
06/27/2020

On the Evolution of Programming Languages

This paper attempts to connects the evolution of computer languages with...
research
10/07/2021

Toward a Theory of Programming Language and Reasoning Assistant Design: Minimizing Cognitive Load

Current approaches to making programming languages and reasoning assista...
research
12/04/2017

Layer by layer - Combining Monads

We develop a method to incrementally construct programming languages. Ou...
research
01/04/2023

Implementation of hyperbolic complex numbers in Julia language

Background: Hyperbolic complex numbers are used in the description of hy...
research
02/18/2022

Debootstrapping without Archeology: Stacked Implementations in Camlboot

Context: It is common for programming languages that their reference imp...
research
04/09/2023

Dependently Typing R Vectors, Arrays, and Matrices

The R programming language is widely used in large-scale data analyses. ...
research
08/02/2011

Specifying and Staging Mixed-Initiative Dialogs with Program Generation and Transformation

Specifying and implementing flexible human-computer dialogs, such as tho...

Please sign up or login with your details

Forgot password? Click here to reset