Currently, if the user has any configuration sets... configured, we only compile files within those sets.
So if there are any files outside the sets, we completely ignore them.
This may be unintuitive to users, and limits the reach of the language server.
Instead, I propose that we always run the language server over every Slice file.
If a file is inside a configuration set, we compile the entire set, as we already do.
If we find a file not in a configuration set, I think we should still compile it, but as a stand-alone compilation.
But, this may give false diagnostics, ie. They using FooBar which is defined, but isn't found because we're doing a stand-alone compilation.
I see 2 ways to fix this, which are not mutually exclusive:
When we find a file outside a set, we issue a little popup saying it's not in a set (this is what Rust does)
We filter the errors, and only let certain errors through (syntax, bad attributes, etc.) errors that don't depend on other files.
Currently, if the user has any configuration sets... configured, we only compile files within those sets. So if there are any files outside the sets, we completely ignore them.
This may be unintuitive to users, and limits the reach of the language server.
Instead, I propose that we always run the language server over every Slice file. If a file is inside a configuration set, we compile the entire set, as we already do. If we find a file not in a configuration set, I think we should still compile it, but as a stand-alone compilation.
But, this may give false diagnostics, ie. They using
FooBar
which is defined, but isn't found because we're doing a stand-alone compilation.I see 2 ways to fix this, which are not mutually exclusive: