10949: Bump parser step limit a little r=lnicola a=lnicola
Fixes#10948
This doesn't actually make the limit configurable, but at least uses the same `Limit` struct, so we can fix all of them at once when we get to it.
We also bump the limit from 10 to 15M, which is a small enough increase to not worry about making the experience worse for non-`windows` users. We still crash when we reach the limit.
bors r+
Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
In https://youtu.be/qvIZZf5dmTE, we've noticed that AstIdMap does a
linear lookup when going from SyntaxNode to Id. This leads to
accidentally quadratic overall performance. Replace linear lookup with a
O(1) hashmap lookup.
Future work: don't duplicate `SyntaxNodePtr` in `AstIdMap` and switch to
"call site dependency injection" style storage (eg, store a
`HashSet<ErasedFileAstId>`).
See the explanation of the work here on YouTube
https://youtu.be/wvEgymUm7cY :-)
10902: Handle multiple cargo check quick fix spans r=Veykril a=brandondong
Resolves https://github.com/rust-analyzer/rust-analyzer/issues/10705.
**Cause:**
- For a cargo check diagnostic with multiple spans, only a single quick fix action would be created at the location of `spans[0]`. Additionally, the hover window details would only show the location of `spans[0]` next to the message.
**Fix:**
- Allow cargo check quick fix actions to be triggerable from multiple selection ranges. Specifically, if the selection intersects with any of the replacement spans, the quick fix action is shown.
- No change in behavior for the hover window details. It's pretty minor and I think showing multiple locations next to the message may be more confusing anyways.
Co-authored-by: Brandon <brandondong604@hotmail.com>
10925: minor: Simplify `.vscodeignore` r=lnicola a=lnicola
The quadruple negation we used to have here was quite confusing:
```gitignore
**
!out
out/**
!out/src
```
Let's ignore everything and cherry-pick what we want to include.
~~And also include the extension sourcemap, just in case someone wants to debug the extension.~~
Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
10924: minor: Add LICENSE file to make vsce happy r=lnicola a=lnicola
Newer `vsce` versions error out if a `LICENSE` file is missing, even if the license is specified in `package.json`. Concatenate the two licenses we use and add a file with that to make a future `vsce` upgrade easier.
Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>