We have a workspace setup that works really well for our team. I should do all full write up on this, but essentially, it is: 1. Top-level, architecture-independent workspace. This holds common libraries, embedded-hal based drivers, and apps that can run with an OS 1..N. N number of workspaces, each dependent on architecture, e.g. `armv8`, `armv7`, etc. which only holds binaries that run on those architectures. Those use path deps from the top level workspace. These workspaces, are _not_ included in the top level workspace each workspace has its own `.cargo/config.toml` Then, and this is the key, we set up rust-analyzer at the top level, with something akin to this (this is for Helix using toml, but the options exist in any setup) ```toml [language-server.rust-analyzer.config] check.command = "clippy" linkedProjects = ["Cargo.toml", "arm_v7/Cargo.toml", "arm_v8/Cargo.toml", ...] files.watcher = "server" ``` then RA just works across every crate in the project, including jumping between workspaces. You just need to be aware which directory you are in, top level, or one of the arch-dependent workspaces, when actually building, running clippy etc., but in most cases, it's not too much of a pain