Skip to content

OpenModelica/modelica-language-server

Repository files navigation

Modelica Language Server

Build

A very early version of a Modelica Language Server based on OpenModelica/tree-sitter-modelica.

For syntax highlighting install enxtension AnHeuermann.metamodelica in addition.

Functionality

This Language Server works for Modelica files. It has the following language features:

  • Provide Outline of Modelica files.

    Outline

  • Goto declarations.

    Goto Declaration

Installation

Via Marketplace

Via VSIX File

Download the latest modelica-language-server-0.2.0.vsix from the releases page.

Check the VS Code documentation on how to install a .vsix file. Use the Install from VSIX command or run

code --install-extension modelica-language-server-0.2.0.vsix

Contributing ❤️

Contributions are very welcome!

We made the first tiny step but need help to add more features and refine the language server.

If you are searching for a good point to start check the good first issue. To see where the development is heading to check the Projects section. If you need more information start a discussion over at OpenModelica/OpenModelica.

Found a bug or having issues? Open a new issue.

Structure

.
├── client // Language Client
│   ├── src
│   │   ├── test // End to End tests for Language Client / Server
│   │   └── extension.ts // Language Client entry point
├── package.json // The extension manifest.
└── server // Modelica Language Server
    └── src
        └── server.ts // Language Server entry point

Building the Language Server

  • Run npm install and npm run postinstall in this folder.This installs all necessary npm modules in both the client and server folder
  • Open VS Code on this folder.
  • Press Ctrl+Shift+B to start compiling the client and server in watch mode.
  • Switch to the Run and Debug View in the Sidebar (Ctrl+Shift+D).
  • Select Launch Client from the drop down (if it is not already).
  • Press ▷ to run the launch config (F5).
  • In the Extension Development Host instance of VSCode, open a document in 'modelica' language mode.
    • Check the console output of Language Server Modelica to see the parsed tree of the opened file.

Build and Install Extension

npx vsce package

License

modelica-language-server is licensed under the OSMC Public License v1.8, see OSMC-License.txt.

3rd Party Licenses

This extension is based on https://github.com/microsoft/vscode-extension-samples/tree/main/lsp-sample, licensed under MIT license.

Some parts of the source code are taken from bash-lsp/bash-language-server, licensed under the MIT license and adapted to the Modelica language server.

OpenModelica/tree-sitter-modelica v0.2.0 is included in this extension and is licensed under the OSMC-PL v1.8.

Acknowledgments

This package was initially developed by Hochschule Bielefeld - University of Applied Sciences and Arts.