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.
翻译:语言服务器协议(LSP)改变了综合开发环境(IDES)领域,因为其将核心语言功能(编程)功能与编辑智能功能脱钩,从而降低了扩展一个IDE以支持一种语言所需的努力,这一概念是成功的,已被若干编程语言及其他语言采纳。这表现在对许多编程和规格语言(侧重于建模、推理或证明语言的语文)实施若干次LSP实施LSP(LSP)方面。然而,对于这些语言而言,LSP(LSP)的扩展与通常无法找到的编程语言的额外功能(编程语言,因此LSP不支持这些功能。这挫败了最初的LSP脱钩目标,因为迈向新的IDE需要再次实施ad-hoc LSP的扩展。在本文中,我们提出了保守的扩展LSP(LSP),为标准协议提供了第一个建议,将规格语言的支持与IDE的脱钩。我们希望我们的研究吸引更大的社区,并激励需要联合工作队,导致标准化的LSP扩展语言的具体规格需求。