Configure Modeler

This section describes the settings available to you to customise how Syside Modeler works.

Note that Modeler needs to be restarted for any changes to take effect.

syside.toml

Added in version 0.8.4: Support for syside.toml

This section does not apply to versions before 0.8.4.

Syside can be configured through syside.toml configuration file at the project or workspace root. If a path to configuration file is not provided, Syside will look for syside.toml in parent directories until either one is found, or a directory with a root marker is reached. Currently, root markers include:

  • .git for root git directory

  • sysand-lock.toml for root Sysand directory

This is the recommended way of configuring Syside in an editor agnostic way, and the only way to configure format options. Generally, any options provided through CLI will override options declared in the configuration file. This also applies to options declared in the editor, e.g. VS Code, settings. Furthermore, keeping these settings in a version tracked configuration file ensures that every team member working on the project maintains a consistent environment.

Please note that the current implementation supports only project-specific settings. Support for user-specific settings is currently in development and will be available in a future update.

See Settings for all available configuration options.

VS Code

Tip

VSCode has two types of settings: User and Workspace. User settings are meant for personal settings that apply to all of your projects. If you work in a team or have settings that should only apply to one project, consider using Workspace settings instead. For more information, refer to VSCode documentation linked above.

General Settings

  • syside.path – This setting overrides the path to the Syside language server executable. If this setting is not set, Modeler extension will attempt to download the language server executable and use it.

  • syside.stdlib – equivalent to std configuration option. If set, this takes priority.

  • syside.completionLimit – equivalent to lsp.completion-limit configuration option. If set, this takes priority.

Logging

  • syside.log – This setting overrides the path to the log file of the Syside language server. If this setting is not set, Syside will use the default log file created in a location designated by Visual Studio Code. The currently used active log file’s path can be found in Visual Studio Code’s Output > Syside Modeler pane. Note that Syside attempts to rotate log files, however this may fail on certain configurations, e.g. Windows and VS Code when the log file is open in another process, in which case the log file will be overwritten.

  • syside.logLevel – This setting controls how much information Syside should record in the log file. Currently available options, listed from the most verbose to the least verbose:

    • trace – Should not be used day-to-day, only for troubleshooting. Contains all language server communication messages and their contents, leading to huge log files.

    • debug – Should not be used day-to-day, only for troubleshooting. Contains all language server communication messages, leading to huge log files.

    • info – The default. Good for day-to-day usage.

    • warning

    • error

    • critical

    • off – Completely disables any logging.

  • syside.telemetry.crashReports – equivalent to telemetry.crash-reports configuration option. If set, this takes priority. Additionally, crash reports can also be disable by setting VSCode-wide telemetry.telemetryLevel setting to off. For more information refer to telemetry.

Controlling Which Files Are Analysed

  • syside.include – equivalent to include configuration option. If set, this takes priority.

  • syside.exclude – equivalent to exclude configuration option. If set, this takes priority.

SysML Settings

  • syside.lineLength – equivalent to format.line-width configuration option. If set, this takes priority. Note that formatter does not have automatic paragraph wrapping for long comments, docs and notes. To help with comment, docs, and notes line lengths, Sensmetry recommends also setting the Visual Studio Code’s in-built editor.rulers setting to the same value, which will show you a ruler at the given character limit, enabling you to manually break down your comments according to the limit.

  • syside.edit – equivalent to lsp.edit configuration option. If set, this takes priority.

Model Visualisation

There are two main dependencies that are needed to run the model visualisation: Python and Java. The following settings allow you to set paths to the relevant executables:

  • syside.modeler.pythonInterpreter – The path to the Python interpreter. Should end with the Python binary (.exe file on Windows), not just its folder. E.g. /opt/homebrew/bin/python3, not /opt/homebrew/bin/.

  • syside.modeler.vizTomSawyer.java – The path to the Java executable. Should end with the Java binary (.exe file on Windows), not just its folder. E.g. /opt/homebrew/Cellar/openjdk/24.0.2/libexec/openjdk.jdk/Contents/Home/bin/java, not /opt/homebrew/Cellar/openjdk/24.0.2/libexec/openjdk.jdk/Contents/Home/bin/.

You can also modify your visualisation experience with the following settings:

  • syside.modeler.vizTomSawyer.hierarchicalLayoutDirection – By default the initial visualisation uses the top-to-bottom layout. By enabling this setting, the default visualisation direction will be left-to-right.

  • syside.modeler.vizTomSawyer.interactiveZoomReversedDirection – Reverses the direction of the zoom when using the mouse scroll wheel.

  • syside.modeler.alwaysShowTitleBarMenu – Hides the Syside logo from the top right of the tab. If the logo menu is hidden, the commands can still be accessed through the Command Palette.