Problem is I don't see errors when I type, only after I save.
Rust-analyzer does not support real-time linting (yet?).
In short, rust-analyzer essentially runs cargo check
. For small projects this can be quite fast. However, as project sizes increase, this can take significantly more time, which makes it unfeasible to check in real-time.
See also issue #4185 and "Drawbacks" on the "First Release" post.
The next best thing you can do (as you already know), is to use "check on save":
"rust-analyzer.checkOnSave.enable": true
(which is enabled by default in the VSCode extension)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…