Separate Models in one Repository

Hello,

Is there a way to have multiple independent models in the same repository without getting warnings? As a workaround I’ve added paths to the Syside: Exclude setting, it works but it’s a little tedious when working on two models simultaneously.

Thanks,

Tom

Hi Tom,

Your understanding is right – Syside loads every .sysml/.kerml file under the folder opened in VS Code into one shared namespace, so multiple independent models in one repository are fine as long as their top-level names don’t clash. The warnings only appear when they do.

A few options for when they clash:

  1. Open the model folder instead of the repository root (File → Open Folder → repo/model-a). Only that subtree gets loaded, so the models never see each other and there’s no exclude configuration to maintain. For working on two models at once, use two VS Code windows, one per model. This is probably the least tedious option but only works if the models don’t refer to each other.

  2. Put a syside.toml at the repository root (next to .git) instead of using the VS Code setting:

    exclude = ["model-b", "model-c"]  # glob patterns work too, e.g. "legacy/**"
    

    Unlike the VS Code setting this is committed and shared with everyone who clones the repo. You can also add a syside.user.toml next to it (and gitignore it) for personal additions – its exclude entries extend the committed ones, so each developer can exclude the models they’re not currently working on without touching the shared config. One caveat: a non-empty VS Code syside.exclude setting takes precedence over the syside.toml values, they aren’t merged – so clear the VS Code setting if you go this route.

  3. If one model actually uses the other, consider making it a proper sysand dependency instead of a sibling directory. Dependencies are loaded as external libraries and don’t conflict with your project files the same way.