11173: Allow adding partially resolved types r=Veykril a=SomeoneToIgnore
Sometimes when writing something like `let foo = Arc::new(Mutex::new(CrazyGenerics::new(HashMap::new())))`, I want/have to specify an explicit type for the expression.
Using turbofish isn't very readable and not always appreciated by guidelines, so `let foo: T` has to be filled.
To ease that, the PR enables the `add_explicit_type` assist on types that contain unknown types and some generics.
Fully unresolved types, arrays with unknown types and other known cases behave the same.
`_` placeholder was chosen to replace an unknown type:
```rust
let foo = HashMap::new();
// after assist usage, turns into
let foo: HashMap<_, _> = HashMap::new();
```
Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
11169: internal: Handle macro calls better in highlighting r=Veykril a=Veykril
Introduces a new semantic highlighting tag for the `!` character of macro calls.
Fixes https://github.com/rust-analyzer/rust-analyzer/issues/10962
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
11161: minor: style nits r=lnicola a=lnicola
- avoid `fold` with a `Vec` seed which could have been a `for_each`
- we can't drop the dependency, but avoid `Itertools::collect_vec`
bors r+
Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
11160: internal: Use basic `NonEmptyVec` in mbe::syntax_bridge r=Veykril a=Veykril
There are some places in the ide crates where this can be used as well if memory serves right.
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
11136: Turbo fish assist supports multiple type arguments r=matklad a=Vannevelj
This fixes#11135 (changelog: bug).
I've only started using Rust a few days ago but saw this issue on the top of the list when I looked at this repo. I based myself on [this blog post](https://techblog.tonsser.com/posts/what-is-rusts-turbofish) to understand what a "turbo fish" is so let me know if I missed anything.
Co-authored-by: Jeroen Vannevel <jer_vannevel@outlook.com>
11151: feat: correctly fallback to notify if the clinet-side file watching is not supported r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>