VDM Language Support in Visual Studio CodeVDM-VSCode is an extension for Visual Studio Code (VS Code) that provides language support for the VDM dialects VDM-SL, VDM++ and VDM-RT. The extension utilises a language server powered by VDMJ that is developed by Nick Battle. *If you are used to the Overture Tool IDE and would like to keep that syntax highlighting we suggest that you use the color theme Eclipse Classic Light or another eclipse color theme. WikiCheck out the wiki for the extension for information about how to get started, learning how to use the features, see developer notes and much more! Find the wiki at: https://github.com/overturetool/vdm-vscode/wiki InstallationIn Visual Studio Code just type @id:overturetool.vdm-vscode in the Extensions view Search box or type vdm and select VDM VSCode. RequirementsWeb extensionFor now only the following limited feature set is available in the web version of the extension:
Thus, most feature contributions relates to the desktop version of the extension. UsageOpen a folder (single VDM project) or a workspace (multiple VDM projects) and then open a VDM file( Click here for an overview of how to use the features of the extension. SettingsThis extension contributes a number of settings. Click here for a detailed overview. PublicationsJonas K. Rask, Frederik P. Madsen, Nick Battle, Hugo D. Macedo and Peter G. Larsen, Visual Studio Code VDM Support, The 18th Overture Workshop, December 2020 [PDF] Jonas K. Rask, Frederik P. Madsen, Nick Battle, Hugo D. Macedo and Peter G. Larsen, The Specification Language Server Protocol: A Proposal for Standardised LSP Extensions, The 6th Workshop on Formal Integrated Development Environment, May 2021 [PDF] Jonas K. Rask and Frederik P. Madsen, Decoupling of Core Analysis Support for Specification Languages from User Interfaces in Integrated Development Environments, Master's Thesis, Department of Engineering, Aarhus University, January 2021 [PDF] Change LogSee change log here. IssuesSubmit an issue if you find a bug or have a suggestion for improving the extension. ContributingContributions are very welcome. To do so either open an issue or feature request or fork the repo and submit a pull request. For further information see here. FeaturesFollowing is a select number of features. For the full up to date list see the wiki.
Future Work
|