Skip to content

sensmetry/sysml-2ls

Repository files navigation

SysIDE: SysML v2 Modeling IDE

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

pipeline status coverage report Latest Release VSCode Marketplace OpenVSX

SysIDE (pronounced "seaside") provides SysML v2 language support in VS Code.

SysIDE includes a language server for SysML v2 and KerML 2024-02 release specifications. Together with VS Code, SysIDE serves as integrated development environment (IDE) for SysML v2.

This extension provides:

  • autocompletion,
  • code navigation,
  • semantic highlighting,
  • formatting,
  • syntax validation,
  • reference search,
  • folding,
  • document symbols,
  • renaming,
  • documentation on hover,
  • semantic validation.

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

The initial version has been created as an R&D effort, and contributions are highly encouraged. To provide your contributions please see the CONTRIBUTING.md document.

Quick start

  1. Install the latest extension from the marketplace.
  2. Open a SysMLv2 (.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 SysMLv2 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 SysMLv2 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 is developed for the language that carries the name of SysML which is a trademark of OMG. SysIDE has been started and continues to be maintained by Sensmetry.

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