fix: local items should not be completed in parent signature
fixes#11959
> We get a Bar completion for the following snippet which is wrong as the item is not visible in that position.
> ``` rust
> fn foo() -> $0 {
> struct Bar;
> }
> ```
I investigated the problem and found that the scope of the cursor offset, also `CompletionContext.scope` is the body of the function
fix methods in pub trait generated by macro cannot be completed
Fix#12483
Check if the container is trait and inherit the visibility to associate items during collection.
fix: inserted imports must come after a shebang if present
The current `insert_use` logic adds the first `use` item near the beginning of the file, only skipping past comments and whitespace. However, it does not skip leading [shebang lines](https://en.wikipedia.org/wiki/Shebang_\(Unix\)). This can produce a syntax error, as shebangs are only accepted (ignored) on the first line of the file.
### Before Insertion (valid syntax)
```rust
#!/usr/bin/env rust
fn main() {}
```
### After Insertion (invalid syntax)
```rust
use foo::bar::Baz;
#!/usr/bin/env rust
fn main() {}
```
Rust analyzer's grammar is already shebang-aware, so this PR just adds that to the array of SyntaxKinds that are skipped past when looking for an insertion location, and adds a corresponding test case.
Show proc-macro loading errors in unresolved-proc-macro diagnostics
This should help out people to potentially figure out the problem without having to check the logs
fix: Ask the user to reload the vscode window when changing server settings
These requires a window reload, as they are set before the server is being started
fix: Pass the build data to rustc_private crates
With this all proc-macros should resolve in rustc now when setting up the build script running command properly.