Skip to content

sensmetry/sysml-2ls

Repository files navigation

SysIDE Community Edition

NOTE: this is a mirror repository. The main repository is hosted here on Gitlab.

SysIDE icon

SysML v2 'as code' modeling and analysis system

SysIDE (pronounced "seaside") is a transformational SysML v2 systems-as-code modeling tool

pipeline status coverage report Latest Release VSCode Marketplace OpenVSX


SysIDE Community Edition (SysIDE CE) is a free and open source SysML v2 textual editing and analysis system, bringing rich SysML v2 language support to Visual Studio Code. SysIDE CE can also be integrated into other applications and automated workflows which need to interact with SysML v2 textual representations.

The main enabling components of SysIDE CE are a parser and a language server for SysML v2 and KerML 2024-05 release specifications.

SysIDE CE provides features such as:

  • Semantic highlighting
  • Autocompletion
  • Code navigation
  • Formatting
  • Real-time syntax and semantic validation
  • Reference search
  • Folding
  • Document symbols
  • Renaming
  • Documentation on hover

SysIDE CE is built and maintained by Sensmetry, a company focused on ensuring the safety and reliability of mission- & safety-critical automated systems.

SysIDE CE is an open source project with contributions from user and developer community highly encouraged and welcome. For further information about the open source license, see LICENSE. To contribute, please see the CONTRIBUTING.md document.

Editions

There are two editions of SysIDE:

  • SysIDE CE - free and open source version of SysIDE, enabling modern 'as code' modeling for everyone
  • SysIDE Pro - a licenced version of SysIDE, providing advanced features & performance for power-users

If you want to get in touch regarding any edition of SysIDE, reach out to Sensmetry at syside(at)sensmetry(dot)com

Quick start

  1. Install the latest extension from the marketplace.
  2. Open a SysML v2 (.sysml) file and the extension will activate.
  3. Upon the first activation a pop-up will be displayed asking you to either locate an existing SysML v2 standard library (sysml.library directory from SysML-v2-Release repository) or download it. The pop-up may also be disabled globally or in the workspace and the extension will continue without standard library support.

Features

The extension provides basic features to support SysML v2 document editing:

  • Autocompletion
    Autocompletion

  • Code navigation
    Navigation

  • Semantic highlighting
    Semantic highlighting

  • Auto-formatting:

    • Comment bodies
      Comment bodies

    • Elements
      Elements

  • Renaming
    Renaming

  • Hovers
    Hovers

  • References
    References

  • Document symbols
    Symbols

  • Folding
    Folding

Known Limitations

See docs/known_limitations.md.

Developer instructions

Building from source code

  • Install pnpm
  • Run pnpm install to install dependencies.
  • Run pnpm run grammar:generate to generate TypeScript code from the grammar definition.
  • Run pnpm run build to compile all TypeScript code.

Make changes

  • Run pnpm run install-hooks to install git hooks.
  • Run pnpm run watch to have the TypeScript compiler run automatically after every change of the source files.
  • Run pnpm run grammar:watch to have the Langium generator run automatically after every change of the grammar declaration.
  • You can relaunch the extension from the debug toolbar after making changes to the files listed above.
  • You can also reload (Ctrl+R or Cmd+R on Mac) the VS Code window with your extension to load your changes.

Packaging

To package the extension for VS Code run:

pnpm run vscode:package

Contributing

See CONTRIBUTING.md.

Disclaimer

SysIDE CE is developed for the language that carries the name of SysML which is a trademark of OMG. SysIDE CE has been started and continues to be maintained by Sensmetry.

The project is open source. For further information, see LICENSE.